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

Reply via email to