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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list