Changeset: e5084ee6dc83 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5084ee6dc83 Added Files: sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.sql sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.err sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.out Modified Files: sql/test/BugTracker-2019/Tests/All testing/monet_options.py.in Branch: default Log Message:
Merge with Apr2019 branch. diffs (230 lines): diff --git a/sql/test/BugTracker-2019/Tests/All b/sql/test/BugTracker-2019/Tests/All --- a/sql/test/BugTracker-2019/Tests/All +++ b/sql/test/BugTracker-2019/Tests/All @@ -24,4 +24,5 @@ prepare-non-existing-function.Bug-6725 select-distinct.Bug-6728 table-duplicate-column.Bug-6729 view-too-few-rows.Bug-6736 +slow-inner-join.Bug-6737 sum-over-hge.Bug.6738 diff --git a/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.sql b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.sql @@ -0,0 +1,20 @@ +start transaction; +create table monet1_test ("Id" bigserial, key int, value varchar(2000)); +create table monet2_test ("Id" bigserial, key int, value varchar(2000)); + +insert into monet1_test select value "Id", value "key", value "value" from generate_series(1,6000); +insert into monet2_test select value "Id", value "key", value "value" from generate_series(1,2000); + +select count(1) from monet2_test t1 inner join monet1_test t2 on exists (select t1.key intersect select t2.key); +select count(1) from monet2_test where exists(select 1 from monet1_test t2 where (t2.key = monet2_test.key) or ((t2.key is null) and (monet2_test.key is null))); +select count(1) from monet2_test t1 inner join monet1_test t2 on ((t1.key = t2.key) or ((t1.key is null) and (t2.key is null))); + +MERGE INTO monet2_test +USING monet1_test AS t_1 + ON ("monet2_test"."key" = t_1."key" OR ("monet2_test"."key" IS NULL AND t_1."key" IS NULL)) + WHEN MATCHED THEN + UPDATE SET "key" = t_1."key", "value" = t_1."value" + WHEN NOT MATCHED THEN + INSERT ("Id", "key", "value") + VALUES (t_1."Id", t_1."key", t_1."value"); +rollback; diff --git a/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.err b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.err @@ -0,0 +1,35 @@ +stderr of test 'slow-inner-join.Bug-6737` in directory 'sql/test/BugTracker-2019` itself: + + +# 10:02:31 > +# 10:02:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=30899" "--set" "mapi_usock=/var/tmp/mtest-13172/.s.monetdb.30899" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2019" "--set" "embedded_r=yes" "--set" "embedded_py=2" "--set" "embedded_c=true" +# 10:02:31 > + +# builtin opt gdk_dbpath = /home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/monetdb5/dbfarm/demo +# 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 = 30899 +# cmdline opt mapi_usock = /var/tmp/mtest-13172/.s.monetdb.30899 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2019 +# cmdline opt embedded_r = yes +# cmdline opt embedded_py = 2 +# cmdline opt embedded_c = true +#main thread:!ERROR:MALException:client.quit:Server stopped + +# 10:02:32 > +# 10:02:32 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13172" "--port=30899" +# 10:02:32 > + + +# 10:02:38 > +# 10:02:38 > "Done." +# 10:02:38 > + diff --git a/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.out b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2019/Tests/slow-inner-join.Bug-6737.stable.out @@ -0,0 +1,108 @@ +stdout of test 'slow-inner-join.Bug-6737` in directory 'sql/test/BugTracker-2019` itself: + + +# 10:02:31 > +# 10:02:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=30899" "--set" "mapi_usock=/var/tmp/mtest-13172/.s.monetdb.30899" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2019" "--set" "embedded_r=yes" "--set" "embedded_py=2" "--set" "embedded_c=true" +# 10:02:31 > + +# MonetDB 5 server v11.33.4 (hg id: 101e6463524a+) +# This is an unreleased version +# Serving database 'mTests_sql_test_BugTracker-2019', using 8 threads +# Compiled for x86_64-pc-linux-gnu/64bit with 128bit integers +# Found 15.527 GiB available main-memory. +# Copyright (c) 1993 - July 2008 CWI. +# Copyright (c) August 2008 - 2019 MonetDB B.V., all rights reserved +# Visit https://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://localhost.localdomain:30899/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-13172/.s.monetdb.30899 +# MonetDB/GIS module loaded +# 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: 18_index.sql +# loading sql script: 20_vacuum.sql +# loading sql script: 21_dependency_views.sql +# loading sql script: 22_clients.sql +# loading sql script: 23_skyserver.sql +# loading sql script: 25_debug.sql +# loading sql script: 26_sysmon.sql +# loading sql script: 27_rejects.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_profiler.sql +# loading sql script: 51_sys_schema_extension.sql +# loading sql script: 60_wlcr.sql +# loading sql script: 72_fits.sql +# loading sql script: 74_netcdf.sql +# loading sql script: 75_lidar.sql +# loading sql script: 75_shp.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 +# MonetDB/SQL module loaded +# MonetDB/Python2 module loaded +# MonetDB/R module loaded + +Ready. + +# 10:02:32 > +# 10:02:32 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13172" "--port=30899" +# 10:02:32 > + +#start transaction; +#create table monet1_test ("Id" bigserial, key int, value varchar(2000)); +#create table monet2_test ("Id" bigserial, key int, value varchar(2000)); +#insert into monet1_test select value "Id", value "key", value "value" from generate_series(1,6000); +[ 5999 ] +#insert into monet2_test select value "Id", value "key", value "value" from generate_series(1,2000); +[ 1999 ] +#select count(1) from monet2_test t1 inner join monet1_test t2 on exists (select t1.key intersect select t2.key); +% .L22 # table_name +% L22 # name +% bigint # type +% 4 # length +[ 1999 ] +#select count(1) from monet2_test where exists(select 1 from monet1_test t2 where (t2.key = monet2_test.key) or ((t2.key is null) and (monet2_test.key is null))); +% .L10 # table_name +% L10 # name +% bigint # type +% 4 # length +[ 1999 ] +#select count(1) from monet2_test t1 inner join monet1_test t2 on ((t1.key = t2.key) or ((t1.key is null) and (t2.key is null))); +% .L3 # table_name +% L3 # name +% bigint # type +% 4 # length +[ 1999 ] +#MERGE INTO monet2_test +#USING monet1_test AS t_1 +# ON ("monet2_test"."key" = t_1."key" OR ("monet2_test"."key" IS NULL AND t_1."key" IS NULL)) +# WHEN MATCHED THEN +# UPDATE SET "key" = t_1."key", "value" = t_1."value" +# WHEN NOT MATCHED THEN +# INSERT ("Id", "key", "value") +# VALUES (t_1."Id", t_1."key", t_1."value"); +[ 5999 ] +#rollback; + +# 10:02:38 > +# 10:02:38 > "Done." +# 10:02:38 > + diff --git a/testing/monet_options.py.in b/testing/monet_options.py.in --- a/testing/monet_options.py.in +++ b/testing/monet_options.py.in @@ -4,7 +4,7 @@ # # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V. -import sys, os, getopt, string, re +import sys, os, getopt, re class Error(Exception): """Bad option.""" @@ -114,11 +114,11 @@ def usage(cmd_options, cmd = None): arg.append('-' + short) if long: arg.append('--' + long) - arg = string.join(arg, ' or ') + arg = ' or '.join(arg) if argument: arg = arg + ' ' + argument if comment: - arg = arg + '\n\t' + string.replace(comment, '\n', '\n\t') + arg = arg + '\n\t' + comment.replace('\n', '\n\t') sys.stderr.write(arg+'\n') raise Error('usage') @@ -178,13 +178,13 @@ def parse_options(argv, cmd_options = cm if long == 'debug': debug = 1 elif long == 'set': - keyval = string.split(a, '=', 1) + keyval = a.split('=', 1) if len(keyval) != 2: sys.stderr.write('wrong format for --set option %s\n' % a) else: key, val = keyval - key = string.strip(key) - val = string.strip(val) + key = key.strip() + val = val.strip() if not key: sys.stderr.write('wrong format for --set option %s\n' % a) else: _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list