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