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