Changeset: 4c50cf4f4e86 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4c50cf4f4e86 Added Files: sql/test/BugTracker-2014/Tests/groupby_distict.Bug-3423.sql sql/test/BugTracker-2014/Tests/groupby_distict.Bug-3423.stable.err sql/test/BugTracker-2014/Tests/groupby_distict.Bug-3423.stable.out Modified Files: clients/Tests/SQL-dump.stable.out.32bit monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err.Windows monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 sql/benchmarks/tpch/Tests/16-plan.stable.out sql/server/rel_optimizer.c sql/server/sql_parser.y sql/test/BugTracker-2012/Tests/date_script_test.Bug-2973.stable.out.Windows sql/test/BugTracker-2014/Tests/All Branch: default Log Message:
Merge with Jan2014 branch. diffs (truncated from 466 to 300 lines): diff --git a/clients/Tests/SQL-dump.stable.out.32bit b/clients/Tests/SQL-dump.stable.out.32bit --- a/clients/Tests/SQL-dump.stable.out.32bit +++ b/clients/Tests/SQL-dump.stable.out.32bit @@ -1,19 +1,20 @@ stdout of test 'SQL-dump` in directory 'clients` itself: -# 19:12:36 > -# 19:12:36 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=39487" "--set" "mapi_usock=/var/tmp/mtest-22854/.s.monetdb.39487" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Volumes/scratch/monet/GNU-Darwin-i386-propcheck-e176282521f7-default/tests/clients/dbfarm/mTests_clients" "--set" "mal_listing=0" -# 19:12:36 > +# 20:08:35 > +# 20:08:35 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33437" "--set" "mapi_usock=/var/tmp/mtest-1201/.s.monetdb.33437" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/ufs/manegold/_/Monet/HG/Feb2013/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_clients" "--set" "mal_listing=0" +# 20:08:35 > -# MonetDB 5 server v11.16.0 "default-e176282521f7" +# MonetDB 5 server v11.15.12 +# This is an unreleased version # Serving database 'mTests_clients', using 8 threads -# Compiled for i686-apple-darwin9/32bit with 32bit OIDs dynamically linked -# Found 2.000 GiB available main-memory. +# 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://build-x86-macosx:39487/ -# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-22854/.s.monetdb.39487 +# Listening for connection requests on mapi:monetdb://rome.ins.cwi.nl:33437/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-1201/.s.monetdb.33437 # MonetDB/GIS module loaded # MonetDB/JAQL module loaded # MonetDB/SQL module loaded @@ -26,7 +27,7 @@ Ready. # 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: 15_history.sql # loading sql script: 16_tracelog.sql # loading sql script: 17_compress.sql # loading sql script: 18_dictionary.sql @@ -37,20 +38,15 @@ Ready. # 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: 40_geom.sql -# loading sql script: 40_json.sql -# loading sql script: 41_jsonstore.sql -# loading sql script: 45_uuid.sql # loading sql script: 75_storagemodel.sql -# loading sql script: 80_statistics.sql # loading sql script: 80_udf.sql # loading sql script: 99_system.sql -# 19:12:36 > -# 19:12:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-22854" "--port=39487" -# 19:12:36 > +# 20:08:35 > +# 20:08:35 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-1201" "--port=33437" +# 20:08:35 > SCHEMA json SCHEMA tmp @@ -8430,7 +8426,7 @@ CREATE TABLE "sys"."user_role" ( ); COMMIT; -# 19:12:47 > -# 19:12:47 > "Done." -# 19:12:47 > +# 20:26:19 > +# 20:26:19 > "Done." +# 20:26:19 > diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err.Windows b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err.Windows --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err.Windows +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err.Windows @@ -30,16 +30,16 @@ stderr of test 'opt_sql_append` in direc # 22:58:57 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" "--port=36275" # 22:58:57 > -MAPI = monetdb@LAB03:34769 +MAPI = (monetdb) /var/tmp/mtest-11972/.s.monetdb.36131 QUERY = explain copy into ttt from '/tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: /tmp/xyz -MAPI = monetdb@LAB03:34769 +MAPI = (monetdb) /var/tmp/mtest-11972/.s.monetdb.36131 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz -MAPI = monetdb@LAB03:34769 +MAPI = (monetdb) /var/tmp/mtest-11972/.s.monetdb.36131 QUERY = explain copy into ttt from '/tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: /tmp/xyz -MAPI = monetdb@LAB03:34769 +MAPI = (monetdb) /var/tmp/mtest-11972/.s.monetdb.36131 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz diff --git a/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows b/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows --- a/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows +++ b/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows @@ -1,19 +1,19 @@ stdout of test 'casts` in directory 'monetdb5/tests/gdkTests` itself: -# 13:17:19 > -# 13:17:19 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=C:\Users\sjoerd\Documents\src\MonetDB\devel\NTv32d\var\MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=31338" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" -# 13:17:19 > +# 12:38:12 > +# 12:38:12 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/home/sjoerd/Monet-devel/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=34829" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" +# 12:38:12 > -# MonetDB 5 server v11.10.0 (hg id: c87bcc2d7e0e) +# MonetDB 5 server v11.10.0 (hg id: 9d539a55f543) # This is an unreleased version -# Serving database 'mTests_tests_gdkTests', using 4 threads -# Compiled for i686-pc-winnt/32bit with 32bit OIDs dynamically linked -# Found 3.991 GiB available main-memory. +# Serving database 'mTests_tests_gdkTests', using 1 thread +# Compiled for i686-pc-linux-gnu/32bit with 32bit OIDs dynamically linked +# Found 0.980 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://lab03:31338/ +# Listening for connection requests on mapi:monetdb://localhost.localdomain:34829/ # MonetDB/GIS module loaded # MonetDB/JAQL module loaded # MonetDB/SQL module loaded @@ -3775,7 +3775,7 @@ Caught exception # s := "random string"; s_str := calc.str(s); io.print(s_str); [ "random string" ] -# 13:17:21 > -# 13:17:21 > "Done." -# 13:17:21 > +# 12:38:12 > +# 12:38:12 > "Done." +# 12:38:12 > diff --git a/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 b/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 --- a/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 +++ b/monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 @@ -1,19 +1,19 @@ stdout of test 'casts` in directory 'monetdb5/tests/gdkTests` itself: -# 13:13:32 > -# 13:13:32 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=C:\Users\sjoerd\Documents\src\MonetDB\devel\NTv64d\var\MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=34045" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" -# 13:13:32 > +# 12:38:12 > +# 12:38:12 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/home/sjoerd/Monet-devel/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=34829" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" +# 12:38:12 > -# MonetDB 5 server v11.10.0 (hg id: c87bcc2d7e0e) +# MonetDB 5 server v11.10.0 (hg id: 9d539a55f543) # This is an unreleased version -# Serving database 'mTests_tests_gdkTests', using 4 threads -# Compiled for x86_64-pc-winnt/64bit with 64bit OIDs dynamically linked -# Found 11.991 GiB available main-memory. +# Serving database 'mTests_tests_gdkTests', using 1 thread +# Compiled for i686-pc-linux-gnu/32bit with 32bit OIDs dynamically linked +# Found 0.980 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://lab03:34045/ +# Listening for connection requests on mapi:monetdb://localhost.localdomain:34829/ # MonetDB/GIS module loaded # MonetDB/JAQL module loaded # MonetDB/SQL module loaded @@ -3781,7 +3781,7 @@ Caught exception # s := "random string"; s_str := calc.str(s); io.print(s_str); [ "random string" ] -# 13:13:34 > -# 13:13:34 > "Done." -# 13:13:34 > +# 12:38:12 > +# 12:38:12 > "Done." +# 12:38:12 > diff --git a/monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 b/monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 --- a/monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 +++ b/monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 @@ -1,19 +1,19 @@ stdout of test 'casts` in directory 'monetdb5/tests/gdkTests` itself: -# 13:06:11 > -# 13:06:11 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/sjoerd/Monet-virgin/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=37661" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" -# 13:06:11 > +# 12:38:12 > +# 12:38:12 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/home/sjoerd/Monet-devel/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=34829" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_gdkTests" "casts.mal" +# 12:38:12 > -# MonetDB 5 server v11.10.0 (hg id: ab87b79ab26a+a440bacc18db+) +# MonetDB 5 server v11.10.0 (hg id: 9d539a55f543) # This is an unreleased version -# Serving database 'mTests_tests_gdkTests', using 8 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked -# Found 15.629 GiB available main-memory. +# Serving database 'mTests_tests_gdkTests', using 1 thread +# Compiled for i686-pc-linux-gnu/32bit with 32bit OIDs dynamically linked +# Found 0.980 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://madrid.ins.cwi.nl:37661/ +# Listening for connection requests on mapi:monetdb://localhost.localdomain:34829/ # MonetDB/GIS module loaded # MonetDB/JAQL module loaded # MonetDB/SQL module loaded @@ -3781,7 +3781,7 @@ Caught exception # s := "random string"; s_str := calc.str(s); io.print(s_str); [ "random string" ] -# 13:06:11 > -# 13:06:11 > "Done." -# 13:06:11 > +# 12:38:12 > +# 12:38:12 > "Done." +# 12:38:12 > diff --git a/sql/benchmarks/tpch/Tests/16-plan.stable.out b/sql/benchmarks/tpch/Tests/16-plan.stable.out --- a/sql/benchmarks/tpch/Tests/16-plan.stable.out +++ b/sql/benchmarks/tpch/Tests/16-plan.stable.out @@ -77,7 +77,7 @@ project ( | | | | | ) [ supplier.s_suppkey NOT NULL HASHCOL as L3.L2 ] | | | | ) [ partsupp.ps_suppkey NOT NULL = L3.L2 NOT NULL HASHCOL ] | | | ) [ partsupp.ps_suppkey NOT NULL, part.p_brand NOT NULL, part.p_type NOT NULL, part.p_size NOT NULL ] -| | ) [ partsupp.ps_suppkey NOT NULL as L5.L5, part.p_size NOT NULL, part.p_brand NOT NULL, part.p_type NOT NULL ] [ part.p_size NOT NULL, part.p_brand NOT NULL, part.p_type NOT NULL, L5.L5 NOT NULL ] +| | ) [ partsupp.ps_suppkey NOT NULL as L5.L5, part.p_size NOT NULL, part.p_brand NOT NULL, part.p_type NOT NULL ] [ part.p_brand NOT NULL, part.p_type NOT NULL, part.p_size NOT NULL, L5.L5 NOT NULL ] | ) [ part.p_size NOT NULL, part.p_brand NOT NULL, part.p_type NOT NULL ] [ part.p_brand NOT NULL, part.p_type NOT NULL, part.p_size NOT NULL, sys.count no nil (L5.L5 NOT NULL) NOT NULL as L4.L4 ] ) [ part.p_brand NOT NULL, part.p_type NOT NULL, part.p_size NOT NULL, L4 NOT NULL as L4.supplier_cnt ] [ L4.supplier_cnt NOT NULL, part.p_brand ASC NOT NULL, part.p_type ASC NOT NULL, part.p_size ASC NOT NULL ] diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -3955,7 +3955,7 @@ rel_groupby_distinct(int *changes, mvc * if (is_groupby(rel->op) && rel->r && !rel_is_ref(rel)) { node *n; int nr = 0; - list *gbe, *arg, *exps; + list *gbe, *ngbe, *arg, *exps, *nexps; sql_exp *distinct = NULL, *darg; sql_rel *l = NULL; @@ -3971,17 +3971,35 @@ rel_groupby_distinct(int *changes, mvc * arg = distinct->l; if (distinct->type != e_aggr || list_length(arg) != 1) return rel; + darg = arg->h->data; exp_label(sql->sa, darg, ++sql->label); - gbe = list_dup(rel->r, (fdup)NULL); - exps = list_dup(rel->r, (fdup)NULL); + + gbe = rel->r; + ngbe = sa_list(sql->sa); + exps = sa_list(sql->sa); + nexps = sa_list(sql->sa); + for (n=rel->exps->h; n; n = n->next) { + sql_exp *e = n->data; + if (e != distinct) { + e = exp_column(sql->sa, exp_find_rel_name(e), exp_name(e), exp_subtype(e), e->card, has_nil(e), is_intern(e)); + append(ngbe, e); + append(exps, e); + e = exp_column(sql->sa, exp_find_rel_name(e), exp_name(e), exp_subtype(e), e->card, has_nil(e), is_intern(e)); + append(nexps, e); + } + } + list_append(gbe, exp_copy(sql->sa, darg)); darg = exp_column(sql->sa, exp_find_rel_name(darg), exp_name(darg), exp_subtype(darg), darg->card, has_nil(darg), is_intern(darg)); list_append(exps, exp_copy(sql->sa, darg)); arg->h->data = darg; l = rel->l = rel_groupby(sql, rel->l, gbe); l->exps = exps; + rel->r = ngbe; + rel->exps = nexps; set_nodistinct(distinct); + append(nexps, distinct); (*changes)++; } return rel; diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -311,6 +311,7 @@ int yydebug=1; column_ref atom_commalist value_commalist + pred_exp_list row_commalist qname qfunc @@ -3259,6 +3260,23 @@ in_predicate: _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
