📄 batstr.c
字号:
#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 + -