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

Reply via email to