Changeset: 573f914b2f9e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=573f914b2f9e
Modified Files:
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
Branch: default
Log Message:

Merge with Feb2013 branch.


diffs (truncated from 913 to 300 lines):

diff --git 
a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql 
b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql
--- 
a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql
+++ 
b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql
@@ -1,3 +1,6 @@
+-- disable parallelism (mitosis & dataflow) to avoid ambiguous results 
+set optimizer='sequential_pipe';
+
 start transaction;
 
 -- only explain output because not like's give to many rows.
diff --git 
a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
 
b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
--- 
a/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
+++ 
b/sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
@@ -29,365 +29,105 @@ Ready.
 % .explain # table_name
 % mal # name
 % clob # type
-% 96 # length
+% 68 # length
 function user.s0_1(A0:str):void;
-    X_11 := nil:bat[:oid,:str];
-    X_95 := nil:bat[:oid,:str];
-    X_94 := nil:bat[:oid,:str];
-    X_93 := nil:bat[:oid,:str];
-    X_92 := nil:bat[:oid,:str];
-barrier X_105 := language.dataflow();
     X_2 := sql.mvc();
-    X_48:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,0,4);
-    X_41:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",0,4);
-    X_76 := algebra.likesubselect(X_48,X_41,A0,"":str,false);
-    (X_52:bat[:oid,:oid] ,X_53:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,0,4);
-    X_80 := algebra.likesubselect(X_53,A0,"":str,false);
-    X_84 := sql.subdelta(X_76,X_52,X_80);
-    X_88 := sql.projectdelta(X_84,X_48,X_52,X_53);
-    X_49:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,1,4);
-    X_43:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",1,4);
-    X_77 := algebra.likesubselect(X_49,X_43,A0,"":str,false);
-    (X_54:bat[:oid,:oid] ,X_55:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,1,4);
-    X_81 := algebra.likesubselect(X_55,A0,"":str,false);
-    X_85 := sql.subdelta(X_77,X_54,X_81);
-    X_89 := sql.projectdelta(X_85,X_49,X_54,X_55);
-    X_50:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,2,4);
-    X_45:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",2,4);
-    X_78 := algebra.likesubselect(X_50,X_45,A0,"":str,false);
-    (X_56:bat[:oid,:oid] ,X_57:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,2,4);
-    X_82 := algebra.likesubselect(X_57,A0,"":str,false);
-    X_86 := sql.subdelta(X_78,X_56,X_82);
-    X_90 := sql.projectdelta(X_86,X_50,X_56,X_57);
-    X_51:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,3,4);
-    X_47:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",3,4);
-    X_79 := algebra.likesubselect(X_51,X_47,A0,"":str,false);
-    (X_58:bat[:oid,:oid] ,X_59:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,3,4);
-    X_83 := algebra.likesubselect(X_59,A0,"":str,false);
-    X_8 := sql.bind(X_2,"sys","functions","name",1);
-    X_38 := algebra.likesubselect(X_8,X_47,A0,"":str,false);
-    X_87 := sql.subdelta(X_79,X_58,X_83,X_38);
-    X_91 := sql.projectdelta(X_87,X_51,X_58,X_59,X_8);
-    X_97 := mat.packIncrement(X_88,4);
-    X_98 := mat.packIncrement(X_97,X_89);
-    X_99 := mat.packIncrement(X_98,X_90);
-    X_11 := mat.packIncrement(X_99,X_91);
-    X_63:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,3,4);
-    (X_70:bat[:oid,:oid] ,X_71:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,3,4);
-    X_13 := sql.bind(X_2,"sys","functions","func",1);
-    X_95 := sql.projectdelta(X_87,X_63,X_70,X_71,X_13);
-    X_62:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,2,4);
-    (X_68:bat[:oid,:oid] ,X_69:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,2,4);
-    X_94 := sql.projectdelta(X_86,X_62,X_68,X_69);
-    X_61:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,1,4);
-    (X_66:bat[:oid,:oid] ,X_67:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,1,4);
-    X_93 := sql.projectdelta(X_85,X_61,X_66,X_67);
-    X_60:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,0,4);
-    (X_64:bat[:oid,:oid] ,X_65:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,0,4);
-    X_92 := sql.projectdelta(X_84,X_60,X_64,X_65);
-    language.pass(X_48);
-    language.pass(X_52);
-    language.pass(X_53);
-    language.pass(X_49);
-    language.pass(X_54);
-    language.pass(X_55);
-    language.pass(X_50);
-    language.pass(X_56);
-    language.pass(X_57);
-    language.pass(X_47);
-    language.pass(X_51);
-    language.pass(X_58);
-    language.pass(X_59);
-    language.pass(X_8);
-    language.pass(X_87);
-    language.pass(X_86);
-    language.pass(X_85);
-    language.pass(X_84);
-exit X_105;
-    X_100:bat[:oid,:str]  := nil:bat[:oid,:str];
-    X_104:bat[:oid,:str]  := nil:bat[:oid,:str];
-    X_15 := sql.resultSet(2,1,X_11);
-    sql.rsColumn(X_15,"sys.functions","name","varchar",256,0,X_11);
-    X_101 := mat.packIncrement(X_92,4);
-    X_102 := mat.packIncrement(X_101,X_93);
-    X_103 := mat.packIncrement(X_102,X_94);
-    X_14 := mat.packIncrement(X_103,X_95);
-    sql.rsColumn(X_15,"sys.functions","func","varchar",8196,0,X_14);
-    X_24 := io.stdout();
-    sql.exportResult(X_24,X_15);
+    X_6 := sql.bind(X_2,"sys","functions","name",0);
+    X_3:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions");
+    X_44 := algebra.likesubselect(X_6,X_3,A0,"":str,false);
+    (X_9,r1_9) := sql.bind(X_2,"sys","functions","name",2);
+    X_45 := algebra.likesubselect(r1_9,A0,"":str,false);
+    X_12 := sql.bind(X_2,"sys","functions","name",1);
+    X_46 := algebra.likesubselect(X_12,X_3,A0,"":str,false);
+    X_14 := sql.subdelta(X_44,X_9,X_45,X_46);
+    X_16 := sql.projectdelta(X_14,X_6,X_9,r1_9,X_12);
+    X_17 := sql.bind(X_2,"sys","functions","func",0);
+    (X_19,r1_28) := sql.bind(X_2,"sys","functions","func",2);
+    X_21 := sql.bind(X_2,"sys","functions","func",1);
+    X_22 := sql.projectdelta(X_14,X_17,X_19,r1_28,X_21);
+    X_23 := sql.resultSet(2,1,X_16);
+    sql.rsColumn(X_23,"sys.functions","name","varchar",256,0,X_16);
+    sql.rsColumn(X_23,"sys.functions","func","varchar",8196,0,X_22);
+    X_32 := io.stdout();
+    sql.exportResult(X_32,X_23);
 end s0_1;
 #explain select name,func from functions where name not like '%optimizers%';
 % .explain # table_name
 % mal # name
 % clob # type
