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

📄 algebra.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
📖 第 1 页 / 共 5 页
字号:
{	return (*result = BATtsort_rev(b))?GDK_SUCCEED:GDK_FAIL;}#line 1193 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDssort(BAT **result, BAT *b){	return (*result = BATssort(b))?GDK_SUCCEED:GDK_FAIL;}#line 1194 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDssort_rev(BAT **result, BAT *b){	return (*result = BATssort_rev(b))?GDK_SUCCEED:GDK_FAIL;}#line 1195 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDnumber(BAT **result, BAT *b){	return (*result = BATnumber(b))?GDK_SUCCEED:GDK_FAIL;}#line 1196 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDcopy(BAT **result, BAT *b){	return (*result = BATwcopy(b))?GDK_SUCCEED:GDK_FAIL;}#line 1197 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDrcopy(BAT **result, BAT *b){	return (*result = BATrcopy(b))?GDK_SUCCEED:GDK_FAIL;}#line 1198 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDkunique(BAT **result, BAT *b){	return (*result = BATkunique(b))?GDK_SUCCEED:GDK_FAIL;}#line 1199 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsunique(BAT **result, BAT *b){	return (*result = BATsunique(b))?GDK_SUCCEED:GDK_FAIL;}#line 1200 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDmark_default(BAT **result, BAT *b){	return (*result = BATmark_default(b))?GDK_SUCCEED:GDK_FAIL;}#line 1201 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDtmark_default(BAT **result, BAT *b){	return (*result = BATtmark_default(b))?GDK_SUCCEED:GDK_FAIL;}#line 1202 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1145 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDhmark_default(BAT **result, BAT *b){	return (*result = BAThmark_default(b))?GDK_SUCCEED:GDK_FAIL;}#line 1203 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsemijoin(BAT **result, BAT *left, BAT* right){	return (*result = BATsemijoin(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1204 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDcross(BAT **result, BAT *left, BAT* right){	return (*result = BATcross(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1205 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDantijoin(BAT **result, BAT *left, BAT* right){	return (*result = BATantijoin(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1206 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1164 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDjoin(BAT **result, BAT *left, BAT* right, lng *estimate){	return (*result = BATjoin(left, right, *estimate==lng_nil?(size_t)oid_nil:(size_t)*estimate))?GDK_SUCCEED:GDK_FAIL;}#line 1207 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1164 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDfetchjoin(BAT **result, BAT *left, BAT* right, lng *estimate){	return (*result = BATfetchjoin(left, right, *estimate==lng_nil?(size_t)oid_nil:(size_t)*estimate))?GDK_SUCCEED:GDK_FAIL;}#line 1208 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1164 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDleftjoin(BAT **result, BAT *left, BAT* right, lng *estimate){	return (*result = BATleftjoin(left, right, *estimate==lng_nil?(size_t)oid_nil:(size_t)*estimate))?GDK_SUCCEED:GDK_FAIL;}#line 1209 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1164 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDleftfetchjoin(BAT **result, BAT *left, BAT* right, lng *estimate){	return (*result = BATleftfetchjoin(left, right, *estimate==lng_nil?(size_t)oid_nil:(size_t)*estimate))?GDK_SUCCEED:GDK_FAIL;}#line 1210 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1164 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDouterjoin(BAT **result, BAT *left, BAT* right, lng *estimate){	return (*result = BATouterjoin(left, right, *estimate==lng_nil?(size_t)oid_nil:(size_t)*estimate))?GDK_SUCCEED:GDK_FAIL;}#line 1211 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsunion(BAT **result, BAT *left, BAT* right){	return (*result = BATsunion(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1212 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDkunion(BAT **result, BAT *left, BAT* right){	return (*result = BATkunion(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1213 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsintersect(BAT **result, BAT *left, BAT* right){	return (*result = BATsintersect(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1214 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDkintersect(BAT **result, BAT *left, BAT* right){	return (*result = BATkintersect(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1215 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDtintersect(BAT **result, BAT *left, BAT* right){	return (*result = BATtintersect(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1216 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsdiff(BAT **result, BAT *left, BAT* right){	return (*result = BATsdiff(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1217 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDkdiff(BAT **result, BAT *left, BAT* right){	return (*result = BATkdiff(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1218 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1158 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDtdiff(BAT **result, BAT *left, BAT* right){	return (*result = BATtdiff(left, right))?GDK_SUCCEED:GDK_FAIL;}#line 1219 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"#line 1170 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDsample(BAT **result, BAT* b, int *param){	return (*result = BATsample(b, *param))?GDK_SUCCEED:GDK_FAIL;}#line 1220 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDtunique(BAT **result, BAT* b){	oid id = oid_nil;	BAT *v = BATconst(BATmirror(b), TYPE_oid, &id);	*result = BATkunique(v);	BBPreclaim(v);	return *result?GDK_SUCCEED:GDK_FAIL;}intCMDcount_nil(int *result, BAT *b, bit *ignore_nils){	if (*ignore_nils)		*result = (int) BATcount_no_nil(b);	else		*result = (int) BATcount(b);	return GDK_SUCCEED;}intCMDgroup(BAT **result, BAT *b, int *start, int *incr, int *grpsize){	return (*result = BATgroup(b, *start, *incr, *grpsize)) ? GDK_SUCCEED : GDK_FAIL;}intCMDgen_group(BAT **result, BAT *b ){	BUN u, v;	int xx;	int htpe = (b->htype == TYPE_void)?TYPE_oid:b->htype;	BAT *r = BATnew(htpe, TYPE_void, BATcount(b)*2);	if (b->hvarsized) {		BATloopFast(b, u, v, xx) {			int i, sz = *(int*)BUNtloc(b, u);			for(i = 0; i < sz; i++) {			if (BUNfastins(r, BUNhvar(b, u), NULL) == NULL) {				BBPreclaim(r);				return GDK_FAIL;			}			}		}	} else {		BATloopFast(b, u, v, xx) {			int i, sz = *(int*)BUNtloc(b, u);			for(i = 0; i < sz; i++) {			if (BUNfastins(r, BUNhloc(b, u), NULL) == NULL) {				BBPreclaim(r);				return GDK_FAIL;			}			}		}	}	r -> hsorted = BAThordered(b);	r -> tsorted = BATtordered(b);	*result = r;	return GDK_SUCCEED;}intCMDproject(BAT **res, BAT *b, ptr p, int t){	return (*res = BATconst(b, t, p)) ? GDK_SUCCEED : GDK_FAIL;}intCMDmark(BAT **res, BAT *b, oid *base){	return (*res = BATmark(b, *base)) ? GDK_SUCCEED : GDK_FAIL;}intCMDtmark(BAT **res, BAT *b, oid *base){	return (*res = BATmirror(BATmark(BATmirror(b), *base))) ? GDK_SUCCEED : GDK_FAIL;}intCMDhmark(BAT **res, BAT *b, oid *base){	return (*res = BATmirror(BATmark(b, *base))) ? GDK_SUCCEED : GDK_FAIL;}intCMDhashsplit(BAT **res, BAT *b, int *nfrag){	return (*res = BAThashsplit(b, *nfrag, FALSE)) ? GDK_SUCCEED : GDK_FAIL;}intCMDuhashsplit(BAT **res, BAT *b, int *nfrag){	return (*res = BAThashsplit(b, *nfrag, TRUE)) ? GDK_SUCCEED : GDK_FAIL;}intCMDrangesplit(BAT **res, BAT *b, int *nfrag){	return (*res = BATrangesplit(b, *nfrag, FALSE)) ? GDK_SUCCEED : GDK_FAIL;}intCMDurangesplit(BAT **res, BAT *b, int *nfrag){	return (*res = BATrangesplit(b, *nfrag, TRUE)) ? GDK_SUCCEED : GDK_FAIL;}#line 1338 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"INLINE intlike(char *x, char *y, int ylen){	char *r;	if (x == (char *) NULL) {		return 0;	}	for (r = x + strlen(x) - ylen; x <= r; x++) {		int ok = 1;		char *s = x;		char *q;		for (q = y; *q; q++, s++)			if (*q != tolower(*s)) {				ok = 0;				break;			}		if (ok)			return 1;	}	return 0;}intCMDlike(BAT **ret, BAT *b, str s){	BAT *c = BATnew(BAThtype(b), TYPE_str, BATcount(b) / 10);	str t = GDKstrdup(s);	BUN u, v;	int xx, yy = 0;	if (c == NULL)		return GDK_FAIL;	for (s = t; *s; s++, yy++)		*s = tolower(*s);	if (b->hvarsized) {		BATloopFast(b, u, v, xx)			if (like(BUNtvar(b, u), t, yy))			if (BUNfastins(c, BUNhvar(b, u), BUNtvar(b, u)) == NULL) {				BBPreclaim(c);				return GDK_FAIL;			}	} else {		BATloopFast(b, u, v, xx)			if (like(BUNtvar(b, u), t, yy))			if (BUNfastins(c, BUNhloc(b, u), BUNtvar(b, u)) == NULL) {				BBPreclaim(c);				return GDK_FAIL;			}	}	c->hsorted = BAThordered(b);	c->tsorted = BATtordered(b);	*ret = c;	return GDK_SUCCEED;}#line 1398 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"static intslice(BAT **retval, BAT *b, lng start, lng end){	/* the internal BATslice requires exclusive end */	if (start < 0) {		GDKerror("CMDslice: start position of slice should >= 0\n");		return GDK_FAIL;	}#if SIZEOF_SIZE_T < SIZEOF_LNG	if (start >= ((lng) 1 << (8 * SIZEOF_SIZE_T)) ||	    end >= ((lng) 1 << (8 * SIZEOF_SIZE_T))) {		GDKerror("CMDslice: argument out of range\n");		return GDK_FAIL;	}#endif	return (*retval = BATslice(b, (size_t) start, (size_t) end + 1)) ? GDK_SUCCEED : GDK_FAIL;}intCMDslice(BAT **retval, BAT *b, lng *start, lng *end){	return slice(retval, b, *start, *end);}intCMDslice_int(BAT **retval, BAT *b, int *start, int *end){	return slice(retval, b, *start, *end);}#line 1431 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/algebra.mx"intCMDposition(int *retval, BAT *b, ptr val){	ptr p = (b->htype == TYPE_bat) ? (ptr) &((BAT *) val)->batCacheid : val;	ptr v = BUNfnd(b, p);	if (v == 0) {		GDKerror("CMDposition: item not found\n");		return GDK_FAIL;	}	*retval = BUNindex(b, v) - BUNindex(b, BUNfirst(b));	return GDK_SUCCEED;}intCMDpositionBUN(int *retval, BAT *b, ptr val, ptr tval){	ptr p = (b->htype == TYPE_bat) ? (ptr) &((BAT *) val)->batCacheid : val;	ptr o = (b->ttype == TYPE_bat) ? (ptr) &((BAT *) tval)->batCacheid : tval;	ptr v = BUNlocate(b, p, o);	if (v == 0) {		GDKerror("CMDposition: item not found\n");		return GDK_FAIL;	}	*retval = BUNindex(b, v) - BUNindex(b, BUNfirst(b));	return GDK_SUCCEED;}int

⌨️ 快捷键说明

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