Changeset: ef962eacc773 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ef962eacc773 Modified Files: sql/ChangeLog.Jun2010 Branch: default Log Message:
Merged from Jun2010 diffs (276 lines): diff -r e4e456d61e31 -r ef962eacc773 sql/ChangeLog.Jun2010 --- a/sql/ChangeLog.Jun2010 Tue Aug 17 10:18:48 2010 +0200 +++ b/sql/ChangeLog.Jun2010 Tue Aug 17 12:22:41 2010 +0200 @@ -1,10 +1,6 @@ # ChangeLog file for sql # This file is updated with Maddlog -* Fri Aug 16 2010 Niels Nes <ni...@cwi.nl> -- Fixed bug 2657, a regression after the fix for bug 2353. A join with a - single value subquery resulted in an assertion failure. - * Fri Aug 13 2010 Niels Nes <ni...@cwi.nl> - Fixed bug 2643 added more defensive code, when an aggregation function doesn't exist diff -r e4e456d61e31 -r ef962eacc773 sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.sql --- a/sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.sql Tue Aug 17 10:18:48 2010 +0200 +++ b/sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.sql Tue Aug 17 12:22:41 2010 +0200 @@ -39,9 +39,40 @@ insert into slice_test values ( 1, 1, 28323); insert into slice_test values ( 3, 5, 89439); -explain select x,y from slice_test limit 1; +set trace = 'none'; -- non-documented feature to not get any trace output +create function GetTrace() + returns table ( + event integer, -- event counter + clk varchar(20), -- wallclock, no mtime in kernel + pc varchar(50), -- module.function[nr] + thread int, -- thread identifier + ticks integer, -- time in microseconds + reads integer, -- number of blocks read + writes integer, -- number of blocks written + rbytes integer, -- amount of bytes touched + wbytes integer, -- amount of bytes written + type string, -- return types + stmt string -- actual statement executed + ) + external name sql.dump_trace; -explain select cast(x as string)||'-bla-'||cast(y as string) from slice_test limit 1; +TRACE select x,y from slice_test limit 1; +-- When mitosis was activated (i.e., the MAL plan contains mat.*() statements, +-- then there sould also be at least one mat.slice() statement. +SELECT count(*) FROM +( SELECT count(*) AS mat FROM GetTrace() WHERE stmt LIKE '% := mat.%' ) as m, +( SELECT count(*) AS mat_slice FROM GetTrace() WHERE stmt LIKE '% := mat.slice(%' ) as ms +WHERE ( mat = 0 AND mat_slice = 0 ) OR ( mat > 0 AND mat_slice > 0 ); + +TRACE select cast(x as string)||'-bla-'||cast(y as string) from slice_test limit 1; +-- When mitosis was activated (i.e., the MAL plan contains mat.*() statements, +-- then there sould also be at least one mat.slice() statement. +SELECT count(*) FROM +( SELECT count(*) AS mat FROM GetTrace() WHERE stmt LIKE '% := mat.%' ) as m, +( SELECT count(*) AS mat_slice FROM GetTrace() WHERE stmt LIKE '% := mat.slice(%' ) as ms +WHERE ( mat = 0 AND mat_slice = 0 ) OR ( mat > 0 AND mat_slice > 0 ); + +drop function GetTrace; drop table slice_test; diff -r e4e456d61e31 -r ef962eacc773 sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out --- a/sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out Tue Aug 17 10:18:48 2010 +0200 +++ b/sql/src/test/BugTracker-2010/Tests/mat.slice_limit1.Bug-2645.stable.out Tue Aug 17 12:22:41 2010 +0200 @@ -86,167 +86,52 @@ [ 1 ] #insert into slice_test values ( 3, 5, 89439); [ 1 ] -#explain select x,y from slice_test limit 1; -% .explain # table_name -% mal # name +#create function GetTrace() +# returns table ( +# event integer, -- event counter +# clk varchar(20), -- wallclock, no mtime in kernel +# pc varchar(50), -- module.function[nr] +# thread int, -- thread identifier +# ticks integer, -- time in microseconds +# reads integer, -- number of blocks read +# writes integer, -- number of blocks written +# rbytes integer, -- amount of bytes touched +# wbytes integer, -- amount of bytes written +# type string, -- return types +#TRACE select x,y from slice_test limit 1; +% sys.slice_test, sys.slice_test # table_name +% x, y # name +% int, int # type +% 1, 1 # length +[ 0, 1 ] +#SELECT count(*) FROM +#( SELECT count(*) AS mat FROM GetTrace() WHERE stmt LIKE '% := mat.%' ) as m, +#( SELECT count(*) AS mat_slice FROM GetTrace() WHERE stmt LIKE '% := mat.slice(%' ) as ms +#WHERE ( mat = 0 AND mat_slice = 0 ) OR ( mat > 0 AND mat_slice > 0 ); +% .m # table_name +% L6 # name +% wrd # type +% 1 # length +[ 1 ] +#TRACE select cast(x as string)||'-bla-'||cast(y as string) from slice_test limit 1; +% sys. # table_name +% concat_concat_x # name % clob # type -% 0 # length -function user.s1_1{autoCommit=true}():void; - _2 := sql.mvc(); -barrier _113 := language.dataflow(); - _48:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,0...@0,7...@0); - _7:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",2); - _59 := algebra.kdifference(_48,_7); - _63 := algebra.semijoin(_7,_48); - _67 := algebra.kunion(_59,_63); - _11:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","slice_test",1); - _12 := bat.reverse(_11); - _71 := algebra.kdifference(_67,_12); - _50:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,7...@0,1...@0); - _60 := algebra.kdifference(_50,_7); - _64 := algebra.semijoin(_7,_50); - _68 := algebra.kunion(_60,_64); - _73 := algebra.kdifference(_68,_12); - _52:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,1...@0,2...@0); - _61 := algebra.kdifference(_52,_7); - _65 := algebra.semijoin(_7,_52); - _69 := algebra.kunion(_61,_65); - _74 := algebra.kdifference(_69,_12); - _54:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,2...@0,nil:oid); - _62 := algebra.kdifference(_54,_7); - _66 := algebra.semijoin(_7,_54); - _70 := algebra.kunion(_62,_66); - _75 := algebra.kdifference(_70,_12); - _9:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",1); - _76 := algebra.kdifference(_9,_12); - _13 := mat.slice(0:wrd,0:wrd,_71,_73,_74,_75,_76); - _14 := algebra.slice(_13,0:wrd,0:wrd); - _17:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",1); - _18:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","slice_test",1); - _21 := bat.reverse(_18); - _99 := algebra.kdifference(_17,_21); - _104 := algebra.semijoin(_99,_13); - _110 := algebra.semijoin(_104,_14); - _58:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,2...@0,nil:oid); - _16:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",2); - _85 := algebra.kdifference(_58,_16); - _89 := algebra.semijoin(_16,_58); - _93 := algebra.kunion(_85,_89); - _98 := algebra.kdifference(_93,_21); - _103 := algebra.semijoin(_98,_13); - _109 := algebra.semijoin(_103,_14); - _57:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,1...@0,2...@0); - _83 := algebra.kdifference(_57,_16); - _88 := algebra.semijoin(_16,_57); - _92 := algebra.kunion(_83,_88); - _97 := algebra.kdifference(_92,_21); - _102 := algebra.semijoin(_97,_13); - _108 := algebra.semijoin(_102,_14); - _56:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,7...@0,1...@0); - _81 := algebra.kdifference(_56,_16); - _87 := algebra.semijoin(_16,_56); - _91 := algebra.kunion(_81,_87); - _96 := algebra.kdifference(_91,_21); - _101 := algebra.semijoin(_96,_13); - _107 := algebra.semijoin(_101,_14); - _55:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,0...@0,7...@0); - _79 := algebra.kdifference(_55,_16); - _86 := algebra.semijoin(_16,_55); - _90 := algebra.kunion(_79,_86); - _95 := algebra.kdifference(_90,_21); - _100 := algebra.semijoin(_95,_13); - _105 := algebra.semijoin(_100,_14); -exit _113; - _23 := sql.resultSet(2,1,_14); - sql.rsColumn(_23,"sys.slice_test","x","int",32,0,_14); - _22 := mat.pack(_105,_107,_108,_109,_110); - sql.rsColumn(_23,"sys.slice_test","y","int",32,0,_22); - _33 := io.stdout(); - sql.exportResult(_33,_23); -end s1_1; -#explain select cast(x as string)||'-bla-'||cast(y as string) from slice_test limit 1; -% .explain # table_name -% mal # name -% clob # type -% 0 # length -function user.s2_1{autoCommit=true}():void; - _2 := sql.mvc(); -barrier _117 := language.dataflow(); - _52:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,0...@0,7...@0); - _7:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",2); - _63 := algebra.kdifference(_52,_7); - _67 := algebra.semijoin(_7,_52); - _71 := algebra.kunion(_63,_67); - _11:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","slice_test",1); - _12 := bat.reverse(_11); - _76 := algebra.kdifference(_71,_12); - _54:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,7...@0,1...@0); - _64 := algebra.kdifference(_54,_7); - _68 := algebra.semijoin(_7,_54); - _72 := algebra.kunion(_64,_68); - _77 := algebra.kdifference(_72,_12); - _56:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,1...@0,2...@0); - _65 := algebra.kdifference(_56,_7); - _69 := algebra.semijoin(_7,_56); - _73 := algebra.kunion(_65,_69); - _78 := algebra.kdifference(_73,_12); - _58:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",0,2...@0,nil:oid); - _66 := algebra.kdifference(_58,_7); - _70 := algebra.semijoin(_7,_58); - _74 := algebra.kunion(_66,_70); - _79 := algebra.kdifference(_74,_12); - _9:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","x",1); - _80 := algebra.kdifference(_9,_12); - _13 := mat.slice(0:wrd,0:wrd,_76,_77,_78,_79,_80); - _14:bat[:oid,:str] := batcalc.str(6,32,0,0,_13,0); - _17:bat[:oid,:str] := batcalc.+(_14,"-bla-"); - _59:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,0...@0,7...@0); - _22:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",2); - _83 := algebra.kdifference(_59,_22); - _90 := algebra.semijoin(_22,_59); - _94 := algebra.kunion(_83,_90); - _26:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","slice_test",1); - _27 := bat.reverse(_26); - _99 := algebra.kdifference(_94,_27); - _104 := algebra.semijoin(_99,_13); - _109 := batcalc.str(6,32,0,0,_104,0); - _60:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,7...@0,1...@0); - _85 := algebra.kdifference(_60,_22); - _91 := algebra.semijoin(_22,_60); - _95 := algebra.kunion(_85,_91); - _100 := algebra.kdifference(_95,_27); - _105 := algebra.semijoin(_100,_13); - _111 := batcalc.str(6,32,0,0,_105,0); - _61:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,1...@0,2...@0); - _87 := algebra.kdifference(_61,_22); - _92 := algebra.semijoin(_22,_61); - _96 := algebra.kunion(_87,_92); - _101 := algebra.kdifference(_96,_27); - _106 := algebra.semijoin(_101,_13); - _112 := batcalc.str(6,32,0,0,_106,0); - _62:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",0,2...@0,nil:oid); - _89 := algebra.kdifference(_62,_22); - _93 := algebra.semijoin(_22,_62); - _97 := algebra.kunion(_89,_93); - _102 := algebra.kdifference(_97,_27); - _107 := algebra.semijoin(_102,_13); - _113 := batcalc.str(6,32,0,0,_107,0); - _24:bat[:oid,:int] := sql.bind(_2,"sys","slice_test","y",1); - _103 := algebra.kdifference(_24,_27); - _108 := algebra.semijoin(_103,_13); - _114 := batcalc.str(6,32,0,0,_108,0); - _28:bat[:oid,:str] := mat.pack(_109,_111,_112,_113,_114); - _29:bat[:oid,:str] := batcalc.+(_17,_28); - _30 := algebra.slice(_29,0:wrd,0:wrd); -exit _117; - _31 := sql.resultSet(1,1,_30); - sql.rsColumn(_31,"sys.","concat_concat_x","clob",0,0,_30); - _36 := io.stdout(); - sql.exportResult(_36,_31); -end s2_1; +% 7 # length +[ "0-bla-1" ] +#SELECT count(*) FROM +#( SELECT count(*) AS mat FROM GetTrace() WHERE stmt LIKE '% := mat.%' ) as m, +#( SELECT count(*) AS mat_slice FROM GetTrace() WHERE stmt LIKE '% := mat.slice(%' ) as ms +#WHERE ( mat = 0 AND mat_slice = 0 ) OR ( mat > 0 AND mat_slice > 0 ); +% .m # table_name +% L6 # name +% wrd # type +% 1 # length +[ 1 ] +#drop function GetTrace; #drop table slice_test; -# 15:04:12 > -# 15:04:12 > Done. -# 15:04:12 > +# 10:54:05 > +# 10:54:05 > Done. +# 10:54:05 > _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list