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

📄 batstr.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
📖 第 1 页 / 共 3 页
字号:
#line 451 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"batstr_export str STRbatPrefix(int *ret, int *l, int *r);str STRbatPrefix(int *ret, int *l, int *r){   BAT *bn, *left, *right;	BUN o,p,q;	int xx,yy;	bit v, *vp= &v;	prepareOperand2(left,l,right,r,"prefix");	#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	if( BATcount(left) != BATcount(right) )	throw(MAL, "batcalc.CMDcomparePrefix", "requires bats of identical size");#line 459 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	prepareResult2(bn,left,right,TYPE_bit,"prefix");	o = BUNfirst(left);	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(left);	yy = BUNsize(right);	while(p<q) {		ptr h = BUNhead(left,o);		str tl = (str) BUNtail(left,o);		str tr = (str) BUNtail(right,p);		STRPrefix(vp, &tl, &tr);		bunfastins(bn, h, vp);		o += xx;		p += yy;	}	BBPreleaseref(right->batCacheid);	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr." "prefix", "bunins failed");}batstr_export str STRbatPrefixcst(int *ret, int *l, str *cst);str STRbatPrefixcst(int *ret, int *l, str *cst){   BAT *bn, *left;	BUN p,q;	int xx;	bit v, *vp= &v;	prepareOperand(left,l,"prefix");	prepareResult(bn,left,TYPE_bit,"prefix");	p = BUNfirst(left);	q = BUNlast(left);	xx = BUNsize(left);	while(p<q) {		ptr h = BUNhead(left,p);		str tl = (str) BUNtail(left,p);		STRPrefix(vp, &tl, cst);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""prefix", "bunins failed");}batstr_export str STRcstPrefixbat(int *ret, str *cst, int *r);str STRcstPrefixbat(int *ret, str *cst, int *r){   BAT *bn, *right;	BUN p,q;	int xx;	bit v, *vp= &v;	prepareOperand(right,r,"prefix");	prepareResult(bn,right,TYPE_bit,"prefix");	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(right);	while(p<q) {		ptr h = BUNhead(right,p);		str tr = (str) BUNtail(right,p);		STRPrefix(vp, cst, &tr);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,right);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""prefix", "bunins failed");}#line 545 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"#line 451 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"batstr_export str STRbatSuffix(int *ret, int *l, int *r);str STRbatSuffix(int *ret, int *l, int *r){   BAT *bn, *left, *right;	BUN o,p,q;	int xx,yy;	bit v, *vp= &v;	prepareOperand2(left,l,right,r,"suffix");	#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	if( BATcount(left) != BATcount(right) )	throw(MAL, "batcalc.CMDcompareSuffix", "requires bats of identical size");#line 459 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	prepareResult2(bn,left,right,TYPE_bit,"suffix");	o = BUNfirst(left);	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(left);	yy = BUNsize(right);	while(p<q) {		ptr h = BUNhead(left,o);		str tl = (str) BUNtail(left,o);		str tr = (str) BUNtail(right,p);		STRSuffix(vp, &tl, &tr);		bunfastins(bn, h, vp);		o += xx;		p += yy;	}	BBPreleaseref(right->batCacheid);	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr." "suffix", "bunins failed");}batstr_export str STRbatSuffixcst(int *ret, int *l, str *cst);str STRbatSuffixcst(int *ret, int *l, str *cst){   BAT *bn, *left;	BUN p,q;	int xx;	bit v, *vp= &v;	prepareOperand(left,l,"suffix");	prepareResult(bn,left,TYPE_bit,"suffix");	p = BUNfirst(left);	q = BUNlast(left);	xx = BUNsize(left);	while(p<q) {		ptr h = BUNhead(left,p);		str tl = (str) BUNtail(left,p);		STRSuffix(vp, &tl, cst);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""suffix", "bunins failed");}batstr_export str STRcstSuffixbat(int *ret, str *cst, int *r);str STRcstSuffixbat(int *ret, str *cst, int *r){   BAT *bn, *right;	BUN p,q;	int xx;	bit v, *vp= &v;	prepareOperand(right,r,"suffix");	prepareResult(bn,right,TYPE_bit,"suffix");	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(right);	while(p<q) {		ptr h = BUNhead(right,p);		str tr = (str) BUNtail(right,p);		STRSuffix(vp, cst, &tr);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,right);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""suffix", "bunins failed");}#line 546 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"#line 451 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"batstr_export str STRbatstrSearch(int *ret, int *l, int *r);str STRbatstrSearch(int *ret, int *l, int *r){   BAT *bn, *left, *right;	BUN o,p,q;	int xx,yy;	int v, *vp= &v;	prepareOperand2(left,l,right,r,"search");	#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	if( BATcount(left) != BATcount(right) )	throw(MAL, "batcalc.CMDcomparestrSearch", "requires bats of identical size");#line 459 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	prepareResult2(bn,left,right,TYPE_int,"search");	o = BUNfirst(left);	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(left);	yy = BUNsize(right);	while(p<q) {		ptr h = BUNhead(left,o);		str tl = (str) BUNtail(left,o);		str tr = (str) BUNtail(right,p);		STRstrSearch(vp, &tl, &tr);		bunfastins(bn, h, vp);		o += xx;		p += yy;	}	BBPreleaseref(right->batCacheid);	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr." "search", "bunins failed");}batstr_export str STRbatstrSearchcst(int *ret, int *l, str *cst);str STRbatstrSearchcst(int *ret, int *l, str *cst){   BAT *bn, *left;	BUN p,q;	int xx;	int v, *vp= &v;	prepareOperand(left,l,"search");	prepareResult(bn,left,TYPE_int,"search");	p = BUNfirst(left);	q = BUNlast(left);	xx = BUNsize(left);	while(p<q) {		ptr h = BUNhead(left,p);		str tl = (str) BUNtail(left,p);		STRstrSearch(vp, &tl, cst);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""search", "bunins failed");}batstr_export str STRcststrSearchbat(int *ret, str *cst, int *r);str STRcststrSearchbat(int *ret, str *cst, int *r){   BAT *bn, *right;	BUN p,q;	int xx;	int v, *vp= &v;	prepareOperand(right,r,"search");	prepareResult(bn,right,TYPE_int,"search");	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(right);	while(p<q) {		ptr h = BUNhead(right,p);		str tr = (str) BUNtail(right,p);		STRstrSearch(vp, cst, &tr);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,right);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""search", "bunins failed");}#line 547 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"#line 451 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"batstr_export str STRbatRstrSearch(int *ret, int *l, int *r);str STRbatRstrSearch(int *ret, int *l, int *r){   BAT *bn, *left, *right;	BUN o,p,q;	int xx,yy;	int v, *vp= &v;	prepareOperand2(left,l,right,r,"r_search");	#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	if( BATcount(left) != BATcount(right) )	throw(MAL, "batcalc.CMDcompareRstrSearch", "requires bats of identical size");#line 459 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	prepareResult2(bn,left,right,TYPE_int,"r_search");	o = BUNfirst(left);	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(left);	yy = BUNsize(right);	while(p<q) {		ptr h = BUNhead(left,o);		str tl = (str) BUNtail(left,o);		str tr = (str) BUNtail(right,p);		STRReverseStrSearch(vp, &tl, &tr);		bunfastins(bn, h, vp);		o += xx;		p += yy;	}	BBPreleaseref(right->batCacheid);	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr." "r_search", "bunins failed");}batstr_export str STRbatRstrSearchcst(int *ret, int *l, str *cst);str STRbatRstrSearchcst(int *ret, int *l, str *cst){   BAT *bn, *left;	BUN p,q;	int xx;	int v, *vp= &v;	prepareOperand(left,l,"r_search");	prepareResult(bn,left,TYPE_int,"r_search");	p = BUNfirst(left);	q = BUNlast(left);	xx = BUNsize(left);	while(p<q) {		ptr h = BUNhead(left,p);		str tl = (str) BUNtail(left,p);		STRReverseStrSearch(vp, &tl, cst);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""r_search", "bunins failed");}batstr_export str STRcstRstrSearchbat(int *ret, str *cst, int *r);str STRcstRstrSearchbat(int *ret, str *cst, int *r){   BAT *bn, *right;	BUN p,q;	int xx;	int v, *vp= &v;	prepareOperand(right,r,"r_search");	prepareResult(bn,right,TYPE_int,"r_search");	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(right);	while(p<q) {		ptr h = BUNhead(right,p);		str tr = (str) BUNtail(right,p);		STRReverseStrSearch(vp, cst, &tr);		bunfastins(bn, h, vp);		p += xx;	}	finalizeResult(ret,bn,right);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""r_search", "bunins failed");}#line 548 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"#line 451 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"batstr_export str STRbatConcat(int *ret, int *l, int *r);str STRbatConcat(int *ret, int *l, int *r){   BAT *bn, *left, *right;	BUN o,p,q;	int xx,yy;	str v, *vp= &v;	prepareOperand2(left,l,right,r,"+");	#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	if( BATcount(left) != BATcount(right) )	throw(MAL, "batcalc.CMDcompareConcat", "requires bats of identical size");#line 459 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/kernel/batstr.mx"	prepareResult2(bn,left,right,TYPE_str,"+");	o = BUNfirst(left);	p = BUNfirst(right);	q = BUNlast(right);	xx = BUNsize(left);	yy = BUNsize(right);	while(p<q) {		ptr h = BUNhead(left,o);		str tl = (str) BUNtail(left,o);		str tr = (str) BUNtail(right,p);		STRConcat(vp, &tl, &tr);		bunfastins(bn, h, v);		o += xx;		p += yy;	}	BBPreleaseref(right->batCacheid);	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPreleaseref(right->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr." "+", "bunins failed");}batstr_export str STRbatConcatcst(int *ret, int *l, str *cst);str STRbatConcatcst(int *ret, int *l, str *cst){   BAT *bn, *left;	BUN p,q;	int xx;	str v, *vp= &v;	prepareOperand(left,l,"+");	prepareResult(bn,left,TYPE_str,"+");	p = BUNfirst(left);	q = BUNlast(left);	xx = BUNsize(left);	while(p<q) {		ptr h = BUNhead(left,p);		str tl = (str) BUNtail(left,p);		STRConcat(vp, &tl, cst);		bunfastins(bn, h, v);		p += xx;	}	finalizeResult(ret,bn,left);	return MAL_SUCCEED;bunins_failed:	BBPreleaseref(left->batCacheid);	BBPunfix(*ret);	throw(MAL, "batstr""+", "bunins failed");}

⌨️ 快捷键说明

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