Changeset: 890e5f8f1473 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=890e5f8f1473
Modified Files:
        sql/server/rel_optimizer.c
        tools/merovingian/client/Makefile.ag
        tools/merovingian/client/monetdb.1
        tools/merovingian/client/monetdb.1.in
Branch: default
Log Message:

Merged from Aug2011


diffs (192 lines):

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
@@ -1914,6 +1914,24 @@ exp_case_fixup( mvc *sql, sql_exp *e )
                exp_setname(sql->sa, ne, e->rname, e->name);
                return ne;
        } 
+       if (e->type == e_aggr) {
+               list *l = NULL, *args = e->l;
+               node *n;
+               sql_exp *ne;
+               sql_subaggr *f = e->f;
+
+               /* first fixup arguments */
+               if (args) {
+                       l = new_exp_list(sql->sa);
+                       for (n=args->h; n; n=n->next) {
+                               sql_exp *a = exp_case_fixup(sql, n->data);
+                               list_append(l, a);
+                       }
+               }
+               ne = exp_aggr(sql->sa, l, f, need_distinct(e), need_no_nil(e), 
e->card, has_nil(e));
+               exp_setname(sql->sa, ne, e->rname, e->name );
+               return ne;
+       }
        return e;
 }
 
@@ -1922,7 +1940,7 @@ rel_case_fixup(int *changes, mvc *sql, s
 {
        
        (void)changes; /* only go through it once, ie don't mark for changes */
-       if (rel->op == op_project && rel->exps) {
+       if (is_project(rel->op) && rel->exps) {
                list *exps = rel->exps;
                node *n;
 
@@ -3669,7 +3687,7 @@ split_aggr_and_project(mvc *sql, list *a
                }
                return exp_column(sql->sa, exp_find_rel_name(e), exp_name(e), 
exp_subtype(e), e->card, has_nil(e), is_intern(e));
        case e_cmp:
-               /* e_cmp's should exist in an aggr expression list */
+               /* e_cmp's shouldn't exist in an aggr expression list */
                assert(0);
        case e_convert:
                e->l = split_aggr_and_project(sql, aexps, e->l);
@@ -3835,8 +3853,9 @@ rel_push_project_up(int *changes, mvc *s
                for (n = rel->exps->h; n && !fnd; n = n->next) {
                        sql_exp *e = n->data;
 
-                       if (e->type != e_aggr && e->type != e_column)
+                       if (e->type != e_aggr && e->type != e_column) {
                                fnd = 1;
+                       }
                }
                /* only aggr, no rewrite needed */
                if (!fnd) 
diff --git a/sql/test/BugTracker-2011/Tests/All 
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -38,3 +38,4 @@ time_precision.Bug-2873
 multiple-joins.Bug-2879
 delete-large-table.Bug-2882
 HAVE_PERL?perl-table_info.Bug-2885
+div_by_zero.Bug-2887
diff --git a/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.sql 
b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.sql
@@ -0,0 +1,4 @@
+Create table t2887 (c int);
+Insert into t2887 values (0);
+select min (case when "c" = 0 then 4 else 3/c end) from t2887;
+drop table t2887;
diff --git a/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.err 
b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'div_by_zero.Bug-2887` in directory 'test/BugTracker-2011` 
itself:
+
+
+# 10:15:18 >  
+# 10:15:18 >   mserver5  --debug=10 --set gdk_nr_threads=0  --set 
"gdk_dbfarm=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set 
mapi_open=true --set mapi_port=32793 --set monet_prompt= --trace --forcemito 
--set mal_listing=2  "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0 
; echo ; echo Over..
+# 10:15:18 >  
+
+# builtin opt  gdk_dbname = demo
+# builtin opt  gdk_dbfarm = 
/home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_alloc_map = no
+# builtin opt  gdk_vmtrim = yes
+# 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  gdk_dbfarm = 
/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 32793
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbname = mTests_test_BugTracker-2011
+# cmdline opt  mal_listing = 0
+
+# 10:15:18 >  
+# 10:15:18 >  mclient -lsql -ftest -i -e --host=niels --port=32793 
+# 10:15:18 >  
+
+
+# 10:15:18 >  
+# 10:15:18 >  Done.
+# 10:15:18 >  
+
diff --git a/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.out 
b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/div_by_zero.Bug-2887.stable.out
@@ -0,0 +1,42 @@
+stdout of test 'div_by_zero.Bug-2887` in directory 'test/BugTracker-2011` 
itself:
+
+
+# 10:15:18 >  
+# 10:15:18 >   mserver5  --debug=10 --set gdk_nr_threads=0  --set 
"gdk_dbfarm=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set 
mapi_open=true --set mapi_port=32793 --set monet_prompt= --trace --forcemito 
--set mal_listing=2  "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0 
; echo ; echo Over..
+# 10:15:18 >  
+
+# MonetDB 5 server v11.5.0
+# This is an unreleased version
+# Serving database 'mTests_test_BugTracker-2011', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
+# Found 3.788 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2011 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on 
mapi:monetdb://niels.nesco.mine.nu:32793/
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+
+Over..
+
+# 10:15:18 >  
+# 10:15:18 >  mclient -lsql -ftest -i -e --host=niels --port=32793 
+# 10:15:18 >  
+
+#Create table t2887 (c int);
+#Insert into t2887 values (0);
+[ 1    ]
+#select min (case when "c" = 0 then 4 else 3/c end) from t2887;
+% sys. # table_name
+% L2 # name
+% int # type
+% 1 # length
+[ 4    ]
+#drop table t2887;
+
+# 10:15:18 >  
+# 10:15:18 >  Done.
+# 10:15:18 >  
+
diff --git a/tools/merovingian/client/Makefile.ag 
b/tools/merovingian/client/Makefile.ag
--- a/tools/merovingian/client/Makefile.ag
+++ b/tools/merovingian/client/Makefile.ag
@@ -27,8 +27,7 @@ INCLUDES = ../../../monetdb5/misc \
 EXTRA_DIST = $(man_MANS)
 
 bin_monetdb = {
-       # hack: include monetdb.1.in here to get it expanded
-       SOURCES = monetdb.c monetdb.1.in
+       SOURCES = monetdb.c
        LIBS = ../utils/libmeroutil \
                   ../../../monetdb5/misc/libsabaoth \
                   ../../../common/stream/libstream \
diff --git a/tools/merovingian/client/monetdb.1.in 
b/tools/merovingian/client/monetdb.1
rename from tools/merovingian/client/monetdb.1.in
rename to tools/merovingian/client/monetdb.1
--- a/tools/merovingian/client/monetdb.1.in
+++ b/tools/merovingian/client/monetdb.1
@@ -174,8 +174,8 @@ properties, run
 .BR "monetdb get all" .
 Most properties require the database to be stopped when set.  The
 following properties have special values, or do not have an equivalent
-in
-.BR monetdb5.conf (5).
+option for
+.BR mserver5 (1).
 .IP "  forward=<redirect|proxy>"
 When set to redirect, monetdbd tells each connecting client to make a
 new connection directly to the database the client looks for.  This
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to