Changeset: 9e15dc4c7b4e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e15dc4c7b4e
Modified Files:
monetdb5/optimizer/Tests/All
monetdb5/optimizer/Tests/CMexample.mal
monetdb5/optimizer/Tests/CMexample.stable.out
monetdb5/optimizer/Tests/CRexample.mal
monetdb5/optimizer/Tests/JPexample.mal
monetdb5/optimizer/Tests/JPexample.stable.out
monetdb5/optimizer/Tests/emptyset00.mal
monetdb5/optimizer/Tests/mat00.mal
monetdb5/optimizer/Tests/qep00.mal
monetdb5/optimizer/Tests/qep01.mal
monetdb5/optimizer/Tests/qep02.mal
monetdb5/optimizer/Tests/qep02.stable.out
monetdb5/optimizer/Tests/rangePush00.mal
monetdb5/optimizer/Tests/rangePush01.mal
monetdb5/optimizer/Tests/tst4610.mal
Branch: Oct2014
Log Message:
Output fixed for optimizers
diffs (truncated from 374 to 300 lines):
diff --git a/monetdb5/optimizer/Tests/All b/monetdb5/optimizer/Tests/All
--- a/monetdb5/optimizer/Tests/All
+++ b/monetdb5/optimizer/Tests/All
@@ -10,9 +10,9 @@ tst4300
tst4600
tst4601
tst4602
-tst4610
-tst4611
-tst4620
+#tst4610 needs new joinpath
+#tst4611 ,,
+#tst4620 ,,
tst4630
# tst4631 -- uses group.refine
tst4700
@@ -20,9 +20,9 @@ tst4701
# tst4730 -- uses group.refine
tst4820
-qep00
-qep01
-qep02
+#qep00 deprecated optimizer
+#qep01 ,,
+#qep02 ,,
cst00
cst01
@@ -40,16 +40,10 @@ reorder00
#mapreduce00 has no output, won't run this way
-mat00
-mat01
-#mat02
-#mat03
-#mat04
+#rangePush00 optimizer out of date
+#rangePush01
-rangePush00
-rangePush01
-
-emptyset00
+#emptyset00 Optimizer does not deal with subselects
emptyset01
inline00
@@ -77,7 +71,7 @@ ifthencst
CXerror1
#the remainder are snippets used in the reference manual
CMexample
-CRexample
+#CRexample push range optimizer is out of date
ARexample
DCexample
DCexample2
diff --git a/monetdb5/optimizer/Tests/CMexample.mal
b/monetdb5/optimizer/Tests/CMexample.mal
--- a/monetdb5/optimizer/Tests/CMexample.mal
+++ b/monetdb5/optimizer/Tests/CMexample.mal
@@ -1,9 +1,13 @@
# Cost model example
+function q();
r{rows=100} := bat.new(:oid,:int);
s{rows=1000}:= bat.new(:oid,:int);
- rs:= algebra.select(s,1,1);
- rr:= bat.reverse(r);
- j:= algebra.join(rs,rr);
- optimizer.costModel();
- mdb.List();
+ r{rows=100} := bat.new(:oid,:int);
+ s{rows=1000}:= bat.new(:oid,:int);
+ x{rows=300} := bat.new(:oid,:oid);
+ rs:= algebra.subselect(s,x,1,1,true,true,false);
+ j:= algebra.leftfetchjoin(rs,r);
+end q;
+ optimizer.costModel("user","q");
+ mdb.List("user","q");
diff --git a/monetdb5/optimizer/Tests/CMexample.stable.out
b/monetdb5/optimizer/Tests/CMexample.stable.out
--- a/monetdb5/optimizer/Tests/CMexample.stable.out
+++ b/monetdb5/optimizer/Tests/CMexample.stable.out
@@ -5,32 +5,40 @@ stdout of test 'CMexample` in directory
# 08:55:26 > Mtimeout -timeout 60 mserver5
"--config=/ufs/mk/monet5/Linux/etc/MonetDB5.conf" --debug=10 --set
"monet_mod_path=/ufs/mk/monet5/Linux/lib/MonetDB5:/ufs/mk/opensource/MonetDB/Linux/lib/MonetDB"
--set "gdk_dbfarm=/ufs/mk/monet5/Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5/Linux/var/MonetDB5/dblogs" --set mapi_port=38095
--set monet_prompt= --trace --dbname=mTests_src_optimizer CMexample.mal <
/dev/null
# 08:55:26 >
-# MonetDB Server v4.99.19
-# Copyright (c) 1993-2006 CWI, all rights reserved
-# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
-# config:/ufs/mk/monet5/Linux/etc/MonetDB5.conf
-# dbfarm:/ufs/mk/monet5/Linux/var/MonetDB5/dbfarm
-# dbname:mTests_src_optimizer
-# Visit http://monetdb.cwi.nl/ for further information
-# Listening for connection requests on mapi:monetdb://eir.ins.cwi.nl:32348/
+# MonetDB 5 server v11.19.0
+# This is an unreleased version
+# Serving database 'mTests_monetdb5_optimizer', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 15.590 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://vienna.ins.cwi.nl:31955/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-20624/.s.monetdb.31955
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+function user.q():void;
+ r := bat.new(:oid,:int);
+ s := bat.new(:oid,:int);
+ r := bat.new(:oid,:int);
+ s := bat.new(:oid,:int);
+ x := bat.new(:oid,:oid);
+ rs := algebra.subselect(s,x,1,1,true,true,false);
+ j := algebra.leftfetchjoin(rs,r);
+end q;
function user.main():void;
# Cost model example
- r := bat.new(:oid,:int);
- s := bat.new(:oid,:int);
- rs := algebra.select(s,1,1);
- rr := bat.reverse(r);
- j := algebra.join(rs,rr);
- mdb.List();
+ mdb.List("user","q");
end main;
-function user.main():void; # 0 main:void := user.main() {G}
-# Cost model example
- r{rows=100} := bat.new(:oid,:int); # 2 r:bat[:oid,:int] :=
CMDBATnew(_4:oid, _5:int) {G}
- s{rows=1000} := bat.new(:oid,:int); # 3 s:bat[:oid,:int] :=
CMDBATnew(_4:oid, _8:int) {G}
- rs{rows=501} := algebra.select(s{rows=1000},1,1);# 4 rs:bat[:oid,:int] :=
ALGselect(s:bat[:oid,:int], _10:int, _10:int) {G}
- rr{rows=100} := bat.reverse(r{rows=100});# 5 rr:bat[:int,:oid] :=
BKCreverse(r:bat[:oid,:int]) {G}
- j{rows=100} := algebra.join(rs{rows=501},rr{rows=100});# 6
j:bat[:oid,:oid] := ALGjoin(rs:bat[:oid,:int], rr:bat[:int,:oid]) {G}
- mdb.List(); # 7 _14:void := MDBlistDetail()
-end main; # 8
+function user.q():void; # 0 q:void := user.q() {G}
+ r{rows=100} := bat.new(:oid,:int); # 1 r:bat[:oid,:int] :=
CMDBATnew(_3:oid, _4:int) {G}
+ s{rows=1000} := bat.new(:oid,:int); # 2 s:bat[:oid,:int] :=
CMDBATnew(_3:oid, _7:int) {G}
+ r{rows=100} := bat.new(:oid,:int); # 3 r:bat[:oid,:int] :=
CMDBATnew(_3:oid, _8:int) {G}
+ s{rows=1000} := bat.new(:oid,:int); # 4 s:bat[:oid,:int] :=
CMDBATnew(_3:oid, _9:int) {G}
+ x{rows=300} := bat.new(:oid,:oid); # 5 x:bat[:oid,:oid] :=
CMDBATnew(_3:oid, _3:oid) {G}
+ rs{rows=151} :=
algebra.subselect(s{rows=1000},x{rows=300},1,1,true,true,false);# 6
rs:bat[:oid,:oid] := ALGsubselect2(s:bat[:oid,:int], x:bat[:oid,:oid], _13:int,
_13:int, _14:bit, _14:bit, _15:bit) {G}
+ j{rows=100} := algebra.leftfetchjoin(rs{rows=151},r{rows=100});# 7
j:bat[:oid,:int] := ALGleftfetchjoin(rs:bat[:oid,:oid], r:bat[:oid,:int]) {G}
+end q; # 8
# 08:55:26 >
# 08:55:26 > Done.
diff --git a/monetdb5/optimizer/Tests/CRexample.mal
b/monetdb5/optimizer/Tests/CRexample.mal
--- a/monetdb5/optimizer/Tests/CRexample.mal
+++ b/monetdb5/optimizer/Tests/CRexample.mal
@@ -1,8 +1,10 @@
b := bat.new(:oid,:int);
-s1:= algebra.select(b,1,80);
-s2:= algebra.select(s1,5,95);
-s3:= algebra.select(s2,50,nil:int);
-s4:= algebra.select(s3,nil:int,75);
+x:= bat.new(:oid,:oid);
+y:= bat.new(:oid,:oid);
+s1:= algebra.subselect(b,1,80,true,true,false);
+s2:= algebra.subselect(b,s1,5,95,true,true,false);
+s3:= algebra.subselect(b,s2,50,nil:int,true,true,false);
+s4:= algebra.subselect(b,s3,nil:int,75,true,true,false);
io.print(s4);
optimizer.pushranges();
optimizer.deadcode();
diff --git a/monetdb5/optimizer/Tests/JPexample.mal
b/monetdb5/optimizer/Tests/JPexample.mal
--- a/monetdb5/optimizer/Tests/JPexample.mal
+++ b/monetdb5/optimizer/Tests/JPexample.mal
@@ -2,10 +2,10 @@
a:= bat.new(:oid,:oid);
b:= bat.new(:oid,:oid);
c:= bat.new(:oid,:str);
- j1:= algebra.join(a,b);
- j2:= algebra.join(j1,c);
- j3:= algebra.join(b,b);
- j4:= algebra.join(b,j3);
+ j1:= algebra.leftfetchjoin(a,b);
+ j2:= algebra.leftfetchjoin(j1,c);
+ j3:= algebra.leftfetchjoin(b,b);
+ j4:= algebra.leftfetchjoin(b,j3);
optimizer.joinPath();
mdb.List();
diff --git a/monetdb5/optimizer/Tests/JPexample.stable.out
b/monetdb5/optimizer/Tests/JPexample.stable.out
--- a/monetdb5/optimizer/Tests/JPexample.stable.out
+++ b/monetdb5/optimizer/Tests/JPexample.stable.out
@@ -18,11 +18,11 @@ function user.main():void;
a := bat.new(:oid,:oid);
b := bat.new(:oid,:oid);
c := bat.new(:oid,:str);
- j1 := algebra.join(a,b);
- j2:bat[:oid,:str] := algebra.joinPath(a,b,c);
- j3 := algebra.join(b,b);
- X_13 := algebra.join(b,b);
- j4:bat[:oid,:oid] := algebra.join(X_13,b);
+ j1 := algebra.leftfetchjoin(a,b);
+ j2:bat[:oid,:str] := algebra.leftfetchjoinPath(a,b,c);
+ j3 := algebra.leftfetchjoin(b,b);
+ X_13 := algebra.leftfetchjoin(b,b);
+ j4:bat[:oid,:oid] := algebra.leftfetchjoin(X_13,b);
mdb.List();
end main;
function user.main():void; # 0 main:void := user.main() {G}
@@ -30,11 +30,11 @@ function user.main():void;
a := bat.new(:oid,:oid); # 2 a:bat[:oid,:oid] :=
CMDBATnew(_3:oid, _3:oid) {G}
b := bat.new(:oid,:oid); # 3 b:bat[:oid,:oid] :=
CMDBATnew(_3:oid, _3:oid) {G}
c := bat.new(:oid,:str); # 4 c:bat[:oid,:str] :=
CMDBATnew(_3:oid, _6:str) {G}
- j1 := algebra.join(a,b); # 5 j1:bat[:oid,:oid] :=
ALGjoin(a:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
- j2:bat[:oid,:str] := algebra.joinPath(a,b,c);# 6 j2:bat[:oid,:str] :=
ALGjoinPath(a:bat[:oid,:oid], b:bat[:oid,:oid], c:bat[:oid,:str]) {G}
- j3 := algebra.join(b,b); # 7 j3:bat[:oid,:oid] :=
ALGjoin(b:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
- X_13 := algebra.join(b,b); # 8 _13:bat[:oid,:oid] :=
ALGjoin(b:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
- j4:bat[:oid,:oid] := algebra.join(X_13,b);# 9 j4:bat[:oid,:oid] :=
ALGjoin(_13:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
+ j1 := algebra.leftfetchjoin(a,b); # 5 j1:bat[:oid,:oid] :=
ALGleftfetchjoin(a:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
+ j2:bat[:oid,:str] := algebra.leftfetchjoinPath(a,b,c);# 6
j2:bat[:oid,:str] := ALGjoinPath(a:bat[:oid,:oid], b:bat[:oid,:oid],
c:bat[:oid,:str]) {G}
+ j3 := algebra.leftfetchjoin(b,b); # 7 j3:bat[:oid,:oid] :=
ALGleftfetchjoin(b:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
+ X_13 := algebra.leftfetchjoin(b,b); # 8 _13:bat[:oid,:oid] :=
ALGleftfetchjoin(b:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
+ j4:bat[:oid,:oid] := algebra.leftfetchjoin(X_13,b);# 9 j4:bat[:oid,:oid]
:= ALGleftfetchjoin(_13:bat[:oid,:oid], b:bat[:oid,:oid]) {G}
mdb.List(); # 10 _12:void := MDBlistDetail()
end main; # 11
diff --git a/monetdb5/optimizer/Tests/emptyset00.mal
b/monetdb5/optimizer/Tests/emptyset00.mal
--- a/monetdb5/optimizer/Tests/emptyset00.mal
+++ b/monetdb5/optimizer/Tests/emptyset00.mal
@@ -1,7 +1,8 @@
b := bat.new(:oid,:int);
- s1 := algebra.select(b,80,90);
- s2 := algebra.select(s1,90,80);
- s3 := algebra.select(s2,80,80);
+ x := bat.new(:oid,:oid);
+ s1 := algebra.subselect(b,x,80,90,true,true,false);
+ s2 := algebra.subselect(b,s1,90,80,true,true,false);
+ s3 := algebra.subselect(b,s2,80,80,true,true,false);
io.print(s3);
optimizer.pushranges();
diff --git a/monetdb5/optimizer/Tests/mat00.mal
b/monetdb5/optimizer/Tests/mat00.mal
--- a/monetdb5/optimizer/Tests/mat00.mal
+++ b/monetdb5/optimizer/Tests/mat00.mal
@@ -17,8 +17,8 @@
bat.append(c1,5@0);
c := mat.new(c0,c1);
bat.append(c,6@0);
- j := algebra.join(b,c);
- io.print(j);
+ (j,jj) := algebra.join(b,c);
+ io.print(j,jj);
io.print(b);
io.print(c);
diff --git a/monetdb5/optimizer/Tests/qep00.mal
b/monetdb5/optimizer/Tests/qep00.mal
--- a/monetdb5/optimizer/Tests/qep00.mal
+++ b/monetdb5/optimizer/Tests/qep00.mal
@@ -3,6 +3,5 @@ R:= bat.new(:oid,:int);
S:= bat.new(:oid,:int);
E1:= algebra.select(R,1,3);
E2:= algebra.select(S,4,9);
-R2:= bat.reverse(E2);
-J1:= algebra.join(E1,R2);
+(J1,J2):= algebra.join(E1,E2);
optimizer.dumpQEP();
diff --git a/monetdb5/optimizer/Tests/qep01.mal
b/monetdb5/optimizer/Tests/qep01.mal
--- a/monetdb5/optimizer/Tests/qep01.mal
+++ b/monetdb5/optimizer/Tests/qep01.mal
@@ -1,12 +1,15 @@
+function q();
T1:= bat.new(:oid,:oid);
T2:= bat.new(:oid,:oid);
T3:= bat.new(:oid,:oid);
T4:= bat.new(:oid,:oid);
-a:= algebra.select(T1,1@0,3@0);
-b:= algebra.select(T2,1@0,3@0);
-c:= algebra.select(T3,0@0,5@0);
-d:= algebra.select(T4,0@0,5@0);
-e:= algebra.join(a,c);
-f:= algebra.join(b,d);
-h:= algebra.join(e,f);
-optimizer.dumpQEP();
+a:= algebra.subselect(T1,1@0,3@0,true,true,false);
+b:= algebra.subselect(T2,1@0,3@0,true,true,false);
+c:= algebra.subselect(T3,0@0,5@0,true,true,false);
+d:= algebra.subselect(T4,0@0,5@0,true,true,false);
+(e,ex):= algebra.join(a,c);
+(f,fx):= algebra.join(b,d);
+(h,hx):= algebra.join(e,f);
+end q;
+optimizer.dumpQEP("user","q");
+user.q();
diff --git a/monetdb5/optimizer/Tests/qep02.mal
b/monetdb5/optimizer/Tests/qep02.mal
--- a/monetdb5/optimizer/Tests/qep02.mal
+++ b/monetdb5/optimizer/Tests/qep02.mal
@@ -4,6 +4,6 @@ T3:= bat.new(:oid,:oid);
barrier b;
a:= algebra.select(T1,1@0,3@0);
c:= algebra.select(T3,0@0,5@0);
- e:= algebra.join(a,c);
+ (e,f):= algebra.join(a,c);
exit b;
optimizer.dumpQEP();
diff --git a/monetdb5/optimizer/Tests/qep02.stable.out
b/monetdb5/optimizer/Tests/qep02.stable.out
--- a/monetdb5/optimizer/Tests/qep02.stable.out
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list