Changeset: f0bb9fa9dbb8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f0bb9fa9dbb8
Modified Files:
        monetdb5/optimizer/opt_dataflow.c
Branch: parappend
Log Message:

Debug plumbing

for setting conditional breakpoints that only trigger on queries

    insert into foo select value as i, value / 2 as j
    from generate_series(0,cast(2 as int));


diffs (42 lines):

diff --git a/monetdb5/optimizer/opt_dataflow.c 
b/monetdb5/optimizer/opt_dataflow.c
--- a/monetdb5/optimizer/opt_dataflow.c
+++ b/monetdb5/optimizer/opt_dataflow.c
@@ -155,6 +155,7 @@ dflowGarbagesink(Client cntxt, MalBlkPtr
 static str
 OPTdataflowImplementation_wrapped(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p)
 {
+       volatile int interesting_banana = 0;
        int i,j,k, start=1, slimit, breakpoint, actions=0, simple = TRUE;
        int flowblock= 0;
        InstrPtr *sink = NULL, *old = NULL, q;
@@ -185,6 +186,22 @@ OPTdataflowImplementation_wrapped(Client
 
        setVariableScope(mb);
 
+       do {
+               if (mb->stop < 2)
+                       break;
+               InstrPtr p = mb->stmt[1];
+
+               if (p->argc < 2)
+                       break;
+
+               if (p->modname != querylogRef || p->fcnname != defineRef)
+                       break;
+
+               const char *txt = getVarConstant(mb, getArg(p,1)).val.sval;
+               if (strstr(txt, "value / 2") != 0)
+                       interesting_banana = 1;
+       } while (0);
+
        limit= mb->stop;
        slimit= mb->ssize;
        old = mb->stmt;
@@ -305,6 +322,7 @@ wrapup:
        if(states) GDKfree(states);
        if(sink)   GDKfree(sink);
        if(old)    GDKfree(old);
+       (void) interesting_banana;
        return msg;
 }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to