Changeset: 3113872aae59 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3113872aae59
Added Files:
        sql/test/mosaic/Tests/xqueries_delta.sql
        sql/test/mosaic/Tests/xqueries_delta.stable.err
        sql/test/mosaic/Tests/xqueries_delta.stable.out
        sql/test/mosaic/Tests/xqueries_rle.sql
        sql/test/mosaic/Tests/xqueries_rle.stable.err
        sql/test/mosaic/Tests/xqueries_rle.stable.out
Modified Files:
        monetdb5/optimizer/opt_mosaic.c
        sql/test/mosaic/Tests/All
        sql/test/mosaic/Tests/xqueries.sql
        sql/test/mosaic/Tests/xqueries.stable.out
Branch: mosaic
Log Message:

Approved output on more selections over mosaics


diffs (truncated from 1052 to 300 lines):

diff --git a/monetdb5/optimizer/opt_mosaic.c b/monetdb5/optimizer/opt_mosaic.c
--- a/monetdb5/optimizer/opt_mosaic.c
+++ b/monetdb5/optimizer/opt_mosaic.c
@@ -52,6 +52,7 @@ static int OPTmosaicType(MalBlkPtr mb, I
        }
        return 0;
 }
+
 int 
 OPTmosaicImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
diff --git a/sql/test/mosaic/Tests/All b/sql/test/mosaic/Tests/All
--- a/sql/test/mosaic/Tests/All
+++ b/sql/test/mosaic/Tests/All
@@ -1,3 +1,5 @@
 compression
 compressionRLE
 xqueries
+xqueries_rle
+xqueries_delta
diff --git a/sql/test/mosaic/Tests/xqueries.sql 
b/sql/test/mosaic/Tests/xqueries.sql
--- a/sql/test/mosaic/Tests/xqueries.sql
+++ b/sql/test/mosaic/Tests/xqueries.sql
@@ -94,6 +94,10 @@ alter table tmp3 set read only;
 
 explain select count(*) from tmp3 where i <4;
 select count(*) from tmp3 where i <4;
+explain select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where f <0.316;
+select count(*) from tmp3 where b = true;
 
 alter table tmp3 alter column i set storage 'none';
 alter table tmp3 alter column b set storage 'none';
@@ -101,6 +105,10 @@ alter table tmp3 alter column f set stor
 
 explain select count(*) from tmp3 where i <4;
 select count(*) from tmp3 where i <4;
+explain select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where f <0.316;
+select count(*) from tmp3 where b = true;
 
 --select * from storage where "table" = 'tmp3';
 alter table tmp3 alter column i set storage NULL;
@@ -109,6 +117,10 @@ alter table tmp3 alter column f set stor
 
 explain select count(*) from tmp3 where i <4;
 select count(*) from tmp3 where i <4;
+explain select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where i = 7;
+select count(*) from tmp3 where f <0.316;
+select count(*) from tmp3 where b = true;
 
 alter table tmp3 set read write;
 --select * from tmp3;
diff --git a/sql/test/mosaic/Tests/xqueries.stable.out 
b/sql/test/mosaic/Tests/xqueries.stable.out
--- a/sql/test/mosaic/Tests/xqueries.stable.out
+++ b/sql/test/mosaic/Tests/xqueries.stable.out
@@ -49,12 +49,11 @@ Ready.
 % 84 # length
 function user.s6_1{autoCommit=true}(A0:int):void;
     X_3 := sql.mvc();
-    X_35:bat[:oid,:int]  := sql.bind(X_3,"sys","tmp3","i",0);
-    X_7 := mosaic.decompress(X_35);
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
     X_10 := X_7;
     X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
-    X_11 := algebra.thetasubselect(X_10,X_4,A0,"<");
-    X_13 := algebra.leftfetchjoin(X_11,X_10);
+    X_11 := mosaic.thetasubselect(X_10,X_4,A0,"<");
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
     X_14 := aggr.count(X_13);
     sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
 end s6_1;
@@ -65,6 +64,40 @@ end s6_1;
 % wrd # type
 % 2 # length
 [ 44   ]
+#explain select count(*) from tmp3 where i = 7;
+% .explain # table_name
+% mal # name
+% clob # type
+% 85 # length
+function user.s7_1{autoCommit=true}(A0:int):void;
+    X_3 := sql.mvc();
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
+    X_10 := X_7;
+    X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
+    X_11 := mosaic.subselect(X_10,X_4,A0,A0,true,true,false);
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
+    X_14 := aggr.count(X_13);
+    sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
+end s7_1;
+# querylog.define("explain select count(*) from tmp3 where i = 
7;","sequential_pipe")
+#select count(*) from tmp3 where i = 7;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 1 # length
+[ 2    ]
+#select count(*) from tmp3 where f <0.316;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 42   ]
+#select count(*) from tmp3 where b = true;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 66   ]
 #alter table tmp3 alter column i set storage 'none';
 #alter table tmp3 alter column b set storage 'none';
 #alter table tmp3 alter column f set storage 'none';
@@ -73,17 +106,16 @@ end s6_1;
 % mal # name
 % clob # type
 % 84 # length
-function user.s10_1{autoCommit=true}(A0:int):void;
+function user.s13_1{autoCommit=true}(A0:int):void;
     X_3 := sql.mvc();
