Changeset: b2ef1794402f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b2ef1794402f Added Files: sql/test/remote/Tests/partition_elim.sql sql/test/remote/Tests/partition_elim.stable.err sql/test/remote/Tests/partition_elim.stable.out Branch: default Log Message:
add partition elimination test diffs (truncated from 529 to 300 lines): diff --git a/sql/test/remote/Tests/partition_elim.sql b/sql/test/remote/Tests/partition_elim.sql new file mode 100644 --- /dev/null +++ b/sql/test/remote/Tests/partition_elim.sql @@ -0,0 +1,68 @@ +--Create merge table and partition tables +create merge table test (x double, y double); +create table test1 (x double, y double); +create table test2 (x double, y double); +create table test3 (x double, y double); +create table test4 (x double, y double); + +--Populate tables +insert into test1 values (1.0, 1.0); +insert into test1 values (2.0, 2.0); +insert into test2 values (3.0, -1.0); +insert into test2 values (4.0, -2.0); +insert into test3 values (3.0, 1.0); +insert into test3 values (6.0, 2.0); +insert into test4 values (7.0, 1.0); +insert into test4 values (10.0, 2.0); + +--Set tables to read only +alter table test1 set read only; +alter table test2 set read only; +alter table test3 set read only; +alter table test4 set read only; + +--Add partitions to merge table +alter table test add table test1; +alter table test add table test2; +alter table test add table test3; +alter table test add table test4; + +--Build imprints +select x from test1 where x between 0 and -1; +select x from test2 where x between 0 and -1; +select x from test3 where x between 0 and -1; +select x from test4 where x between 0 and -1; + +--Build imprints +select y from test1 where y between 0 and -1; +select y from test2 where y between 0 and -1; +select y from test3 where y between 0 and -1; +select y from test4 where y between 0 and -1; + +--Analyze tables +analyze sys.test1 minmax; +analyze sys.test2 minmax; +analyze sys.test3 minmax; +analyze sys.test4 minmax; + +--Test query: Only partition 2 and 3 should be selected +explain select x,y from test where x between 4.0 and 6.0; + +--Test query: Only partition 2 and 3 should be selected +explain select x,y from test where x between (7-3) and (7-1); + +--Test query: Only partition 3 should be selected +explain select x,y from test where x between 4.0 and 6.0 and y between 0.0 and 2.0; + +--Test query: Only partition 3 should be selected +explain select x,y from test where x between 4.0 and 6.0 and y between (1.0-1.0) and (4.0-2.0); + +--Test query: Only partition 3 should be selected +explain select x,y from test where x between (7-3) and (7-1) and y between (1.0-1.0) and (4.0-2.0); + +--Drop test tables +drop table test; +drop table test1; +drop table test2; +drop table test3; +drop table test4; diff --git a/sql/test/remote/Tests/partition_elim.stable.err b/sql/test/remote/Tests/partition_elim.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/remote/Tests/partition_elim.stable.err @@ -0,0 +1,37 @@ +stderr of test 'partition_elim` in directory 'sql/test/remote` itself: + + +# 18:37:29 > +# 18:37:29 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35081" "--set" "mapi_usock=/var/tmp/mtest-17557/.s.monetdb.35081" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_remote" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 18:37:29 > + +# builtin opt gdk_dbpath = /home/niels/scratch/monetdb/Linux-x86_64/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 = 35081 +# cmdline opt mapi_usock = /var/tmp/mtest-17557/.s.monetdb.35081 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_remote +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = yes +# cmdline opt gdk_debug = 536870922 + +# 18:37:29 > +# 18:37:29 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-17557" "--port=35081" +# 18:37:29 > + + +# 18:37:29 > +# 18:37:29 > "Done." +# 18:37:29 > + diff --git a/sql/test/remote/Tests/partition_elim.stable.out b/sql/test/remote/Tests/partition_elim.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/remote/Tests/partition_elim.stable.out @@ -0,0 +1,409 @@ +stdout of test 'partition_elim` in directory 'sql/test/remote` itself: + + +# 18:37:29 > +# 18:37:29 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35081" "--set" "mapi_usock=/var/tmp/mtest-17557/.s.monetdb.35081" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_remote" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 18:37:29 > + +# MonetDB 5 server v11.20.0 +# This is an unreleased version +# Serving database 'mTests_sql_test_remote', using 4 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 7.333 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://localhost.nes.nl:35081/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-17557/.s.monetdb.35081 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded +# MonetDB/R module loaded + +Ready. +# SQL catalog created, loading sql scripts once +# loading sql script: 09_like.sql +# loading sql script: 10_math.sql +# loading sql script: 11_times.sql +# loading sql script: 12_url.sql +# loading sql script: 13_date.sql +# loading sql script: 14_inet.sql +# loading sql script: 15_querylog.sql +# loading sql script: 16_tracelog.sql +# loading sql script: 17_temporal.sql +# loading sql script: 20_vacuum.sql +# loading sql script: 21_dependency_functions.sql +# loading sql script: 22_clients.sql +# loading sql script: 23_skyserver.sql +# loading sql script: 24_zorder.sql +# loading sql script: 25_debug.sql +# loading sql script: 26_sysmon.sql +# loading sql script: 39_analytics.sql +# loading sql script: 39_analytics_hge.sql +# loading sql script: 40_geom.sql +# loading sql script: 40_json.sql +# loading sql script: 40_json_hge.sql +# loading sql script: 41_md5sum.sql +# loading sql script: 45_uuid.sql +# loading sql script: 46_gsl.sql +# loading sql script: 51_sys_schema_extension.sql +# loading sql script: 72_fits.sql +# loading sql script: 74_netcdf.sql +# loading sql script: 75_storagemodel.sql +# loading sql script: 80_statistics.sql +# loading sql script: 80_udf.sql +# loading sql script: 80_udf_hge.sql +# loading sql script: 85_bam.sql +# loading sql script: 90_generator.sql +# loading sql script: 90_generator_hge.sql +# loading sql script: 99_system.sql + +# 18:37:29 > +# 18:37:29 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-17557" "--port=35081" +# 18:37:29 > + +#create merge table test (x double, y double); +#create table test1 (x double, y double); +#create table test2 (x double, y double); +#create table test3 (x double, y double); +#create table test4 (x double, y double); +#insert into test1 values (1.0, 1.0); +[ 1 ] +#insert into test1 values (2.0, 2.0); +[ 1 ] +#insert into test2 values (3.0, -1.0); +[ 1 ] +#insert into test2 values (4.0, -2.0); +[ 1 ] +#insert into test3 values (3.0, 1.0); +[ 1 ] +#insert into test3 values (6.0, 2.0); +[ 1 ] +#insert into test4 values (7.0, 1.0); +[ 1 ] +#insert into test4 values (10.0, 2.0); +[ 1 ] +#alter table test1 set read only; +#alter table test2 set read only; +#alter table test3 set read only; +#alter table test4 set read only; +#alter table test add table test1; +#alter table test add table test2; +#alter table test add table test3; +#alter table test add table test4; +#select x from test1 where x between 0 and -1; +% sys.test1 # table_name +% x # name +% double # type +% 24 # length +#select x from test2 where x between 0 and -1; +% sys.test2 # table_name +% x # name +% double # type +% 24 # length +#select x from test3 where x between 0 and -1; +% sys.test3 # table_name +% x # name +% double # type +% 24 # length +#select x from test4 where x between 0 and -1; +% sys.test4 # table_name +% x # name +% double # type +% 24 # length +#select y from test1 where y between 0 and -1; +% sys.test1 # table_name +% y # name +% double # type +% 24 # length +#select y from test2 where y between 0 and -1; +% sys.test2 # table_name +% y # name +% double # type +% 24 # length +#select y from test3 where y between 0 and -1; +% sys.test3 # table_name +% y # name +% double # type +% 24 # length +#select y from test4 where y between 0 and -1; +% sys.test4 # table_name +% y # name +% double # type +% 24 # length +#explain select x,y from test where x between 4.0 and 6.0; +% .explain # table_name +% mal # name +% clob # type +% 69 # length +function user.SQLanalyze{autoCommit=true}():void; +barrier X_99 := language.dataflow(); + X_3:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl); + X_2 := sql.mvc(); + X_52:bat[:oid,:dbl] := sql.bind(X_2,"sys","test2","x",0,0,2); + X_62 := X_52; + X_49:bat[:oid,:oid] := sql.tid(X_2,"sys","test2",0,2); + X_64 := algebra.subselect(X_62,X_49,4:dbl,6:dbl,true,true,false); + X_66 := algebra.leftfetchjoin(X_64,X_62); + X_53:bat[:oid,:dbl] := sql.bind(X_2,"sys","test2","x",0,1,2); + X_63 := X_53; + X_51:bat[:oid,:oid] := sql.tid(X_2,"sys","test2",1,2); + X_65 := algebra.subselect(X_63,X_51,4:dbl,6:dbl,true,true,false); + X_67 := algebra.leftfetchjoin(X_65,X_63); + X_83 := mat.packIncrement(X_66,2); + X_11 := mat.packIncrement(X_83,X_67); + X_12 := bat.append(X_3,X_11,true); + X_56:bat[:oid,:dbl] := sql.bind(X_2,"sys","test3","x",0,0,2); + X_68 := X_56; + X_54:bat[:oid,:oid] := sql.tid(X_2,"sys","test3",0,2); + X_70 := algebra.subselect(X_68,X_54,4:dbl,6:dbl,true,true,false); + X_72 := algebra.leftfetchjoin(X_70,X_68); + X_57:bat[:oid,:dbl] := sql.bind(X_2,"sys","test3","x",0,1,2); + X_69 := X_57; + X_55:bat[:oid,:oid] := sql.tid(X_2,"sys","test3",1,2); + X_71 := algebra.subselect(X_69,X_55,4:dbl,6:dbl,true,true,false); + X_73 := algebra.leftfetchjoin(X_71,X_69); + X_85 := mat.packIncrement(X_72,2); + X_14 := mat.packIncrement(X_85,X_73); + X_15 := bat.append(X_12,X_14,true); + X_16:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl); + X_58:bat[:oid,:dbl] := sql.bind(X_2,"sys","test2","y",0,0,2); + X_74 := X_58; + X_76 := algebra.leftfetchjoin(X_64,X_74); + X_59:bat[:oid,:dbl] := sql.bind(X_2,"sys","test2","y",0,1,2); + X_75 := X_59; + X_77 := algebra.leftfetchjoin(X_65,X_75); + X_87 := mat.packIncrement(X_76,2); + X_18 := mat.packIncrement(X_87,X_77); + X_19 := bat.append(X_16,X_18,true); + X_60:bat[:oid,:dbl] := sql.bind(X_2,"sys","test3","y",0,0,2); + X_78 := X_60; + X_80 := algebra.leftfetchjoin(X_70,X_78); _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