-% 96 # length
+% 68 # length
 function user.s1_1(A0:str):void;
-    X_11 := nil:bat[:oid,:str];
-    X_95 := nil:bat[:oid,:str];
-    X_94 := nil:bat[:oid,:str];
-    X_93 := nil:bat[:oid,:str];
-    X_92 := nil:bat[:oid,:str];
-barrier X_105 := language.dataflow();
     X_2 := sql.mvc();
-    X_48:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,0,4);
-    X_41:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",0,4);
-    X_76 := algebra.likesubselect(X_48,X_41,A0,"":str,true);
-    (X_52:bat[:oid,:oid] ,X_53:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,0,4);
-    X_80 := algebra.likesubselect(X_53,A0,"":str,true);
-    X_84 := sql.subdelta(X_76,X_52,X_80);
-    X_88 := sql.projectdelta(X_84,X_48,X_52,X_53);
-    X_49:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,1,4);
-    X_43:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",1,4);
-    X_77 := algebra.likesubselect(X_49,X_43,A0,"":str,true);
-    (X_54:bat[:oid,:oid] ,X_55:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,1,4);
-    X_81 := algebra.likesubselect(X_55,A0,"":str,true);
-    X_85 := sql.subdelta(X_77,X_54,X_81);
-    X_89 := sql.projectdelta(X_85,X_49,X_54,X_55);
-    X_50:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,2,4);
-    X_45:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",2,4);
-    X_78 := algebra.likesubselect(X_50,X_45,A0,"":str,true);
-    (X_56:bat[:oid,:oid] ,X_57:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,2,4);
-    X_82 := algebra.likesubselect(X_57,A0,"":str,true);
-    X_86 := sql.subdelta(X_78,X_56,X_82);
-    X_90 := sql.projectdelta(X_86,X_50,X_56,X_57);
-    X_51:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,3,4);
-    X_47:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",3,4);
-    X_79 := algebra.likesubselect(X_51,X_47,A0,"":str,true);
-    (X_58:bat[:oid,:oid] ,X_59:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,3,4);
-    X_83 := algebra.likesubselect(X_59,A0,"":str,true);
-    X_8 := sql.bind(X_2,"sys","functions","name",1);
-    X_38 := algebra.likesubselect(X_8,X_47,A0,"":str,true);
-    X_87 := sql.subdelta(X_79,X_58,X_83,X_38);
-    X_91 := sql.projectdelta(X_87,X_51,X_58,X_59,X_8);
-    X_97 := mat.packIncrement(X_88,4);
-    X_98 := mat.packIncrement(X_97,X_89);
-    X_99 := mat.packIncrement(X_98,X_90);
-    X_11 := mat.packIncrement(X_99,X_91);
-    X_63:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,3,4);
-    (X_70:bat[:oid,:oid] ,X_71:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,3,4);
-    X_13 := sql.bind(X_2,"sys","functions","func",1);
-    X_95 := sql.projectdelta(X_87,X_63,X_70,X_71,X_13);
-    X_62:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,2,4);
-    (X_68:bat[:oid,:oid] ,X_69:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,2,4);
-    X_94 := sql.projectdelta(X_86,X_62,X_68,X_69);
-    X_61:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,1,4);
-    (X_66:bat[:oid,:oid] ,X_67:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,1,4);
-    X_93 := sql.projectdelta(X_85,X_61,X_66,X_67);
-    X_60:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,0,4);
-    (X_64:bat[:oid,:oid] ,X_65:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,0,4);
-    X_92 := sql.projectdelta(X_84,X_60,X_64,X_65);
-    language.pass(X_48);
-    language.pass(X_52);
-    language.pass(X_53);
-    language.pass(X_49);
-    language.pass(X_54);
-    language.pass(X_55);
-    language.pass(X_50);
-    language.pass(X_56);
-    language.pass(X_57);
-    language.pass(X_47);
-    language.pass(X_51);
-    language.pass(X_58);
-    language.pass(X_59);
-    language.pass(X_8);
-    language.pass(X_87);
-    language.pass(X_86);
-    language.pass(X_85);
-    language.pass(X_84);
-exit X_105;
-    X_100:bat[:oid,:str]  := nil:bat[:oid,:str];
-    X_104:bat[:oid,:str]  := nil:bat[:oid,:str];
-    X_15 := sql.resultSet(2,1,X_11);
-    sql.rsColumn(X_15,"sys.functions","name","varchar",256,0,X_11);
-    X_101 := mat.packIncrement(X_92,4);
-    X_102 := mat.packIncrement(X_101,X_93);
-    X_103 := mat.packIncrement(X_102,X_94);
-    X_14 := mat.packIncrement(X_103,X_95);
-    sql.rsColumn(X_15,"sys.functions","func","varchar",8196,0,X_14);
-    X_24 := io.stdout();
-    sql.exportResult(X_24,X_15);
+    X_6 := sql.bind(X_2,"sys","functions","name",0);
+    X_3:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions");
+    X_44 := algebra.likesubselect(X_6,X_3,A0,"":str,true);
+    (X_9,r1_9) := sql.bind(X_2,"sys","functions","name",2);
+    X_45 := algebra.likesubselect(r1_9,A0,"":str,true);
+    X_12 := sql.bind(X_2,"sys","functions","name",1);
+    X_46 := algebra.likesubselect(X_12,X_3,A0,"":str,true);
+    X_14 := sql.subdelta(X_44,X_9,X_45,X_46);
+    X_16 := sql.projectdelta(X_14,X_6,X_9,r1_9,X_12);
+    X_17 := sql.bind(X_2,"sys","functions","func",0);
+    (X_19,r1_28) := sql.bind(X_2,"sys","functions","func",2);
+    X_21 := sql.bind(X_2,"sys","functions","func",1);
+    X_22 := sql.projectdelta(X_14,X_17,X_19,r1_28,X_21);
+    X_23 := sql.resultSet(2,1,X_16);
+    sql.rsColumn(X_23,"sys.functions","name","varchar",256,0,X_16);
+    sql.rsColumn(X_23,"sys.functions","func","varchar",8196,0,X_22);
+    X_32 := io.stdout();
+    sql.exportResult(X_32,X_23);
 end s1_1;
 #explain select name,func from functions where name ilike '%optimizers%';
 % .explain # table_name
 % mal # name
 % clob # type
