⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mal_properties.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
字号:
#line 329 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"#include "mal_config.h"#include "mal_properties.h"#include "mal_type.h"		/* for idcmp() */PropertySetnewPropertySet(){	PropertySet ps;	ps = (PropertySet) GDKzalloc(sizeof(struct PROPSET));	ps->refcount = 0;	ps->maxlist = MAXPROPLIST;	return ps;}PropertycpyProperty(PropertySet * target, Property src){	if (*target == 0)		*target = newPropertySet();	return setProperty(*target, src->nme, 			src->operator, src->val.vtype, VALptr(&src->val));}PropertySetcpyPropertySet(PropertySet old){	PropertySet ps;	Property pr;	int i;	ps = newPropertySet();	for(i=0; i< MAXPROPLIST; i++){		pr = old->prop[i];		while(pr){			cpyProperty(&ps, pr);			pr= pr->nxt;		}	}	return ps;}voidfreePropertySet(PropertySet ps){	Property p1, p2;	int i;	for (i = 0; i < MAXPROPLIST; i++) {		p1 = ps->prop[i];		while(p1){			p2 = p1->nxt;			GDKfree(p1);			p1= p2;		}	}	GDKfree(ps);}PropertyfndProperty(PropertySet ps, str nme){	Property pr;	int i;	if (ps == NULL || nme== NULL)		return NULL;	nme= getName(nme,strlen(nme));	for (i = 0; i < MAXPROPLIST; i++) {		pr = ps->prop[i];		while (pr) {			if (pr->nme== nme)				return pr;			pr = pr->nxt;		}	}	return 0;}PropertyfndPropertyIndexed(PropertySet ps, int first, int last, str nme){	Property pr;	int i;	if (ps == NULL)		return NULL;	nme= getName(nme,strlen(nme));	for (i = first; i < last; i++) {		pr = ps->prop[i];		while (pr) {			if (pr->nme== nme)				return pr;			pr = pr->nxt;		}	}	return 0;}intisPropertyDefined(PropertySet ps, str nme){	Property pr;	if( ps == NULL || nme== NULL) return FALSE;	pr = fndProperty(ps,nme);	return pr != NULL;}#line 438 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"PropertysetPropertyIndexed(PropertySet ps, int idx, str nme, str op, int tpe, ptr val){	Property pr;	pr = fndPropertyIndexed(ps, idx, idx + 1, nme);	if (pr == 0) {		pr = (Property) GDKmalloc(sizeof(struct PROPrecord));		pr->nxt = ps->prop[idx];		ps->prop[idx] = pr;		pr->nme = putName(nme,strlen(nme));	}	if (val)		VALset(&pr->val, tpe, val);	pr->operator= putName(op,strlen(op));	return pr;}PropertysetProperty(PropertySet ps, str nme, str op, int tpe, ptr val){	return setPropertyIndexed(ps, 0, nme, op, tpe, val);}#line 466 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"ptrgetPropertyValue(PropertySet ps, str nme){	Property pr;	pr = fndProperty(ps, nme);	if (pr)		return VALptr(&pr->val);	return NULL;}intgetPropertyType(PropertySet ps, str nme){	Property pr;	pr = fndProperty(ps, nme);	if (pr)		return pr->val.vtype;	return TYPE_void;}#line 492 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"strpropertySet2str(PropertySet ps){	char buf[128 * 1024];	str s = buf, t = 0;	Property pr;	int i,first=0;	if (ps == NULL )		return GDKstrdup("");	pr = ps->prop[0];	*s++ = '{';	for(i=0; i<MAXPROPLIST; i++){		pr = ps->prop[i];		while(pr){			t = 0;			if (first++ )				*s++ = ',';			ATOMformat(pr->val.vtype, VALget(&pr->val), &t);			if (pr->operator && * pr->operator)				sprintf(s, "%s%s%s", pr->nme, pr->operator, t);			else				sprintf(s, "%s", pr->nme);			while (*s)				s++;			pr= pr->nxt;			if (t)			GDKfree(t);		}	}	*s++ = '}';	*s = 0;	return GDKstrdup(buf);}#line 528 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -