Changeset: 2569ffa9872b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2569ffa9872b
Modified Files:
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_strimps.c
Branch: string_imprints
Log Message:
Add filtering to the plan (WIP)
diffs (63 lines):
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -591,6 +591,7 @@ void optimizerInit(void)
stoptraceRef = putName("stoptrace");
streamsRef = putName("streams");
strimpsRef = putName("strimps");
+ strimpFilterSelectRef = putName("strimpfilterselect");
strRef = putName("str");
subavgRef = putName("subavg");
subcountRef = putName("subcount");
diff --git a/monetdb5/optimizer/opt_strimps.c b/monetdb5/optimizer/opt_strimps.c
--- a/monetdb5/optimizer/opt_strimps.c
+++ b/monetdb5/optimizer/opt_strimps.c
@@ -26,10 +26,13 @@ OPTstrimpsImplementation(Client cntxt, M
int i, limit;
// int mvcvar = -1;
int count=0;
- InstrPtr p,q, *old = mb->stmt;
+ InstrPtr p,q,r, *old = mb->stmt;
char buf[256];
lng usec = GDKusec();
str msg = MAL_SUCCEED;
+ /* int res, nvar; */
+ /* ValRecord cst; */
+ int res;
(void) pci;
(void) cntxt;
@@ -53,10 +56,24 @@ OPTstrimpsImplementation(Client cntxt, M
pushInstruction(mb, q);
typeChecker(cntxt->usermodule, mb, q, mb->stop-1, TRUE);
+ /* cst.vtype = TYPE_bit; */
+ /* nvar = defConstant(mb, TYPE_bit, &cst); */
+ r = newInstruction(mb, strimpsRef,
strimpFilterSelectRef);
+ res = newTmpVariable(mb, newBatType(TYPE_oid));
+ setDestVar(r, res);
+ r = addArgument(mb, r, getArg(p, 1));
+ r = addArgument(mb, r, getArg(p, 2));
+ r = addArgument(mb, r, getArg(p, 3));
+ r = addArgument(mb, r, getArg(p, 6));
+
+ pushInstruction(mb, r);
+ // typeChecker(cntxt->usermodule, mb, r, mb->stop-1,
TRUE);
+
count++;
}
pushInstruction(mb, p);
}
+ GDKfree(old);
/* Defense line against incorrect plans */
if( count){
@@ -68,7 +85,7 @@ OPTstrimpsImplementation(Client cntxt, M
}
/* keep all actions taken as a post block comment */
usec = GDKusec()- usec;
- snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","volcano",count,usec);
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","strimps",count,usec);
newComment(mb,buf);
if( count > 0)
addtoMalBlkHistory(mb);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list