Changeset: 008ebc355371 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=008ebc355371
Modified Files:
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        sql/backends/monet5/sql_optimizer.c
Branch: jit
Log Message:

pinning the empty column problem


diffs (77 lines):

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
@@ -61,12 +61,12 @@ Ready.
 % .explain # table_name
 % mal # name
 % clob # type
-% 118 # length
+% 126 # length
 function user.s8_1():void;
     X_24:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","default_pipe",12);
 barrier X_52 := language.dataflow();
     X_1 := sql.mvc();
-    (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0);
+    (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
 exit X_52;
     X_14 := sql.append(X_1,"sys","ttt","a",X_11);
     X_18 := sql.append(X_14,"sys","ttt","b",X_12);
@@ -122,12 +122,12 @@ end user.s8_1;
 % .explain # table_name
 % mal # name
 % clob # type
-% 118 # length
+% 126 # length
 function user.s24_1():void;
     X_24:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","user_1",12);
 barrier X_53 := language.dataflow();
     X_1 := sql.mvc();
-    (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0);
+    (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
 exit X_53;
     X_14 := sql.append(X_1,"sys","ttt","a",X_11);
     X_18 := sql.append(X_14,"sys","ttt","b",X_12);
diff --git a/sql/backends/monet5/sql_optimizer.c 
b/sql/backends/monet5/sql_optimizer.c
--- a/sql/backends/monet5/sql_optimizer.c
+++ b/sql/backends/monet5/sql_optimizer.c
@@ -85,24 +85,35 @@ SQLgetSpace(mvc *m, MalBlkPtr mb, int pr
                                size = SQLgetColumnSize(tr, c);
                                if( access == 0)
                                        space += size;  // accumulate once
-                               if( !prepare && size == 0 )
+                               if( !prepare && size == 0 ){
+                                       //mnstr_printf(GDKout,"found empty 
column %s.%s.%s prepare %d size "LLFMT"\n",sname,tname,cname,prepare,size);
                                        setFunctionId(p, emptycolumnRef);
+                               }
                        }
                }
                if (getModuleId(p) == sqlRef && (getFunctionId(p) == 
bindidxRef)) {
                        char *sname = getVarConstant(mb, getArg(p, 1 + 
p->retc)).val.sval;
-                       char *cname = getVarConstant(mb, getArg(p, 3 + 
p->retc)).val.sval;
+                       //char *tname = getVarConstant(mb, getArg(p, 2 + 
p->retc)).val.sval;
+                       char *idxname = getVarConstant(mb, getArg(p, 3 + 
p->retc)).val.sval;
                        sql_schema *s = mvc_bind_schema(m, sname);
+                       BAT *b;
 
                        if (getFunctionId(p) == bindidxRef) {
-                               sql_idx *i = mvc_bind_idx(m, s, cname);
+                               sql_idx *i = mvc_bind_idx(m, s, idxname);
+                               //t = mvc_bind_table(m, s, tname);
+                               //if (!t)
+                                       //continue;
 
                                if (i && (!isRemote(i->t) && 
!isMergeTable(i->t))) {
-                                       BAT *b = store_funcs.bind_idx(tr, i, 
RDONLY);
+                                       b = store_funcs.bind_idx(tr, i, RDONLY);
                                        if (b) {
                                                space += (size =getBatSpace(b));
-                                               if( !prepare && size == 0)
+/*
+                                               if( !prepare && size == 0){
                                                        setFunctionId(p, 
emptycolumnidxRef);
+                                                       
mnstr_printf(GDKout,"found empty column %s.%s.%s prepare %d size 
"LLFMT"\n",sname,tname,idxname,prepare,size);
+                                               }
+*/
                                                BBPunfix(b->batCacheid);
                                        }
                                }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to