Changeset: f6a18b3ed132 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f6a18b3ed132 Added Files: sql/backends/monet5/generator/Tests/joins02.sql sql/backends/monet5/generator/Tests/joins02.stable.err sql/backends/monet5/generator/Tests/joins02.stable.out Modified Files: sql/backends/monet5/generator/Tests/All sql/backends/monet5/generator/Tests/generator00.stable.out sql/backends/monet5/generator/Tests/generator01.sql sql/backends/monet5/generator/Tests/generator01.stable.err sql/backends/monet5/generator/Tests/generator04.stable.err Branch: generator Log Message:
More cornercases tested diffs (269 lines): diff --git a/sql/backends/monet5/generator/Tests/All b/sql/backends/monet5/generator/Tests/All --- a/sql/backends/monet5/generator/Tests/All +++ b/sql/backends/monet5/generator/Tests/All @@ -6,5 +6,6 @@ generator04 joins00 joins01 +joins02 thetaselect00 diff --git a/sql/backends/monet5/generator/Tests/generator00.stable.out b/sql/backends/monet5/generator/Tests/generator00.stable.out --- a/sql/backends/monet5/generator/Tests/generator00.stable.out +++ b/sql/backends/monet5/generator/Tests/generator00.stable.out @@ -77,8 +77,17 @@ Ready. [ 4 ] [ 6 ] [ 8 ] -#select * from generate_series(0,10,2) -#where value <5; +#select * from generate_series(0,10) where value <5; +% . # table_name +% value # name +% tinyint # type +% 1 # length +[ 0 ] +[ 1 ] +[ 2 ] +[ 3 ] +[ 4 ] +#select * from generate_series(0,10,2) where value <5; % . # table_name % value # name % tinyint # type @@ -108,6 +117,21 @@ Ready. % 1 # length [ 4 ] [ 6 ] +#select * from generate_series(10,0); +% . # table_name +% value # name +% tinyint # type +% 2 # length +[ 10 ] +[ 9 ] +[ 8 ] +[ 7 ] +[ 6 ] +[ 5 ] +[ 4 ] +[ 3 ] +[ 2 ] +[ 1 ] #select * from generate_series(10,0,-2); % . # table_name % value # name @@ -118,6 +142,15 @@ Ready. [ 6 ] [ 4 ] [ 2 ] +#select * from generate_series(10,0) where value <5; +% . # table_name +% value # name +% tinyint # type +% 1 # length +[ 4 ] +[ 3 ] +[ 2 ] +[ 1 ] #select * from generate_series(10,0,-2) where value <5; % . # table_name % value # name diff --git a/sql/backends/monet5/generator/Tests/generator01.sql b/sql/backends/monet5/generator/Tests/generator01.sql --- a/sql/backends/monet5/generator/Tests/generator01.sql +++ b/sql/backends/monet5/generator/Tests/generator01.sql @@ -8,5 +8,11 @@ select * from generate_series(0,10,null) select * from generate_series(null,10,1) ; select * from generate_series(10,null,1) ; +select * from generate_series(null,10) ; +select * from generate_series(10,null) ; + +select * from generate_series(null,-1) ; +select * from generate_series(-1,null) ; + select * from generate_series(0,10,-2) as v where value <7 and value >3; diff --git a/sql/backends/monet5/generator/Tests/generator01.stable.err b/sql/backends/monet5/generator/Tests/generator01.stable.err --- a/sql/backends/monet5/generator/Tests/generator01.stable.err +++ b/sql/backends/monet5/generator/Tests/generator01.stable.err @@ -29,25 +29,37 @@ stderr of test 'generator01` in director # 12:42:21 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-23485" "--port=37579" # 12:42:21 > -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(0,10,-2); ERROR = !Illegal generator range -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(10,2,2); ERROR = !Illegal generator range -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(0,10,0) ; ERROR = !zero step size not allowed -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(0,10,null) ; ERROR = !null step size not allowed -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(null,10,1) ; ERROR = !types tinyint(8,0) and timestamp(7,0) are not equal for column 'L2' -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(10,null,1) ; ERROR = !Illegal generator range -MAPI = (monetdb) /var/tmp/mtest-20683/.s.monetdb.37951 +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(null,10) ; +ERROR = !Illegal generator range +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(10,null) ; +ERROR = !Illegal generator range +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(null,-1) ; +ERROR = !Illegal generator range +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(-1,null) ; +ERROR = !Illegal generator range +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 QUERY = select * from generate_series(0,10,-2) as v where value <7 and value >3; ERROR = !Illegal generator range diff --git a/sql/backends/monet5/generator/Tests/generator04.stable.err b/sql/backends/monet5/generator/Tests/generator04.stable.err --- a/sql/backends/monet5/generator/Tests/generator04.stable.err +++ b/sql/backends/monet5/generator/Tests/generator04.stable.err @@ -29,21 +29,27 @@ stderr of test 'generator04` in director # 21:38:52 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-14305" "--port=36294" # 21:38:52 > -MAPI = (monetdb) /var/tmp/mtest-20193/.s.monetdb.34458 +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 QUERY = select * from generate_series('a','a','c'); ERROR = !timestamp (a) has incorrect format -MAPI = (monetdb) /var/tmp/mtest-20193/.s.monetdb.34458 +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 QUERY = select * from generate_series(false,true,false) ; ERROR = !types boolean(1,0) and timestamp(7,0) are not equal for column 'L1' -MAPI = (monetdb) /var/tmp/mtest-20193/.s.monetdb.34458 +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 QUERY = select * from generate_series(null,null,1); ERROR = !Illegal generator range -MAPI = (monetdb) /var/tmp/mtest-20193/.s.monetdb.34458 +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 QUERY = select * from generate_series(10,null,1); ERROR = !Illegal generator range -MAPI = (monetdb) /var/tmp/mtest-20193/.s.monetdb.34458 +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 QUERY = select * from generate_series(null,10,1); ERROR = !types tinyint(8,0) and timestamp(7,0) are not equal for column 'L2' +MAPI = (monetdb) /var/tmp/mtest-5993/.s.monetdb.36135 +QUERY = select * from generate_series( + timestamp '2008-03-01 00:00', + timestamp '2008-03-04 12:00'); +ERROR = !types timestamp(7,0) and bigint(64,0) are not equal for column 'L1' + # 21:38:52 > # 21:38:52 > "Done." diff --git a/sql/backends/monet5/generator/Tests/joins02.sql b/sql/backends/monet5/generator/Tests/joins02.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/generator/Tests/joins02.sql @@ -0,0 +1,8 @@ +-- To be done tests. +-- Using an 'int' rather then a 'tinyint' calls for casting the generated values first +-- The two join cases illustrate how a join could be optimized by 'looking' up the correct value. + +select * from generate_series(0,10,2) X, generate_series(0,4,2) Y where X.value = Y.value; +select * from generate_series(0,4,2) X, generate_series(0,10,2) Y where X.value = Y.value; + +select * from generate_series(0,10,3) X, generate_series(0,4,2) Y where X.value = Y.value; diff --git a/sql/backends/monet5/generator/Tests/joins02.stable.err b/sql/backends/monet5/generator/Tests/joins02.stable.err new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/generator/Tests/joins02.stable.err @@ -0,0 +1,45 @@ +stderr of test 'joins02` in directory 'sql/backends/monet5/generator` itself: + + +# 14:13:31 > +# 14:13:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=39679" "--set" "mapi_usock=/var/tmp/mtest-23026/.s.monetdb.39679" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/export/scratch1/mk/generator//Linux/var/MonetDB/mTests_sql_backends_monet5_generator" "--set" "mal_listing=0" +# 14:13:31 > + +# builtin opt gdk_dbpath = /export/scratch1/mk/generator//Linux/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 39679 +# cmdline opt mapi_usock = /var/tmp/mtest-23026/.s.monetdb.39679 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /export/scratch1/mk/generator//Linux/var/MonetDB/mTests_sql_backends_monet5_generator +# cmdline opt mal_listing = 0 +# cmdline opt gdk_debug = 536870922 + +# 14:13:31 > +# 14:13:31 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-23026" "--port=39679" +# 14:13:31 > + +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(0,10,2) X, generate_series(0,4,2) Y where X.value = Y.value; +ERROR = !Join over generator pairs not supported +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(0,4,2) X, generate_series(0,10,2) Y where X.value = Y.value; +ERROR = !Join over generator pairs not supported +MAPI = (monetdb) /var/tmp/mtest-23026/.s.monetdb.39679 +QUERY = select * from generate_series(0,10,3) X, generate_series(0,4,2) Y where X.value = Y.value; +ERROR = !Join over generator pairs not supported + +# 14:13:32 > +# 14:13:32 > "Done." +# 14:13:32 > + diff --git a/sql/backends/monet5/generator/Tests/joins02.stable.out b/sql/backends/monet5/generator/Tests/joins02.stable.out new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/generator/Tests/joins02.stable.out @@ -0,0 +1,31 @@ +stdout of test 'joins02` in directory 'sql/backends/monet5/generator` itself: + + +# 14:13:31 > +# 14:13:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=39679" "--set" "mapi_usock=/var/tmp/mtest-23026/.s.monetdb.39679" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/export/scratch1/mk/generator//Linux/var/MonetDB/mTests_sql_backends_monet5_generator" "--set" "mal_listing=0" +# 14:13:31 > + +# MonetDB 5 server v11.18.0 +# This is an unreleased version +# Serving database 'mTests_sql_backends_monet5_generator', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked +# Found 15.591 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:39679/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-23026/.s.monetdb.39679 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 14:13:31 > +# 14:13:31 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-23026" "--port=39679" +# 14:13:31 > + + +# 14:13:32 > +# 14:13:32 > "Done." +# 14:13:32 > + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list