-    X_35:bat[:oid,:int]  := sql.bind(X_3,"sys","tmp3","i",0);
-    X_7 := mosaic.decompress(X_35);
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
     X_10 := X_7;
     X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
-    X_11 := algebra.thetasubselect(X_10,X_4,A0,"<");
-    X_13 := algebra.leftfetchjoin(X_11,X_10);
+    X_11 := mosaic.thetasubselect(X_10,X_4,A0,"<");
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
     X_14 := aggr.count(X_13);
     sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
-end s10_1;
+end s13_1;
 # querylog.define("explain select count(*) from tmp3 where i 
<4;","sequential_pipe")
 #select count(*) from tmp3 where i <4;
 % sys.L1 # table_name
@@ -91,6 +123,40 @@ end s10_1;
 % wrd # type
 % 2 # length
 [ 44   ]
+#explain select count(*) from tmp3 where i = 7;
+% .explain # table_name
+% mal # name
+% clob # type
+% 85 # length
+function user.s14_1{autoCommit=true}(A0:int):void;
+    X_3 := sql.mvc();
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
+    X_10 := X_7;
+    X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
+    X_11 := mosaic.subselect(X_10,X_4,A0,A0,true,true,false);
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
+    X_14 := aggr.count(X_13);
+    sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
+end s14_1;
+# querylog.define("explain select count(*) from tmp3 where i = 
7;","sequential_pipe")
+#select count(*) from tmp3 where i = 7;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 1 # length
+[ 2    ]
+#select count(*) from tmp3 where f <0.316;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 42   ]
+#select count(*) from tmp3 where b = true;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 66   ]
 #alter table tmp3 alter column i set storage NULL;
 #alter table tmp3 alter column b set storage NULL;
 #alter table tmp3 alter column f set storage NULL;
@@ -99,17 +165,16 @@ end s10_1;
 % mal # name
 % clob # type
 % 84 # length
-function user.s14_1{autoCommit=true}(A0:int):void;
+function user.s20_1{autoCommit=true}(A0:int):void;
     X_3 := sql.mvc();
-    X_35:bat[:oid,:int]  := sql.bind(X_3,"sys","tmp3","i",0);
-    X_7 := mosaic.decompress(X_35);
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
     X_10 := X_7;
     X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
-    X_11 := algebra.thetasubselect(X_10,X_4,A0,"<");
-    X_13 := algebra.leftfetchjoin(X_11,X_10);
+    X_11 := mosaic.thetasubselect(X_10,X_4,A0,"<");
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
     X_14 := aggr.count(X_13);
     sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
-end s14_1;
+end s20_1;
 # querylog.define("explain select count(*) from tmp3 where i 
<4;","sequential_pipe")
 #select count(*) from tmp3 where i <4;
 % sys.L1 # table_name
@@ -117,6 +182,40 @@ end s14_1;
 % wrd # type
 % 2 # length
 [ 44   ]
+#explain select count(*) from tmp3 where i = 7;
+% .explain # table_name
+% mal # name
+% clob # type
+% 85 # length
+function user.s21_1{autoCommit=true}(A0:int):void;
+    X_3 := sql.mvc();
+    X_7 := sql.bind(X_3,"sys","tmp3","i",0);
+    X_10 := X_7;
+    X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","tmp3");
+    X_11 := mosaic.subselect(X_10,X_4,A0,A0,true,true,false);
+    X_13 := mosaic.leftfetchjoin(X_11,X_10);
+    X_14 := aggr.count(X_13);
+    sql.exportValue(1,"sys.L1","L1","wrd",64,0,6,X_14,"");
+end s21_1;
+# querylog.define("explain select count(*) from tmp3 where i = 
7;","sequential_pipe")
+#select count(*) from tmp3 where i = 7;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 1 # length
+[ 2    ]
+#select count(*) from tmp3 where f <0.316;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 42   ]
+#select count(*) from tmp3 where b = true;
+% sys.L1 # table_name
+% L1 # name
+% wrd # type
+% 2 # length
+[ 66   ]
 #alter table tmp3 set read write;
 
 # 21:09:37 >  
diff --git a/sql/test/mosaic/Tests/xqueries_delta.sql 
b/sql/test/mosaic/Tests/xqueries_delta.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/mosaic/Tests/xqueries_delta.sql
@@ -0,0 +1,128 @@
+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'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(2, false, 0.314,'2014-08-23 11:34:54.000000'),
+(3, true, 0.314,'2014-08-23 11:34:54.000000'),
+(2, false, 0.314,'2014-08-23 11:34:54.000000'),
+(3, true, 0.314,'2014-08-23 11:34:54.000000'),
+(2, false, 0.314,'2014-08-23 11:34:54.000000'),
+(3, true, 0.314,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(4, true, 0.316,'2014-08-23 11:34:54.000000'),
+(0, false, 0.316,'2014-08-23 11:34:54.000000'),
+(5, false, 0.317,'2014-08-23 11:34:54.000000'),
+(6, false, 0.317,'2014-08-23 11:34:54.000000'),
+(7, false, 0.317,'2014-08-23 11:34:54.000000'),
+(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'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
+(1, true, 0.314,'2014-08-23 11:34:54.000000'),
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to