-% 96 # length
+% 68 # length
 function user.s2_1(A0:str):void;
-    X_11 := nil:bat[:oid,:str];
-    X_95 := nil:bat[:oid,:str];
-    X_94 := nil:bat[:oid,:str];
-    X_93 := nil:bat[:oid,:str];
-    X_92 := nil:bat[:oid,:str];
-barrier X_105 := language.dataflow();
     X_2 := sql.mvc();
-    X_48:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,0,4);
-    X_41:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",0,4);
-    X_76 := algebra.ilikesubselect(X_48,X_41,A0,"":str,false);
-    (X_52:bat[:oid,:oid] ,X_53:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,0,4);
-    X_80 := algebra.ilikesubselect(X_53,A0,"":str,false);
-    X_84 := sql.subdelta(X_76,X_52,X_80);
-    X_88 := sql.projectdelta(X_84,X_48,X_52,X_53);
-    X_49:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,1,4);
-    X_43:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",1,4);
-    X_77 := algebra.ilikesubselect(X_49,X_43,A0,"":str,false);
-    (X_54:bat[:oid,:oid] ,X_55:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,1,4);
-    X_81 := algebra.ilikesubselect(X_55,A0,"":str,false);
-    X_85 := sql.subdelta(X_77,X_54,X_81);
-    X_89 := sql.projectdelta(X_85,X_49,X_54,X_55);
-    X_50:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,2,4);
-    X_45:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",2,4);
-    X_78 := algebra.ilikesubselect(X_50,X_45,A0,"":str,false);
-    (X_56:bat[:oid,:oid] ,X_57:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,2,4);
-    X_82 := algebra.ilikesubselect(X_57,A0,"":str,false);
-    X_86 := sql.subdelta(X_78,X_56,X_82);
-    X_90 := sql.projectdelta(X_86,X_50,X_56,X_57);
-    X_51:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","name",0,3,4);
-    X_47:bat[:oid,:oid]  := sql.tid(X_2,"sys","functions",3,4);
-    X_79 := algebra.ilikesubselect(X_51,X_47,A0,"":str,false);
-    (X_58:bat[:oid,:oid] ,X_59:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","name",2,3,4);
-    X_83 := algebra.ilikesubselect(X_59,A0,"":str,false);
-    X_8 := sql.bind(X_2,"sys","functions","name",1);
-    X_38 := algebra.ilikesubselect(X_8,X_47,A0,"":str,false);
-    X_87 := sql.subdelta(X_79,X_58,X_83,X_38);
-    X_91 := sql.projectdelta(X_87,X_51,X_58,X_59,X_8);
-    X_97 := mat.packIncrement(X_88,4);
-    X_98 := mat.packIncrement(X_97,X_89);
-    X_99 := mat.packIncrement(X_98,X_90);
-    X_11 := mat.packIncrement(X_99,X_91);
-    X_63:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,3,4);
-    (X_70:bat[:oid,:oid] ,X_71:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,3,4);
-    X_13 := sql.bind(X_2,"sys","functions","func",1);
-    X_95 := sql.projectdelta(X_87,X_63,X_70,X_71,X_13);
-    X_62:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,2,4);
-    (X_68:bat[:oid,:oid] ,X_69:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,2,4);
-    X_94 := sql.projectdelta(X_86,X_62,X_68,X_69);
-    X_61:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,1,4);
-    (X_66:bat[:oid,:oid] ,X_67:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,1,4);
-    X_93 := sql.projectdelta(X_85,X_61,X_66,X_67);
-    X_60:bat[:oid,:str]  := sql.bind(X_2,"sys","functions","func",0,0,4);
-    (X_64:bat[:oid,:oid] ,X_65:bat[:oid,:str] ) := 
sql.bind(X_2,"sys","functions","func",2,0,4);
-    X_92 := sql.projectdelta(X_84,X_60,X_64,X_65);
-    language.pass(X_48);
-    language.pass(X_52);
-    language.pass(X_53);
-    language.pass(X_49);
-    language.pass(X_54);
-    language.pass(X_55);
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to