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