Changeset: 21be4e42cb7d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=21be4e42cb7d
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        monetdb5/mal/mal.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_runtime.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/kernel/algebra.mal
        monetdb5/optimizer/Tests/GCexample01.stable.out
        monetdb5/optimizer/Tests/dataflow3.stable.out
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_candidates.c
        monetdb5/optimizer/opt_emptybind.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_jit.c
        monetdb5/optimizer/opt_matpack.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_querylog.c
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/sql_gencode.c
        sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
        sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.sql
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.sql
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.sql
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.sql
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.sql
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        sql/test/Tests/setoptimizer.stable.out
        sql/test/Tests/setoptimizer.stable.out.Windows
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/mapi/Tests/sql_int128.stable.out
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/remote/Tests/partition_elim.stable.out
Branch: oltp
Log Message:

Merge with default


diffs (truncated from 4154 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -510,13 +510,11 @@ MapiMsg mapi_disconnect(Mapi mid);
 MapiMsg mapi_error(Mapi mid);
 char *mapi_error_str(Mapi mid);
 MapiMsg mapi_execute(MapiHdl hdl);
-MapiMsg mapi_execute_array(MapiHdl hdl, char **val);
 MapiMsg mapi_explain(Mapi mid, FILE *fd);
 MapiMsg mapi_explain_query(MapiHdl hdl, FILE *fd);
 MapiMsg mapi_explain_result(MapiHdl hdl, FILE *fd);
 mapi_int64 mapi_fetch_all_rows(MapiHdl hdl);
 char *mapi_fetch_field(MapiHdl hdl, int fnr);
-char **mapi_fetch_field_array(MapiHdl hdl);
 size_t mapi_fetch_field_len(MapiHdl hdl, int fnr);
 char *mapi_fetch_line(MapiHdl hdl);
 MapiMsg mapi_fetch_reset(MapiHdl hdl);
@@ -562,17 +560,12 @@ MapiMsg mapi_param_string(MapiHdl hdl, i
 MapiMsg mapi_param_type(MapiHdl hdl, int fnr, int ctype, int sqltype, void 
*ptr);
 MapiMsg mapi_ping(Mapi mid);
 MapiHdl mapi_prepare(Mapi mid, const char *cmd);
-MapiHdl mapi_prepare_array(Mapi mid, const char *cmd, char **val);
 MapiMsg mapi_prepare_handle(MapiHdl hdl, const char *cmd);
 MapiHdl mapi_query(Mapi mid, const char *cmd);
-MapiHdl mapi_query_array(Mapi mid, const char *cmd, char **val);
 MapiMsg mapi_query_done(MapiHdl hdl);
 MapiMsg mapi_query_handle(MapiHdl hdl, const char *cmd);
 MapiMsg mapi_query_part(MapiHdl hdl, const char *cmd, size_t size);
 MapiHdl mapi_query_prep(Mapi mid);
-MapiHdl mapi_quick_query(Mapi mid, const char *cmd, FILE *fd);
-MapiHdl mapi_quick_query_array(Mapi mid, const char *cmd, char **val, FILE 
*fd);
-MapiMsg mapi_quick_response(MapiHdl hdl, FILE *fd);
 char *mapi_quote(const char *msg, int size);
 MapiMsg mapi_read_response(MapiHdl hdl);
 MapiMsg mapi_reconnect(Mapi mid);
@@ -1027,6 +1020,7 @@ str CMDgetPageSize(int *ret);
 str CMDgetSystemTime(lng *ret);
 str CMDgetTrace(bat *res, str *ev);
 str CMDgetUserTime(lng *ret);
+str CMDgetprofilerlimit(int *res);
 str CMDifthen(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDmodules(bat *bid);
 str CMDnoopProfiler(void *res);
@@ -1082,6 +1076,7 @@ str CMDscience_cst_bat_pow_flt(bat *ret,
 str CMDsetHeartbeat(void *res, int *ev);
 str CMDsetName(str *rname, const bat *b, str *name);
 str CMDsetoid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str CMDsetprofilerlimit(void *res, int *lim);
 str CMDstartProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDstartTrace(void *res);
 str CMDstartTracePath(void *res, str *path);
@@ -1586,12 +1581,10 @@ int OPTvolcanoImplementation(Client cntx
 str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str PCREilike2(bit *ret, const str *s, const str *pat);
 str PCREilike3(bit *ret, const str *s, const str *pat, const str *esc);
-str PCREilike_join_pcre(bat *l, bat *r, const bat *b, const bat *pat, const 
str *esc);
 str PCREimatch(bit *ret, const str *val, const str *pat);
 str PCREindex(int *ret, const pcre *pat, const str *val);
 str PCRElike2(bit *ret, const str *s, const str *pat);
 str PCRElike3(bit *ret, const str *s, const str *pat, const str *esc);
-str PCRElike_join_pcre(bat *l, bat *r, const bat *b, const bat *pat, const str 
*esc);
 str PCRElikesubselect1(bat *ret, const bat *bid, const bat *cid, const str 
*pat, const str *esc, const bit *anti);
 str PCRElikesubselect2(bat *ret, const bat *bid, const bat *sid, const str 
*pat, const str *esc, const bit *caseignore, const bit *anti);
 str PCRElikesubselect3(bat *ret, const bat *bid, const bat *sid, const str 
*pat, const str *esc, const bit *anti);
@@ -2150,6 +2143,7 @@ str getTypeIdentifier(malType tpe);
 str getTypeName(malType tpe);
 lng getUserTime(void);
 lng getVolume(MalStkPtr stk, InstrPtr pci, int rd);
+int getprofilerlimit(void);
 str grantRef;
 str grant_functionRef;
 str grant_rolesRef;
@@ -2261,6 +2255,7 @@ str mal_quote(const char *msg, size_t si
 MT_Lock mal_remoteLock;
 void mal_resource_reset(void) __attribute__((__visibility__("hidden")));
 void mal_runtime_reset(void) __attribute__((__visibility__("hidden")));
+str mal_session_uuid;
 int mal_trace;
 void mal_unquote(char *msg);
 str manifoldRef;
@@ -2368,7 +2363,6 @@ str partitionRef;
 str passRef;
 str pcreRef;
 str pcre_init(void *ret);
-var_t pcre_put(Heap *h, var_t *bun, pcre *val);
 str pinRef;
 str plusRef;
 str postludeRef;
@@ -2474,11 +2468,11 @@ void setHeartbeat(int delay);
 void setPolymorphic(InstrPtr p, int tpe, int force);
 void setReturnArgument(InstrPtr p, int varid);
 str setScenario(Client c, str nme);
-void setVarName(MalBlkPtr mb, int i, str nme);
 void setVarType(MalBlkPtr mb, int i, int tpe);
 str setVariableRef;
 void setVariableScope(MalBlkPtr mb);
 str setWriteModeRef;
+void setprofilerlimit(int limit);
 str setprofilerpoolsize(int size);
 str shortStmtRendering(MalBlkPtr mb, MalStkPtr stl, InstrPtr p);
 void showAllScenarios(stream *f);
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -55,28 +55,28 @@ Ready.
 % .L1 # table_name
 % def # name
 % clob # type
-% 596 # length
-[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.jit();optimizer.oltp();optimizer.garbageCollector();"
       ]
+% 561 # length
+[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.oltp();optimizer.garbageCollector();"
  ]
 #explain copy into ttt from '/tmp/xyz';
 % .explain # table_name
 % mal # name
 % clob # type
-% 126 # length
+% 146 # length
 function user.s8_1():void;
-    X_38:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","default_pipe",16);
-    oltp.lock(534);
-    X_0 := sql.mvc();
-    (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-    X_25 := sql.append(X_0,"sys","ttt","a",X_21);
-    X_30 := sql.append(X_25,"sys","ttt","b",X_22);
-    X_33 := sql.append(X_30,"sys","ttt","c",X_23);
-    X_35 := aggr.count(X_23);
-    sql.affectedRows(X_33,X_35);
+    X_0:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","default_pipe",21:int);
+    oltp.lock(534:int);
+    X_3 := sql.mvc();
+    (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","/tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str);
+    X_28 := sql.append(X_3,"sys","ttt","a",X_24);
+    X_33 := sql.append(X_28,"sys","ttt","b",X_25);
+    X_36 := sql.append(X_33,"sys","ttt","c",X_26);
+    X_38 := aggr.count(X_26);
+    sql.affectedRows(X_36,X_38);
 catch MALexception:str;
 exit MALexception:str;
 catch SQLexception:str;
 exit SQLexception:str;
-    oltp.release(534);
+    oltp.release(534:int);
 end user.s8_1;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
@@ -120,28 +120,28 @@ end user.s8_1;
 % .L1 # table_name
 % def # name
 % clob # type
-% 619 # length
-[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.jit();optimizer.oltp();optimizer.sql_append();optimizer.garbageCollector();"
        ]
+% 584 # length
+[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.oltp();optimizer.sql_append();optimizer.garbageCollector();"
   ]
 #explain copy into ttt from '/tmp/xyz';
 % .explain # table_name
 % mal # name
 % clob # type
-% 126 # length
+% 146 # length
 function user.s24_1():void;
-    X_38:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","user_1",16);
-    oltp.lock(534);
-    X_0 := sql.mvc();
-    (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-    X_25 := sql.append(X_0,"sys","ttt","a",X_21);
-    X_30 := sql.append(X_25,"sys","ttt","b",X_22);
-    X_35 := aggr.count(X_23);
-    X_33 := sql.append(X_30,"sys","ttt","c",X_23);
-    sql.affectedRows(X_33,X_35);
+    X_0:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","user_1",21:int);
+    oltp.lock(534:int);
+    X_3 := sql.mvc();
+    (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","/tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str);
+    X_28 := sql.append(X_3,"sys","ttt","a",X_24);
+    X_33 := sql.append(X_28,"sys","ttt","b",X_25);
+    X_38 := aggr.count(X_26);
+    X_36 := sql.append(X_33,"sys","ttt","c",X_26);
+    sql.affectedRows(X_36,X_38);
 catch MALexception:str;
 exit MALexception:str;
 catch SQLexception:str;
 exit SQLexception:str;
-    oltp.release(534);
+    oltp.release(534:int);
 end user.s24_1;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -10,10 +10,12 @@
 #include <monetdb_config.h>
 #include <mal.h>
 
-char monet_cwd[PATHLENGTH] = { 0 };
-size_t monet_memory = 0;
+char   monet_cwd[PATHLENGTH] = { 0 };
+size_t         monet_memory = 0;
 char   monet_characteristics[PATHLENGTH];
-int mal_trace;         /* enable profile events on console */
+int            mal_trace;              /* enable profile events on console */
+str     mal_session_uuid;   /* unique marker for the session */
+
 #ifdef HAVE_HGE
 int have_hge;
 #endif
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -52,6 +52,7 @@ mal_export char       monet_characteristics[P
 mal_export lng                 memorypool;      /* memory claimed by 
concurrent threads */
 mal_export int                 memoryclaims;    /* number of threads active 
with expensive operations */
 mal_export int         mal_trace;              /* enable profile events on 
console */
+mal_export str         mal_session_uuid;       /* unique marker for the 
session */
 #ifdef HAVE_HGE
 mal_export int have_hge;
 #endif
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -882,16 +882,16 @@ freeVariable(MalBlkPtr mb, int varid)
 
 /* A special action is to reduce the variable space by removing all
  * that do not contribute.
+ * All temporary variables are renamed in the process to trim the varid.
  */
 void
 trimMalVariables_(MalBlkPtr mb, MalStkPtr glb)
 {
-       int *vars, cnt = 0, i, j;
-       int maxid = 0,m;
+       int *alias, cnt = 0, i, j;
        InstrPtr q;
 
-       vars = (int *) GDKzalloc(mb->vtop * sizeof(int));
-       if (vars == NULL)
+       alias = (int *) GDKzalloc(mb->vtop * sizeof(int));
+       if (alias == NULL)
                return;                                 /* forget it if we run 
out of memory */
 
        /* build the alias table */
@@ -902,11 +902,6 @@ trimMalVariables_(MalBlkPtr mb, MalStkPt
                        freeVariable(mb, i);
                        continue;
                }
-               if( isTmpVar(mb,i) ){
-                       m = atoi(getVarName(mb,i)+2);
-                       if( m > maxid)
-                               maxid = m;
-               }
         if (i > cnt) {
             /* remap temporary variables */
             VarRecord *t = mb->var[cnt];
@@ -916,7 +911,7 @@ trimMalVariables_(MalBlkPtr mb, MalStkPt
 
                /* valgrind finds a leak when we move these variable record
                 * pointers around. */
-               vars[i] = cnt;
+               alias[i] = cnt;
                if (glb && i != cnt) {
                        glb->stk[cnt] = glb->stk[i];
                        VALempty(&glb->stk[i]);
@@ -926,7 +921,7 @@ trimMalVariables_(MalBlkPtr mb, MalStkPt
 #ifdef DEBUG_REDUCE
        mnstr_printf(GDKout, "Variable reduction %d -> %d\n", mb->vtop, cnt);
        for (i = 0; i < mb->vtop; i++)
-               mnstr_printf(GDKout, "map %d->%d\n", i, vars[i]);
+               mnstr_printf(GDKout, "map %d->%d\n", i, alias[i]);
 #endif
 
        /* remap all variable references to their new position. */
@@ -934,16 +929,20 @@ trimMalVariables_(MalBlkPtr mb, MalStkPt
                for (i = 0; i < mb->stop; i++) {
                        q = getInstrPtr(mb, i);
                        for (j = 0; j < q->argc; j++)
-                               getArg(q, j) = vars[getArg(q, j)];
+                               getArg(q, j) = alias[getArg(q, j)];
                }
        }
-       /* reset the variable counter */
-       mb->vid= maxid + 1;
+       /* rename the temporary variable */
+       mb->vid = 0;
+       for( i =0; i< cnt; i++)
+       if( isTmpVar(mb,i))
+        (void) snprintf(mb->var[i]->id, IDLENGTH,"%c%c%d", REFMARKER, 
TMPMARKER,mb->vid++);
+       
 #ifdef DEBUG_REDUCE
        mnstr_printf(GDKout, "After reduction \n");
        printFunction(GDKout, mb, 0, 0);
 #endif
-       GDKfree(vars);
+       GDKfree(alias);
        mb->vtop = cnt;
 }
 
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to