Changeset: dccead8937dd for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dccead8937dd Modified Files: common/utils/mutils.c Branch: default Log Message:
Merged from Apr2011 diffs (199 lines): diff --git a/common/utils/mutils.c b/common/utils/mutils.c --- a/common/utils/mutils.c +++ b/common/utils/mutils.c @@ -28,6 +28,10 @@ #include "mutils.h" +#ifdef HAVE_MACH_O_DYLD_H +# include <mach-o/dyld.h> /* _NSGetExecutablePath on OSX >=10.5 */ +#endif + #ifdef NATIVE_WIN32 #include <stdio.h> 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 @@ -2103,26 +2103,6 @@ r && r->op == op_project && !(rel_is_ref(r))) return rel_merge_projects(changes, sql, rel); - /* merge select and cross product ? */ - if (rel->op == op_select && r && r->op == op_join && !(rel_is_ref(r))) { - list *exps = rel->exps; - - if (!r->exps) - r->exps = new_exp_list(sql->sa); - rel->exps = new_exp_list(sql->sa); - for (n = exps->h; n; n = n->next) { - sql_exp *e = n->data; - - if (exp_is_join_exp(e) == 0) { - append(r->exps, e); - *changes += 1; - } else { - append(rel->exps, e); - } - } - return rel; - } - /* push select through join */ if (rel->op == op_select && r && is_join(r->op) && !(rel_is_ref(r))) { sql_rel *jl = r->l; @@ -2163,6 +2143,26 @@ return rel; } + /* merge select and cross product ? */ + if (rel->op == op_select && r && r->op == op_join && !(rel_is_ref(r))) { + list *exps = rel->exps; + + if (!r->exps) + r->exps = new_exp_list(sql->sa); + rel->exps = new_exp_list(sql->sa); + for (n = exps->h; n; n = n->next) { + sql_exp *e = n->data; + + if (exp_is_join_exp(e) == 0) { + append(r->exps, e); + *changes += 1; + } else { + append(rel->exps, e); + } + } + return rel; + } + /* push select through set */ if (rel->op == op_select && r && is_set(r->op) && !(rel_is_ref(r))) { sql_rel *res = r; 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 @@ -4,3 +4,4 @@ extract_seconds.Bug-2793 alter_incorrect_syntax_crash.Bug-2795 crash_in_modulo_rand.Bug-2766 +nested_select.Bug-2801 diff --git a/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.sql b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.sql @@ -0,0 +1,7 @@ +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 VALUES (1, 3); +CREATE TABLE t2 (c INT, d INT); +INSERT INTO t2 VALUES (1, 4); +SELECT * FROM (SELECT * FROM t1 INNER JOIN t2 ON a = c) abc WHERE abc.a > abc.b; +drop table t1; +drop table t2; diff --git a/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.err b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.err @@ -0,0 +1,39 @@ +stderr of test 'nested_select.Bug-2801` in directory 'test/BugTracker-2011` itself: + + +# 12:30:57 > +# 12:30:57 > mserver5 --debug=10 --set gdk_nr_threads=0 --set "gdk_dbfarm=/ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set mapi_open=true --set mapi_port=37103 --set monet_prompt= --trace --forcemito --set mal_listing=2 "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0 ; echo ; echo Over.. +# 12:30:57 > + +# builtin opt gdk_dbname = demo +# builtin opt gdk_dbfarm = /ufs/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 default_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector +# builtin opt minimal_pipe = inline,remap,deadcode,multiplex,garbageCollector +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt gdk_dbfarm = /ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 37103 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbname = mTests_test_BugTracker-2011 +# cmdline opt mal_listing = 0 + +# 12:30:57 > +# 12:30:57 > mclient -lsql -ftest -i -e --host=alf --port=37103 +# 12:30:57 > + + +# 12:30:57 > +# 12:30:57 > Done. +# 12:30:57 > + diff --git a/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.out b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.out @@ -0,0 +1,45 @@ +stdout of test 'nested_select.Bug-2801` in directory 'test/BugTracker-2011` itself: + + +# 12:30:57 > +# 12:30:57 > mserver5 --debug=10 --set gdk_nr_threads=0 --set "gdk_dbfarm=/ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set mapi_open=true --set mapi_port=37103 --set monet_prompt= --trace --forcemito --set mal_listing=2 "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0 ; echo ; echo Over.. +# 12:30:57 > + +# MonetDB 5 server v11.3.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 7.752 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2011 MonetDB B.V., all rights reserved +# Visit http://monetdb.cwi.nl/ for further information +# Listening for connection requests on mapi:monetdb://alf.ins.cwi.nl:37103/ +# MonetDB/SQL module loaded +# MonetDB/GIS module loaded + +Ready. + +Over.. + +# 12:30:57 > +# 12:30:57 > mclient -lsql -ftest -i -e --host=alf --port=37103 +# 12:30:57 > + +#CREATE TABLE t1 (a INT, b INT); +#INSERT INTO t1 VALUES (1, 3); +[ 1 ] +#CREATE TABLE t2 (c INT, d INT); +#INSERT INTO t2 VALUES (1, 4); +[ 1 ] +#SELECT * FROM (SELECT * FROM t1 INNER JOIN t2 ON a = c) abc WHERE abc.a > abc.b; +% sys.abc, sys.abc, sys.abc, sys.abc # table_name +% a, b, c, d # name +% int, int, int, int # type +% 1, 1, 1, 1 # length +#drop table t1; +#drop table t2; + +# 12:30:57 > +# 12:30:57 > Done. +# 12:30:57 > + diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c --- a/tools/mserver/mserver5.c +++ b/tools/mserver/mserver5.c @@ -49,10 +49,6 @@ #include <Psapi.h> /* for GetModuleFileName */ #endif -#ifdef HAVE_MACH_O_DYLD_H -# include <mach-o/dyld.h> /* _NSGetExecutablePath on OSX >=10.5 */ -#endif - #ifdef _CRTDBG_MAP_ALLOC /* Windows only: our definition of new and delete clashes with the one if _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list