Changeset: 5e28eba402a1 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5e28eba402a1 Modified Files: sql/backends/monet5/sql.c sql/test/mosaic/Tests/compression.sql sql/test/mosaic/Tests/compression.stable.err sql/test/mosaic/Tests/compression.stable.out sql/test/mosaic/Tests/compressionRLE.sql sql/test/mosaic/Tests/compressionRLE.stable.out sql/test/mosaic/Tests/xqueries.sql sql/test/mosaic/Tests/xqueries.stable.out sql/test/mosaic/Tests/xqueries_delta.sql sql/test/mosaic/Tests/xqueries_delta.stable.out sql/test/mosaic/Tests/xqueries_rle.sql sql/test/mosaic/Tests/xqueries_rle.stable.out Branch: mosaic Log Message:
Fix storage() function diffs (truncated from 1301 to 300 lines): diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -4661,7 +4661,7 @@ SQLoptimizersUpdate(Client cntxt, MalBlk str sql_storage(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { - BAT *sch, *tab, *col, *type, *loc, *cnt, *atom, *size, *heap, *indices, *phash, *sort, *imprints, *mode; + BAT *sch, *tab, *col, *type, *loc, *cnt, *atom, *size, *heap, *indices, *phash, *sort, *imprints, *mode, *compressed; mvc *m = NULL; str msg; sql_trans *tr; @@ -4682,6 +4682,7 @@ sql_storage(Client cntxt, MalBlkPtr mb, bat *rphash = getArgReference_bat(stk, pci, 11); bat *rimprints = getArgReference_bat(stk, pci, 12); bat *rsort = getArgReference_bat(stk, pci, 13); + bat *rcompressed = getArgReference_bat(stk, pci, 14); if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL) return msg; @@ -4717,10 +4718,12 @@ sql_storage(Client cntxt, MalBlkPtr mb, BATseqbase(imprints, 0); sort = BATnew(TYPE_void, TYPE_bit, 0, TRANSIENT); BATseqbase(sort, 0); + compressed = BATnew(TYPE_void, TYPE_bit, 0, TRANSIENT); + BATseqbase(compressed, 0); if (sch == NULL || tab == NULL || col == NULL || type == NULL || mode == NULL || loc == NULL || imprints == NULL || - sort == NULL || cnt == NULL || atom == NULL || size == NULL || heap == NULL || indices == NULL || phash == NULL) { + sort == NULL || cnt == NULL || atom == NULL || size == NULL || heap == NULL || indices == NULL || phash == NULL || compressed == NULL) { if (sch) BBPunfix(sch->batCacheid); if (tab) @@ -4749,6 +4752,8 @@ sql_storage(Client cntxt, MalBlkPtr mb, BBPunfix(imprints->batCacheid); if (sort) BBPunfix(sort->batCacheid); + if (compressed) + BBPunfix(compressed->batCacheid); throw(SQL, "sql.storage", MAL_MALLOC_FAIL); } for (nsch = tr->schemas.set->h; nsch; nsch = nsch->next) { @@ -4837,6 +4842,10 @@ sql_storage(Client cntxt, MalBlkPtr mb, w = BATtordered(bn); BUNappend(sort, &w, FALSE); + + w = bn->T->heap.compressed; + BUNappend(compressed, &w, FALSE); + BBPunfix(bn->batCacheid); } @@ -4916,6 +4925,8 @@ sql_storage(Client cntxt, MalBlkPtr mb, /*printf("\n"); */ w = BATtordered(bn); BUNappend(sort, &w, FALSE); + w = bn->T->heap.compressed; + BUNappend(compressed, &w, FALSE); BBPunfix(bn->batCacheid); } } @@ -4937,6 +4948,7 @@ sql_storage(Client cntxt, MalBlkPtr mb, BBPkeepref(*rphash = phash->batCacheid); BBPkeepref(*rimprints = imprints->batCacheid); BBPkeepref(*rsort = sort->batCacheid); + BBPkeepref(*rcompressed = compressed->batCacheid); return MAL_SUCCEED; } diff --git a/sql/test/mosaic/Tests/compression.sql b/sql/test/mosaic/Tests/compression.sql --- a/sql/test/mosaic/Tests/compression.sql +++ b/sql/test/mosaic/Tests/compression.sql @@ -1,6 +1,5 @@ set optimizer='sequential_pipe'; -drop table tmp3; create table tmp3( i integer, b boolean, f real,t timestamp); insert into tmp3 values (1, true, 0.314,'2014-08-23 11:34:54.000000'), @@ -101,7 +100,7 @@ alter table tmp3 alter column f set stor explain select * from tmp3; select * from tmp3; -select * from storage where "table" = 'tmp3'; +--select * from storage where "table" = 'tmp3'; select count(*) from tmp3; alter table tmp3 alter column i set storage NULL; @@ -113,4 +112,4 @@ select * from tmp3; alter table tmp3 set read write; select * from tmp3; ---drop table tmp3; +drop table tmp3; diff --git a/sql/test/mosaic/Tests/compression.stable.err b/sql/test/mosaic/Tests/compression.stable.err --- a/sql/test/mosaic/Tests/compression.stable.err +++ b/sql/test/mosaic/Tests/compression.stable.err @@ -30,9 +30,6 @@ stderr of test 'compression` in director # 14:00:27 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-19726" "--port=38313" # 14:00:27 > -MAPI = (monetdb) /var/tmp/mtest-11985/.s.monetdb.37250 -QUERY = drop table tmp3; -ERROR = !DROP TABLE: no such table 'tmp3' # 14:00:27 > diff --git a/sql/test/mosaic/Tests/compression.stable.out b/sql/test/mosaic/Tests/compression.stable.out --- a/sql/test/mosaic/Tests/compression.stable.out +++ b/sql/test/mosaic/Tests/compression.stable.out @@ -45,26 +45,45 @@ Ready. % mal # name % clob # type % 85 # length -function user.s6_1{autoCommit=true}():void; - X_36:void := querylog.define("explain select * from tmp3;","sequential_pipe",20); +function user.s5_1{autoCommit=true}():void; + X_57:void := querylog.define("explain select * from tmp3;","sequential_pipe",39); + X_20 := bat.new(nil:oid,nil:str); + X_28 := bat.append(X_20,"sys.tmp3"); + X_36 := bat.append(X_28,"sys.tmp3"); + X_43 := bat.append(X_36,"sys.tmp3"); + X_50 := bat.append(X_43,"sys.tmp3"); + X_23 := bat.new(nil:oid,nil:str); + X_30 := bat.append(X_23,"i"); + X_37 := bat.append(X_30,"b"); + X_44 := bat.append(X_37,"f"); + X_51 := bat.append(X_44,"t"); + X_24 := bat.new(nil:oid,nil:str); + X_31 := bat.append(X_24,"int"); + X_38 := bat.append(X_31,"boolean"); + X_45 := bat.append(X_38,"real"); + X_52 := bat.append(X_45,"timestamp"); + X_25 := bat.new(nil:oid,nil:int); + X_33 := bat.append(X_25,32); + X_40 := bat.append(X_33,1); + X_47 := bat.append(X_40,24); + X_54 := bat.append(X_47,7); + X_27 := bat.new(nil:oid,nil:int); + X_35 := bat.append(X_27,0); + X_42 := bat.append(X_35,0); + X_49 := bat.append(X_42,0); + X_56 := bat.append(X_49,0); X_2 := sql.mvc(); X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp3"); X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp3","i",0); X_9 := mosaic.leftfetchjoin(X_3,X_6); - X_16:bat[:oid,:timestamp] := sql.bind(X_2,"sys","tmp3","t",0); - X_18 := mosaic.leftfetchjoin(X_3,X_16); - X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); - X_15 := mosaic.leftfetchjoin(X_3,X_13); X_10:bat[:oid,:bit] := sql.bind(X_2,"sys","tmp3","b",0); X_12 := mosaic.leftfetchjoin(X_3,X_10); - X_19 := sql.resultSet(4,1,X_9); - sql.rsColumn(X_19,"sys.tmp3","i","int",32,0,X_9); - sql.rsColumn(X_19,"sys.tmp3","b","boolean",1,0,X_12); - sql.rsColumn(X_19,"sys.tmp3","f","real",24,0,X_15); - sql.rsColumn(X_19,"sys.tmp3","t","timestamp",7,0,X_18); - X_34 := io.stdout(); - sql.exportResult(X_34,X_19); -end user.s6_1; + X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); + X_15 := mosaic.leftfetchjoin(X_3,X_13); + X_16:bat[:oid,:timestamp] := sql.bind(X_2,"sys","tmp3","t",0); + X_18 := mosaic.leftfetchjoin(X_3,X_16); + sql.resultSet(X_50,X_51,X_52,X_54,X_56,X_9,X_12,X_15,X_18); +end user.s5_1; #select * from tmp3; % sys.tmp3, sys.tmp3, sys.tmp3, sys.tmp3 # table_name % i, b, f, t # name @@ -164,26 +183,45 @@ end user.s6_1; % mal # name % clob # type % 85 # length -function user.s10_1{autoCommit=true}():void; - X_36:void := querylog.define("explain select * from tmp3;","sequential_pipe",20); +function user.s9_1{autoCommit=true}():void; + X_57:void := querylog.define("explain select * from tmp3;","sequential_pipe",39); + X_20 := bat.new(nil:oid,nil:str); + X_28 := bat.append(X_20,"sys.tmp3"); + X_36 := bat.append(X_28,"sys.tmp3"); + X_43 := bat.append(X_36,"sys.tmp3"); + X_50 := bat.append(X_43,"sys.tmp3"); + X_23 := bat.new(nil:oid,nil:str); + X_30 := bat.append(X_23,"i"); + X_37 := bat.append(X_30,"b"); + X_44 := bat.append(X_37,"f"); + X_51 := bat.append(X_44,"t"); + X_24 := bat.new(nil:oid,nil:str); + X_31 := bat.append(X_24,"int"); + X_38 := bat.append(X_31,"boolean"); + X_45 := bat.append(X_38,"real"); + X_52 := bat.append(X_45,"timestamp"); + X_25 := bat.new(nil:oid,nil:int); + X_33 := bat.append(X_25,32); + X_40 := bat.append(X_33,1); + X_47 := bat.append(X_40,24); + X_54 := bat.append(X_47,7); + X_27 := bat.new(nil:oid,nil:int); + X_35 := bat.append(X_27,0); + X_42 := bat.append(X_35,0); + X_49 := bat.append(X_42,0); + X_56 := bat.append(X_49,0); X_2 := sql.mvc(); X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp3"); X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp3","i",0); X_9 := mosaic.leftfetchjoin(X_3,X_6); - X_16:bat[:oid,:timestamp] := sql.bind(X_2,"sys","tmp3","t",0); - X_18 := mosaic.leftfetchjoin(X_3,X_16); - X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); - X_15 := mosaic.leftfetchjoin(X_3,X_13); X_10:bat[:oid,:bit] := sql.bind(X_2,"sys","tmp3","b",0); X_12 := mosaic.leftfetchjoin(X_3,X_10); - X_19 := sql.resultSet(4,1,X_9); - sql.rsColumn(X_19,"sys.tmp3","i","int",32,0,X_9); - sql.rsColumn(X_19,"sys.tmp3","b","boolean",1,0,X_12); - sql.rsColumn(X_19,"sys.tmp3","f","real",24,0,X_15); - sql.rsColumn(X_19,"sys.tmp3","t","timestamp",7,0,X_18); - X_34 := io.stdout(); - sql.exportResult(X_34,X_19); -end user.s10_1; + X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); + X_15 := mosaic.leftfetchjoin(X_3,X_13); + X_16:bat[:oid,:timestamp] := sql.bind(X_2,"sys","tmp3","t",0); + X_18 := mosaic.leftfetchjoin(X_3,X_16); + sql.resultSet(X_50,X_51,X_52,X_54,X_56,X_9,X_12,X_15,X_18); +end user.s9_1; #select * from tmp3; % sys.tmp3, sys.tmp3, sys.tmp3, sys.tmp3 # table_name % i, b, f, t # name @@ -275,15 +313,6 @@ end user.s10_1; [ 8, false, 0.317, 2014-08-23 11:34:54.000000 ] [ 9, false, 0.317, 2014-08-23 11:34:54.000000 ] [ 10, false, 0.317, 2014-08-23 11:34:54.000000 ] -#select * from storage where "table" = 'tmp3'; -% .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage, .storage # table_name -% schema, table, column, type, mode, location, count, typewidth, columnsize, heapsize, hashes, imprints, sorted, compress # name -% clob, clob, clob, clob, clob, clob, bigint, int, bigint, bigint, bigint, bigint, boolean, boolean # type -% 3, 4, 1, 9, 8, 6, 2, 1, 3, 1, 1, 1, 5, 5 # length -[ "sys", "tmp3", "i", "int", "readonly", "04/407", 86, 4, 344, 0, 0, 0, false, false ] -[ "sys", "tmp3", "b", "boolean", "readonly", "04/471", 86, 1, 86, 0, 0, 0, false, false ] -[ "sys", "tmp3", "f", "real", "readonly", "05/511", 86, 4, 344, 0, 0, 0, false, false ] -[ "sys", "tmp3", "t", "timestamp", "readonly", "05/510", 86, 8, 688, 0, 0, 0, true, false ] #select count(*) from tmp3; % sys.L1 # table_name % L1 # name @@ -298,26 +327,45 @@ end user.s10_1; % mal # name % clob # type % 85 # length -function user.s16_1{autoCommit=true}():void; - X_36:void := querylog.define("explain select * from tmp3;","sequential_pipe",20); +function user.s14_1{autoCommit=true}():void; + X_57:void := querylog.define("explain select * from tmp3;","sequential_pipe",39); + X_20 := bat.new(nil:oid,nil:str); + X_28 := bat.append(X_20,"sys.tmp3"); + X_36 := bat.append(X_28,"sys.tmp3"); + X_43 := bat.append(X_36,"sys.tmp3"); + X_50 := bat.append(X_43,"sys.tmp3"); + X_23 := bat.new(nil:oid,nil:str); + X_30 := bat.append(X_23,"i"); + X_37 := bat.append(X_30,"b"); + X_44 := bat.append(X_37,"f"); + X_51 := bat.append(X_44,"t"); + X_24 := bat.new(nil:oid,nil:str); + X_31 := bat.append(X_24,"int"); + X_38 := bat.append(X_31,"boolean"); + X_45 := bat.append(X_38,"real"); + X_52 := bat.append(X_45,"timestamp"); + X_25 := bat.new(nil:oid,nil:int); + X_33 := bat.append(X_25,32); + X_40 := bat.append(X_33,1); + X_47 := bat.append(X_40,24); + X_54 := bat.append(X_47,7); + X_27 := bat.new(nil:oid,nil:int); + X_35 := bat.append(X_27,0); + X_42 := bat.append(X_35,0); + X_49 := bat.append(X_42,0); + X_56 := bat.append(X_49,0); X_2 := sql.mvc(); X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp3"); X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp3","i",0); X_9 := mosaic.leftfetchjoin(X_3,X_6); - X_16:bat[:oid,:timestamp] := sql.bind(X_2,"sys","tmp3","t",0); - X_18 := mosaic.leftfetchjoin(X_3,X_16); - X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); - X_15 := mosaic.leftfetchjoin(X_3,X_13); X_10:bat[:oid,:bit] := sql.bind(X_2,"sys","tmp3","b",0); X_12 := mosaic.leftfetchjoin(X_3,X_10); - X_19 := sql.resultSet(4,1,X_9); - sql.rsColumn(X_19,"sys.tmp3","i","int",32,0,X_9); - sql.rsColumn(X_19,"sys.tmp3","b","boolean",1,0,X_12); - sql.rsColumn(X_19,"sys.tmp3","f","real",24,0,X_15); - sql.rsColumn(X_19,"sys.tmp3","t","timestamp",7,0,X_18); - X_34 := io.stdout(); - sql.exportResult(X_34,X_19); -end user.s16_1; + X_13:bat[:oid,:flt] := sql.bind(X_2,"sys","tmp3","f",0); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list