MonetDB: default - correctly set the new optimizer
Changeset: 705e66cf0151 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=705e66cf0151 Modified Files: sql/backends/monet5/sql.mx Branch: default Log Message: correctly set the new optimizer diffs (12 lines): diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx --- a/sql/backends/monet5/sql.mx +++ b/sql/backends/monet5/sql.mx @@ -2672,7 +2672,7 @@ setVariable(Client cntxt, MalBlkPtr mb, return msg; if ( newopt != NULL ) { if (stack_find_var(m, varname)) - stack_set_string(m, varname, user); + stack_set_string(m, varname, newopt); return MAL_SUCCEED; } throw(SQL, sql.setVariable, Failed to initialize optimizer pipeline); ___ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - merging
Changeset: 1decbe6e010b for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1decbe6e010b Modified Files: Branch: default Log Message: merging diffs (truncated from 527 to 300 lines): diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -590,9 +590,6 @@ /* Define to 1 if you have the time.h header file. */ #define HAVE_TIME_H 1 -/* Define to 1 if you have the timezone and daylight variables. */ -#define HAVE_TIMEZONE 1 - /* Define to 1 if you have the `trunc' function. */ /* #undef HAVE_TRUNC */ diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -2491,19 +2491,19 @@ doFile(Mapi mid, const char *file, int u static void set_timezone(Mapi mid) { -#ifdef HAVE_TIMEZONE -#ifdef _MSC_VER -#define timezone _timezone -#endif char buf[128]; - struct tm *tm; - time_t t; + time_t t, lt, gt; + struct tm *tmp; long tzone; MapiHdl hdl; + /* figure out our current timezone */ t = time(NULL); - tm = localtime(t); - tzone = timezone - 3600 * tm-tm_isdst; + tmp = gmtime(t); + gt = mktime(tmp); + tmp = localtime(t); + lt = mktime(tmp); + tzone = (long) (gt - lt); if (tzone 0) snprintf(buf, sizeof(buf), SET TIME ZONE INTERVAL '+%02ld:%02ld' HOUR TO MINUTE, @@ -2518,9 +2518,6 @@ set_timezone(Mapi mid) return; } mapi_close_handle(hdl); -#else - (void) mid; -#endif } static void usage(const char *prog, int xit) diff --git a/clients/odbc/driver/SQLConnect.c b/clients/odbc/driver/SQLConnect.c --- a/clients/odbc/driver/SQLConnect.c +++ b/clients/odbc/driver/SQLConnect.c @@ -58,19 +58,19 @@ static void set_timezone(Mapi mid) { -#ifdef HAVE_TIMEZONE -#ifdef _MSC_VER -#define timezone _timezone -#define daylight _daylight -#define tzset _tzset -#endif char buf[128]; + time_t t, lt, gt; + struct tm *tmp; long tzone; MapiHdl hdl; - /* timezone and daylight are POSIX-defined variables */ - tzset(); - tzone = timezone - 3600 * daylight; + /* figure out our current timezone */ + t = time(NULL); + tmp = gmtime(t); + gt = mktime(tmp); + tmp = localtime(t); + lt = mktime(tmp); + tzone = (long) (gt - lt); if (tzone 0) snprintf(buf, sizeof(buf), SET TIME ZONE INTERVAL '+%02ld:%02ld' HOUR TO MINUTE, @@ -81,9 +81,6 @@ set_timezone(Mapi mid) tzone / 3600, (tzone % 3600) / 60); if ((hdl = mapi_query(mid, buf)) != NULL) mapi_close_handle(hdl); -#else - (void) mid; -#endif } static void diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -2530,16 +2530,6 @@ AH_VERBATIM([__attribute__], #endif ]) -AC_MSG_CHECKING([if you have timezone and daylight variables]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include time.h]], - [[printf(%ld %d\n, timezone, daylight);]])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_TIMEZONE], 1, - [Define to 1 if you have the timezone and daylight variables.]), - AC_MSG_RESULT([no])) - dnl checks for library functions case $host in *-darwin1[[01234]]*) diff --git a/sql/backends/monet5/UDF/Tests/udf-fuse.sql b/sql/backends/monet5/UDF/Tests/udf-fuse.sql --- a/sql/backends/monet5/UDF/Tests/udf-fuse.sql +++ b/sql/backends/monet5/UDF/Tests/udf-fuse.sql @@ -1,3 +1,5 @@ +set optimizer = 'sequential_pipe'; + explain select fuse(1,2); select fuse(1,2); diff --git a/sql/backends/monet5/UDF/Tests/udf-reverse.sql b/sql/backends/monet5/UDF/Tests/udf-reverse.sql --- a/sql/backends/monet5/UDF/Tests/udf-reverse.sql +++ b/sql/backends/monet5/UDF/Tests/udf-reverse.sql @@ -1,3 +1,5 @@ +set optimizer = 'sequential_pipe'; + explain select reverse('MonetDB'); select reverse('MonetDB'); diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -1197,10 +1197,49 @@ rel_subquery_optname(mvc *sql, sql_rel * return rel_table_optname(sql, sq, sn-name); } +sql_rel * +rel_with_query(mvc *sql, symbol *q ) +{ + dnode *d = q-data.lval-h; + symbol *select = d-next-data.sym; + sql_rel *rel; + + stack_push_frame(sql, WITH); + /* first handle all with's (ie inlined views) */ + for (d = d-data.lval-h; d; d = d-next) { + symbol *sym = d-data.sym; + dnode *dn = sym-data.lval-h; + char *name = qname_table(dn-data.lval); + sql_rel *nrel; + + if (frame_find_var(sql, name)) { + return sql_error(sql, 01, Variable '%s' allready declared,
MonetDB: Dec2011 - in case of correlated groupby we need to add ...
Changeset: 7e4c8b3f36c6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7e4c8b3f36c6 Modified Files: sql/server/rel_select.c sql/test/BugTracker-2012/Tests/All sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.err sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.out Branch: Dec2011 Log Message: in case of correlated groupby we need to add the outer projection's to the groupby and aggr expressions. Fixes bug 3011. diffs (278 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -4740,6 +4740,8 @@ rel_select_exp(mvc *sql, sql_rel *rel, s if (!gbe) return NULL; + if (outer pre_prj) + list_merge(gbe, pre_prj, (fdup)NULL); rel = rel_groupby(sql-sa, rel, gbe); aggr = 1; } diff --git a/sql/test/BugTracker-2012/Tests/All b/sql/test/BugTracker-2012/Tests/All --- a/sql/test/BugTracker-2012/Tests/All +++ b/sql/test/BugTracker-2012/Tests/All @@ -14,3 +14,4 @@ outerjoin_select.Bug-2946 leftjoin-Bug.3041 with_in_derived_table.Bug-3043 boolean_coersion.Bug-3012 +correlated_groupby_in_selection.Bug-3011 diff --git a/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql b/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql @@ -0,0 +1,83 @@ + +CREATE TABLE sys.test ( +versionDECIMAL(2)NOT NULL, +implicit BOOLEAN NOT NULL, +dataownercode VARCHAR(10) NOT NULL, +lineplanningnumber VARCHAR(10) NOT NULL, +journeypatterncode VARCHAR(10) NOT NULL, +timinglinkorderDECIMAL(3)NOT NULL, +userstopcodebegin VARCHAR(10) NOT NULL, +userstopcodeendVARCHAR(10) NOT NULL, +confinrelcode VARCHAR(10) NOT NULL, +destcode VARCHAR(10) NOT NULL, +istimingstop BOOLEAN NOT NULL, +displaypublicline VARCHAR(4), +productformulatype VARCHAR(4) +); + + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin = test.userstopcodebegin +group by dataownercode, lineplanningnumber, journeypatterncode) as +passagesequencenumber +from test order by dataownercode, lineplanningnumber, journeypatterncode, +timinglinkorder limit 20; + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin = test.userstopcodebegin) as +passagesequencenumber +from test order by dataownercode, lineplanningnumber, journeypatterncode, +timinglinkorder limit 20; + + +COPY 10 RECORDS INTO test FROM STDIN USING DELIMITERS ',', '\n'; +1,true,CXX,A001,0,0,4010,40004015,santro,A00100998,true,,34 +1,true,CXX,A001,0,1,40004015,40004021,santro,A00100998,false,,34 +1,true,CXX,A001,0,2,40004021,40002570,santro,A00100998,false,,34 +1,true,CXX,A001,0,3,40002570,40002550,santro,A00100998,false,,34 +1,true,CXX,A001,0,4,40002550,40002590,santro,A00100998,false,,34 +1,true,CXX,A001,0,5,40002590,40002610,santro,A00100998,false,,34 +1,true,CXX,A001,0,6,40002610,40002630,santro,A00100998,false,,34 +1,true,CXX,A001,0,7,40002630,40002690,santro,A00100998,false,,34 +1,true,CXX,A001,0,8,40002690,40002770,santro,A00100998,false,,34 +1,true,CXX,A001,0,9,40002770,40009591,santro,A00100998,false,,34 + + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin =
MonetDB: default - Merge with Dec2011 branch.
Changeset: d7ef782ed835 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d7ef782ed835 Modified Files: sql/server/rel_select.c Branch: default Log Message: Merge with Dec2011 branch. diffs (278 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -4729,6 +4729,8 @@ rel_select_exp(mvc *sql, sql_rel *rel, s if (!gbe) return NULL; + if (outer pre_prj) + list_merge(gbe, pre_prj, (fdup)NULL); rel = rel_groupby(sql-sa, rel, gbe); aggr = 1; } diff --git a/sql/test/BugTracker-2012/Tests/All b/sql/test/BugTracker-2012/Tests/All --- a/sql/test/BugTracker-2012/Tests/All +++ b/sql/test/BugTracker-2012/Tests/All @@ -14,3 +14,4 @@ outerjoin_select.Bug-2946 leftjoin-Bug.3041 with_in_derived_table.Bug-3043 boolean_coersion.Bug-3012 +correlated_groupby_in_selection.Bug-3011 diff --git a/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql b/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.sql @@ -0,0 +1,83 @@ + +CREATE TABLE sys.test ( +versionDECIMAL(2)NOT NULL, +implicit BOOLEAN NOT NULL, +dataownercode VARCHAR(10) NOT NULL, +lineplanningnumber VARCHAR(10) NOT NULL, +journeypatterncode VARCHAR(10) NOT NULL, +timinglinkorderDECIMAL(3)NOT NULL, +userstopcodebegin VARCHAR(10) NOT NULL, +userstopcodeendVARCHAR(10) NOT NULL, +confinrelcode VARCHAR(10) NOT NULL, +destcode VARCHAR(10) NOT NULL, +istimingstop BOOLEAN NOT NULL, +displaypublicline VARCHAR(4), +productformulatype VARCHAR(4) +); + + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin = test.userstopcodebegin +group by dataownercode, lineplanningnumber, journeypatterncode) as +passagesequencenumber +from test order by dataownercode, lineplanningnumber, journeypatterncode, +timinglinkorder limit 20; + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin = test.userstopcodebegin) as +passagesequencenumber +from test order by dataownercode, lineplanningnumber, journeypatterncode, +timinglinkorder limit 20; + + +COPY 10 RECORDS INTO test FROM STDIN USING DELIMITERS ',', '\n'; +1,true,CXX,A001,0,0,4010,40004015,santro,A00100998,true,,34 +1,true,CXX,A001,0,1,40004015,40004021,santro,A00100998,false,,34 +1,true,CXX,A001,0,2,40004021,40002570,santro,A00100998,false,,34 +1,true,CXX,A001,0,3,40002570,40002550,santro,A00100998,false,,34 +1,true,CXX,A001,0,4,40002550,40002590,santro,A00100998,false,,34 +1,true,CXX,A001,0,5,40002590,40002610,santro,A00100998,false,,34 +1,true,CXX,A001,0,6,40002610,40002630,santro,A00100998,false,,34 +1,true,CXX,A001,0,7,40002630,40002690,santro,A00100998,false,,34 +1,true,CXX,A001,0,8,40002690,40002770,santro,A00100998,false,,34 +1,true,CXX,A001,0,9,40002770,40009591,santro,A00100998,false,,34 + + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +counter.dataownercode = test.dataownercode and +counter.lineplanningnumber = test.lineplanningnumber and +counter.journeypatterncode = test.journeypatterncode and +counter.timinglinkorder test.timinglinkorder and +counter.userstopcodebegin = test.userstopcodebegin +group by dataownercode, lineplanningnumber, journeypatterncode) as +passagesequencenumber +from test order by dataownercode, lineplanningnumber, journeypatterncode, +timinglinkorder limit 20; + +select dataownercode, lineplanningnumber, journeypatterncode, timinglinkorder, +userstopcodebegin, istimingstop, + (select count(*) from test as counter where +
MonetDB: Dec2011 - removed obsolete FreeBSD-specific output:
Changeset: a15af31ea096 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a15af31ea096 Modified Files: sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD Branch: Dec2011 Log Message: removed obsolete FreeBSD-specific output: with fixed timezone recognition, generated function names/numbers are now aligned with other systems diffs (172 lines): diff --git a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD +++ /dev/null @@ -1,89 +0,0 @@ -stdout of test 'group-by_ordered_column.Bug-2564` in directory 'test/BugTracker-2010` itself: - - -# 19:36:51 -# 19:36:51mserver5 --config=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/etc/monetdb5.conf --debug=10 --set gdk_nr_threads=0 --set monet_mod_path=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/lib:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/bin --set gdk_dbfarm=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/dbfarm --set mapi_open=true --set xrpc_open=true --set mapi_port=30272 --set xrpc_port=42483 --set monet_prompt= --set mal_listing=2 --trace --dbname=mTests_src_test_BugTracker-2010 --set mal_listing=0 ; echo ; echo Over.. -# 19:36:51 - -# MonetDB server v5.20.3, based on kernel v1.38.2 -# Serving database 'mTests_src_test_BugTracker-2010', using 4 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked -# Found 7.751 GiB available main-memory. -# Copyright (c) 1993-July 2008 CWI. -# Copyright (c) August 2008-2012 MonetDB B.V., all rights reserved -# Visit http://monetdb.cwi.nl/ for further information -# Listening for connection requests on mapi:monetdb://rig.ins.cwi.nl:30272/ -# MonetDB/SQL module v2.38.3 loaded -# MonetDB/GIS module v0.18.1 loaded - -Ready. - - -# 19:36:51 -# 19:36:51 mclient -lsql -ftest -i -e --host=rig --port=30272 -# 19:36:51 - -[ 1] -[ 1] -[ 1] -#select * from t2564; -% sys.t2564, sys.t2564, sys.t2564 # table_name -% c1, c2, c3 # name -% int, int,int # type -% 1, 1, 1 # length -[ 3, 1, 2 ] -[ 1, 2, 1 ] -[ 2, 3, 3 ] -#explain select count(*) from t2564 group by c1, c2, c3; -% .explain # table_name -% mal # name -% clob # type -% 63 # length -function user.s4_1{autoCommit=true}():void; -X_2 := sql.mvc(); -X_30:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,0); -X_29:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,2); -X_32 := algebra.kdifference(X_30,X_29); -X_33 := algebra.kunion(X_32,X_29); -X_28:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,1); -X_34 := algebra.kunion(X_33,X_28); -X_5:bat[:oid,:oid] := sql.bind_dbat(X_2,sys,t2564,1); -X_8 := bat.reverse(X_5); -X_35 := algebra.kdifference(X_34,X_8); -(ext53,grp51) := group.new(X_35); -X_21:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,0); -X_20:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,2); -X_22 := algebra.kdifference(X_21,X_20); -X_23 := algebra.kunion(X_22,X_20); -X_19:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,1); -X_24 := algebra.kunion(X_23,X_19); -X_25 := algebra.kdifference(X_24,X_8); -(ext56,grp54) := group.derive(ext53,grp51,X_25); -X_12:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,0); -X_10:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,2); -X_14 := algebra.kdifference(X_12,X_10); -X_15 := algebra.kunion(X_14,X_10); -X_9:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,1); -X_16 := algebra.kunion(X_15,X_9); -X_17 := algebra.kdifference(X_16,X_8); -(ext59,grp57) := group.done(ext56,grp54,X_17); -X_42 := bat.mirror(ext59); -X_43:bat[:oid,:wrd] := aggr.count(grp57,grp57,X_42); -X_44 := sql.resultSet(1,1,X_43); -sql.rsColumn(X_44,sys.t2564,L4:str,wrd,64,0,X_43); -X_52 := io.stdout(); -sql.exportResult(X_52,X_44); -end s4_1; -#select count(*) from t2564 group by c1, c2, c3; -% sys.t2564 # table_name -% L5 # name -% wrd # type -% 1 # length -[ 1] -[ 1] -[ 1] - -# 19:36:51 -# 19:36:51 Done. -# 19:36:51 - diff --git a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD deleted
MonetDB: default - Merge with Dec2011 branch.
Changeset: f75e41779ae1 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f75e41779ae1 Modified Files: sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD Branch: default Log Message: Merge with Dec2011 branch. diffs (172 lines): diff --git a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD +++ /dev/null @@ -1,89 +0,0 @@ -stdout of test 'group-by_ordered_column.Bug-2564` in directory 'test/BugTracker-2010` itself: - - -# 19:36:51 -# 19:36:51mserver5 --config=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/etc/monetdb5.conf --debug=10 --set gdk_nr_threads=0 --set monet_mod_path=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/lib:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/bin --set gdk_dbfarm=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/dbfarm --set mapi_open=true --set xrpc_open=true --set mapi_port=30272 --set xrpc_port=42483 --set monet_prompt= --set mal_listing=2 --trace --dbname=mTests_src_test_BugTracker-2010 --set mal_listing=0 ; echo ; echo Over.. -# 19:36:51 - -# MonetDB server v5.20.3, based on kernel v1.38.2 -# Serving database 'mTests_src_test_BugTracker-2010', using 4 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked -# Found 7.751 GiB available main-memory. -# Copyright (c) 1993-July 2008 CWI. -# Copyright (c) August 2008-2012 MonetDB B.V., all rights reserved -# Visit http://monetdb.cwi.nl/ for further information -# Listening for connection requests on mapi:monetdb://rig.ins.cwi.nl:30272/ -# MonetDB/SQL module v2.38.3 loaded -# MonetDB/GIS module v0.18.1 loaded - -Ready. - - -# 19:36:51 -# 19:36:51 mclient -lsql -ftest -i -e --host=rig --port=30272 -# 19:36:51 - -[ 1] -[ 1] -[ 1] -#select * from t2564; -% sys.t2564, sys.t2564, sys.t2564 # table_name -% c1, c2, c3 # name -% int, int,int # type -% 1, 1, 1 # length -[ 3, 1, 2 ] -[ 1, 2, 1 ] -[ 2, 3, 3 ] -#explain select count(*) from t2564 group by c1, c2, c3; -% .explain # table_name -% mal # name -% clob # type -% 63 # length -function user.s4_1{autoCommit=true}():void; -X_2 := sql.mvc(); -X_30:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,0); -X_29:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,2); -X_32 := algebra.kdifference(X_30,X_29); -X_33 := algebra.kunion(X_32,X_29); -X_28:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,1); -X_34 := algebra.kunion(X_33,X_28); -X_5:bat[:oid,:oid] := sql.bind_dbat(X_2,sys,t2564,1); -X_8 := bat.reverse(X_5); -X_35 := algebra.kdifference(X_34,X_8); -(ext53,grp51) := group.new(X_35); -X_21:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,0); -X_20:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,2); -X_22 := algebra.kdifference(X_21,X_20); -X_23 := algebra.kunion(X_22,X_20); -X_19:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,1); -X_24 := algebra.kunion(X_23,X_19); -X_25 := algebra.kdifference(X_24,X_8); -(ext56,grp54) := group.derive(ext53,grp51,X_25); -X_12:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,0); -X_10:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,2); -X_14 := algebra.kdifference(X_12,X_10); -X_15 := algebra.kunion(X_14,X_10); -X_9:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,1); -X_16 := algebra.kunion(X_15,X_9); -X_17 := algebra.kdifference(X_16,X_8); -(ext59,grp57) := group.done(ext56,grp54,X_17); -X_42 := bat.mirror(ext59); -X_43:bat[:oid,:wrd] := aggr.count(grp57,grp57,X_42); -X_44 := sql.resultSet(1,1,X_43); -sql.rsColumn(X_44,sys.t2564,L4:str,wrd,64,0,X_43); -X_52 := io.stdout(); -sql.exportResult(X_52,X_44); -end s4_1; -#select count(*) from t2564 group by c1, c2, c3; -% sys.t2564 # table_name -% L5 # name -% wrd # type -% 1 # length -[ 1] -[ 1] -[ 1] - -# 19:36:51 -# 19:36:51 Done. -# 19:36:51 - diff --git a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD +++ /dev/null @@
MonetDB: default - make sure we output on the proper client whil...
Changeset: e5af14437c01 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5af14437c01 Modified Files: monetdb5/mal/mal_client.c monetdb5/mal/mal_linker.c monetdb5/optimizer/opt_pipes.c sql/server/rel_dump.c sql/server/rel_optimizer.c sql/server/rel_select.c sql/server/sql_rel2bin.c sql/server/sql_statement.c Branch: default Log Message: make sure we output on the proper client while parsing the optimizer pipes clean up of old commented out code.. diffs (218 lines): diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c --- a/monetdb5/mal/mal_client.c +++ b/monetdb5/mal/mal_client.c @@ -563,8 +563,8 @@ int MCreadClient(Client c){ if (in-pos = in-len || in-mode) { ssize_t rd, sum = 0; - if (in-eof || !isa_block_stream(in-s)) { - if (!isa_block_stream(c-fdout) c-promptlength 0) + if (in-eof || !isa_block_stream(c-fdout)) { + if (!isa_block_stream(c-fdout) c-promptlength 0) mnstr_write(c-fdout, c-prompt, c-promptlength, 1); mnstr_flush(c-fdout); in-eof = 0; diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c --- a/monetdb5/mal/mal_linker.c +++ b/monetdb5/mal/mal_linker.c @@ -115,9 +115,9 @@ getAddress(stream *out, str filename, st (void) modnme; if( prev = 0){ - adr = (MALfcn) dlsym(filesLoaded[prev].handle, fcnname); - if( adr != NULL) - return adr; /* found it */ + adr = (MALfcn) dlsym(filesLoaded[prev].handle, fcnname); + if( adr != NULL) + return adr; /* found it */ } if( filename prev = 0) { if( strcmp(filename, filesLoaded[prev].filename)==0) { @@ -156,7 +156,7 @@ getAddress(stream *out, str filename, st if( adr != NULL) return adr; /* found it */ } - if( !silent) + if (!silent) showException(out, MAL,MAL.getAddress, address of '%s.%s' not found, (modnme?modnme:unknown), fcnname); return NULL; diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c --- a/monetdb5/optimizer/opt_pipes.c +++ b/monetdb5/optimizer/opt_pipes.c @@ -606,7 +606,6 @@ addOptimizerPipe(Client cntxt, MalBlkPtr InstrPtr p; Symbol sym; str msg = MAL_SUCCEED; - Client c; (void) cntxt; @@ -617,19 +616,19 @@ addOptimizerPipe(Client cntxt, MalBlkPtr /* compile pipes first */ if ( pipes[i].mb == 0){ /* precompile the pipeline as MAL string */ - c= MCinitClient((oid)1,0,0); + Client c = MCinitClient((oid)1,0,0); assert(c != NULL); c-nspace = newModule(NULL, putName(user, 4)); c-father = cntxt; /* to avoid conflicts on GDKin */ + c-fdout = cntxt-fdout; if (setScenario(c,mal)) throw(MAL,optimizer.addOptimizerPipe,failed to set scenario); (void)MCinitClientThread(c); + for ( j =0; j MAXOPTPIPES pipes[j].def; j++) + if (pipes[j].mb == NULL) { - for ( j =0; j MAXOPTPIPES pipes[j].def; j++) - if ( pipes[j].mb == NULL) { - if ( pipes[j].prerequisite - getAddress(cntxt-fdout, NULL, optimizerRef, pipes[j].prerequisite, TRUE) == NULL) - continue; + if (pipes[j].prerequisite getAddress(c-fdout, NULL, optimizerRef, pipes[j].prerequisite, TRUE) == NULL) + continue; MSinitClientPrg(c, user, pipes[j].name); msg = compileString(sym, c, pipes[j].def); if ( msg != MAL_SUCCEED){ @@ -639,7 +638,7 @@ addOptimizerPipe(Client cntxt, MalBlkPtr pipes[j].mb = copyMalBlk(sym-def); } MCcloseClient(c); - validateOptimizerPipes(); + msg = validateOptimizerPipes(); if ( msg != MAL_SUCCEED) return msg; } diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -81,17 +81,11 @@ exp_print(mvc *sql, stream *fout, sql_ex return; switch(e-type) { case e_convert: { - //list *l = e-r; - //sql_subtype *f = l-h-data; char *to_type = sql_subtype_string(e-tpe); - //char *from_type = sql_subtype_string(f); - //mnstr_printf(fout, convert(); mnstr_printf(fout, %s[, to_type);
MonetDB: default - merging
Changeset: 4e11aefea6c0 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4e11aefea6c0 Modified Files: sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD Branch: default Log Message: merging diffs (172 lines): diff --git a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD +++ /dev/null @@ -1,89 +0,0 @@ -stdout of test 'group-by_ordered_column.Bug-2564` in directory 'test/BugTracker-2010` itself: - - -# 19:36:51 -# 19:36:51mserver5 --config=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/etc/monetdb5.conf --debug=10 --set gdk_nr_threads=0 --set monet_mod_path=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/lib:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/bin --set gdk_dbfarm=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/dbfarm --set mapi_open=true --set xrpc_open=true --set mapi_port=30272 --set xrpc_port=42483 --set monet_prompt= --set mal_listing=2 --trace --dbname=mTests_src_test_BugTracker-2010 --set mal_listing=0 ; echo ; echo Over.. -# 19:36:51 - -# MonetDB server v5.20.3, based on kernel v1.38.2 -# Serving database 'mTests_src_test_BugTracker-2010', using 4 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked -# Found 7.751 GiB available main-memory. -# Copyright (c) 1993-July 2008 CWI. -# Copyright (c) August 2008-2012 MonetDB B.V., all rights reserved -# Visit http://monetdb.cwi.nl/ for further information -# Listening for connection requests on mapi:monetdb://rig.ins.cwi.nl:30272/ -# MonetDB/SQL module v2.38.3 loaded -# MonetDB/GIS module v0.18.1 loaded - -Ready. - - -# 19:36:51 -# 19:36:51 mclient -lsql -ftest -i -e --host=rig --port=30272 -# 19:36:51 - -[ 1] -[ 1] -[ 1] -#select * from t2564; -% sys.t2564, sys.t2564, sys.t2564 # table_name -% c1, c2, c3 # name -% int, int,int # type -% 1, 1, 1 # length -[ 3, 1, 2 ] -[ 1, 2, 1 ] -[ 2, 3, 3 ] -#explain select count(*) from t2564 group by c1, c2, c3; -% .explain # table_name -% mal # name -% clob # type -% 63 # length -function user.s4_1{autoCommit=true}():void; -X_2 := sql.mvc(); -X_30:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,0); -X_29:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,2); -X_32 := algebra.kdifference(X_30,X_29); -X_33 := algebra.kunion(X_32,X_29); -X_28:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,1); -X_34 := algebra.kunion(X_33,X_28); -X_5:bat[:oid,:oid] := sql.bind_dbat(X_2,sys,t2564,1); -X_8 := bat.reverse(X_5); -X_35 := algebra.kdifference(X_34,X_8); -(ext53,grp51) := group.new(X_35); -X_21:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,0); -X_20:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,2); -X_22 := algebra.kdifference(X_21,X_20); -X_23 := algebra.kunion(X_22,X_20); -X_19:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,1); -X_24 := algebra.kunion(X_23,X_19); -X_25 := algebra.kdifference(X_24,X_8); -(ext56,grp54) := group.derive(ext53,grp51,X_25); -X_12:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,0); -X_10:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,2); -X_14 := algebra.kdifference(X_12,X_10); -X_15 := algebra.kunion(X_14,X_10); -X_9:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,1); -X_16 := algebra.kunion(X_15,X_9); -X_17 := algebra.kdifference(X_16,X_8); -(ext59,grp57) := group.done(ext56,grp54,X_17); -X_42 := bat.mirror(ext59); -X_43:bat[:oid,:wrd] := aggr.count(grp57,grp57,X_42); -X_44 := sql.resultSet(1,1,X_43); -sql.rsColumn(X_44,sys.t2564,L4:str,wrd,64,0,X_43); -X_52 := io.stdout(); -sql.exportResult(X_52,X_44); -end s4_1; -#select count(*) from t2564 group by c1, c2, c3; -% sys.t2564 # table_name -% L5 # name -% wrd # type -% 1 # length -[ 1] -[ 1] -[ 1] - -# 19:36:51 -# 19:36:51 Done. -# 19:36:51 - diff --git a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD +++ /dev/null @@ -1,73 +0,0 @@
MonetDB: jacqueline - unwrap: give explicit type, can be deduced...
Changeset: 6f28c3ab6d14 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6f28c3ab6d14 Modified Files: monetdb5/extras/jaql/Tests/json05.mal monetdb5/extras/jaql/Tests/json05.stable.out monetdb5/extras/jaql/json.c monetdb5/extras/jaql/json.h monetdb5/extras/jaql/json.mal Branch: jacqueline Log Message: unwrap: give explicit type, can be deduced from unwraptype Because MAL does type analysis and resolution before execution, we need to allow the type system to deduce the type of the returned BAT by unwrap. For that, we need an argument that's the return can be deduced from. That argument can only be given if one knows what unwrap would normally return without argument. Hence unwraptype() to return that type, as a string. diffs (258 lines): diff --git a/monetdb5/extras/jaql/Tests/json05.mal b/monetdb5/extras/jaql/Tests/json05.mal --- a/monetdb5/extras/jaql/Tests/json05.mal +++ b/monetdb5/extras/jaql/Tests/json05.mal @@ -1,13 +1,19 @@ # Test the unwrapping of JSON arrays (j1,j2,j3,j4,j5,j6,j7) := json.shred([false,1,2,null,4]); -a := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +a := json.unwrap(j1,j2,j3,j4,j5,j6,j7,0:lng); io.print(a); (j1,j2,j3,j4,j5,j6,j7) := json.shred([1,true,2.3,null,4]); -b := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +b := json.unwrap(j1,j2,j3,j4,j5,j6,j7,0:dbl); io.print(b); (j1,j2,j3,j4,j5,j6,j7) := json.shred([1,2.3,null,4,\4\,true]); -c := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +c := json.unwrap(j1,j2,j3,j4,j5,j6,j7,:str); io.print(c); diff --git a/monetdb5/extras/jaql/Tests/json05.stable.out b/monetdb5/extras/jaql/Tests/json05.stable.out --- a/monetdb5/extras/jaql/Tests/json05.stable.out +++ b/monetdb5/extras/jaql/Tests/json05.stable.out @@ -18,15 +18,22 @@ stdout of test 'json05` in directory 'ex function user.main():void; # Test the unwrapping of JSON arrays (j1,j2,j3,j4,j5,j6,j7) := json.shred([false,1,2,null,4]); -a := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +a := json.unwrap(j1,j2,j3,j4,j5,j6,j7,0:lng); io.print(a); (j1,j2,j3,j4,j5,j6,j7) := json.shred([1,true,2.3,null,4]); -b := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +b := json.unwrap(j1,j2,j3,j4,j5,j6,j7,0:dbl); io.print(b); (j1,j2,j3,j4,j5,j6,j7) := json.shred([1,2.3,null,4,\4\,true]); -c := json.unwrap(j1,j2,j3,j4,j5,j6,j7); +t := json.unwraptype(j1,j2,j3,j4,j5,j6,j7); +io.print(t); +c := json.unwrap(j1,j2,j3,j4,j5,j6,j7,:str); io.print(c); end main; +[ lng ] #-# # ht # name # oid lng # type @@ -36,6 +43,7 @@ end main; [ 0@0, 2 ] [ 0@0, nil ] [ 0@0, 4 ] +[ dbl ] #-# # ht # name # oid dbl # type @@ -45,6 +53,7 @@ end main; [ 0@0, 2.2998 ] [ 0@0, nil ] [ 0@0, 4 ] +[ str ] #-# # ht # name # oid str # type diff --git a/monetdb5/extras/jaql/json.c b/monetdb5/extras/jaql/json.c --- a/monetdb5/extras/jaql/json.c +++ b/monetdb5/extras/jaql/json.c @@ -980,37 +980,21 @@ JSONwrap(int *rkind, int *rstring, int * } str -JSONunwrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +JSONunwraptype(str *ret, int *kind, int *string, int *integer, int *doble, int *array, int *object, int *name) { - int *ret = (int *)getArgReference(stk, pci, 0); - int *kind = (int *)getArgReference(stk, pci, 1); - int *string = (int *)getArgReference(stk, pci, 2); - int *integer = (int *)getArgReference(stk, pci, 3); - int *doble = (int *)getArgReference(stk, pci, 4); - int *array = (int *)getArgReference(stk, pci, 5); - int *object = (int *)getArgReference(stk, pci, 6); - int *name = (int *)getArgReference(stk, pci, 7); jsonbat jb; - BATiter bi, bis, bii, bid; - BAT *b, *r; + BAT *b; + BATiter bi; BUN p, q; - oid v = 0, x; - lng l; - dbl d; - str s; - char buf[24]; enum typeorder {tlng, tdbl, tstr} totype = tlng; - (void)mb; - (void)cntxt; - loadbats(); /* find types of outermost array */ bi = bat_iterator(jb.kind); if (*(bte *)BUNtail(bi, BUNfirst(jb.kind)) != 'a') { unloadbats(); - throw(MAL, json.unwrap, JSON value must be an array); + throw(MAL, json.unwraptype, JSON value must be an array); } b = BATselect(BATmirror(jb.array), BUNhead(bi,
MonetDB: default - cleanup code of dep checking
Changeset: 10950161ba9a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=10950161ba9a Modified Files: sql/server/rel_psm.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/sql_statement.c Branch: default Log Message: cleanup code of dep checking diffs (78 lines): diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c --- a/sql/server/rel_psm.c +++ b/sql/server/rel_psm.c @@ -745,14 +745,10 @@ rel_create_func(mvc *sql, dlist *qname, restype = result_type(sql, sf, fname, res); if (body) { /* sql func */ - char emode = sql-emode; list *b = NULL; - if (create) /* for subtable we only need direct dependencies */ - sql-emode = m_deps; b = sequential_block(sql, restype, body, NULL, is_func); sql-params = NULL; - sql-emode = emode; if (!b) return NULL; diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c --- a/sql/server/rel_schema.c +++ b/sql/server/rel_schema.c @@ -895,7 +895,6 @@ rel_create_view(mvc *sql, sql_schema *ss } else if (create (!schema_privs(sql-role_id, s) !(isTempSchema(s) persistent == SQL_LOCAL_TEMP))) { return sql_error(sql, 02, CREATE VIEW: access denied for %s to schema ;'%s', stack_get_string(sql, current_user), s-base.name); } else if (query) { - char emode = sql-emode; sql_rel *sq = NULL; char *q = QUERY(sql-scanner); @@ -908,10 +907,7 @@ rel_create_view(mvc *sql, sql_schema *ss return sql_error(sql, 01, 42000!CREATE VIEW: ORDER BY not supported); } - if (create) /* for subtable we only need direct dependencies */ - sql-emode = m_deps; sq = rel_selects(sql, query); - sql-emode = emode; if (!sq) return NULL; diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -1626,7 +1626,7 @@ table_ref(mvc *sql, sql_rel *rel, symbol for (n = exps-h; n; n = n-next) noninternexp_setname(sql-sa, n-data, tname, NULL); return temp_table; - } else if (isView(t) /* sql-emode != m_instantiate */) { + } else if (isView(t)) { /* instantiate base view */ node *n,*m; sql_rel *rel; diff --git a/sql/server/sql_statement.c b/sql/server/sql_statement.c --- a/sql/server/sql_statement.c +++ b/sql/server/sql_statement.c @@ -373,6 +373,11 @@ stmt_deps(list *dep_list, stmt *s, int d push(s); while((s=pop()) != NULL) { if ((dir 0 s-optimized 0) || (dir =0 s-optimized = 0)){ + /* only add dependency once */ + if (dir 0) + s-optimized = 0; + else + s-optimized = -1; switch (s-type) { case st_list: list_deps(dep_list, s-op4.lval, depend_type, dir); @@ -497,10 +502,6 @@ stmt_deps(list *dep_list, stmt *s, int d sz *= 2; stack = RENEW_ARRAY(stmt*, stack, sz); } - if (dir 0) - s-optimized = 0; - else - s-optimized = -1; } _DELETE(stack); } ___ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - approved output, changes are due to generatin...
Changeset: b1ffdf95de3a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b1ffdf95de3a Modified Files: sql/test/Dependencies/Tests/Dependencies.stable.out Branch: default Log Message: approved output, changes are due to generating code in 2 steps now (before direct bin alg was generated) diffs (30 lines): diff --git a/sql/test/Dependencies/Tests/Dependencies.stable.out b/sql/test/Dependencies/Tests/Dependencies.stable.out --- a/sql/test/Dependencies/Tests/Dependencies.stable.out +++ b/sql/test/Dependencies/Tests/Dependencies.stable.out @@ -262,7 +262,6 @@ Dependencies between database objects [ rkey, dependencies_columns_on_keys, DEP_FUNC ] [ rkey, dependencies_tables_on_foreignkeys, DEP_FUNC ] [ id,dependencies_columns_on_indexes, DEP_FUNC ] -[ id,dependencies_tables_on_indexes, DEP_FUNC ] [ table_id, dependencies_columns_on_indexes, DEP_FUNC ] [ table_id, dependencies_tables_on_indexes, DEP_FUNC ] [ name, dependencies_columns_on_indexes, DEP_FUNC ] @@ -357,8 +356,9 @@ Dependencies between database objects % sys.f, sys.tri,. # table_name % name,name, single_value # name % varchar, varchar,char # type -% 5, 12, 11 # length +% 6, 12, 11 # length [ ,trigger_test, DEP_TRIGGER ] +[ isnull,trigger_test, DEP_TRIGGER ] [ count, trigger_test, DEP_TRIGGER ] % sys.k, sys.fk, . # table_name % name,name, single_value # name @@ -594,7 +594,6 @@ Cleanup [ rkey, dependencies_columns_on_keys, DEP_FUNC ] [ rkey, dependencies_tables_on_foreignkeys, DEP_FUNC ] [ id,dependencies_columns_on_indexes, DEP_FUNC ] -[ id,dependencies_tables_on_indexes, DEP_FUNC ] [ table_id, dependencies_columns_on_indexes, DEP_FUNC ] [ table_id, dependencies_tables_on_indexes, DEP_FUNC ] [ name, dependencies_columns_on_indexes, DEP_FUNC ] ___ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - output error on client stream
Changeset: bf0412e53ac9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bf0412e53ac9 Modified Files: monetdb5/modules/mal/tablet_sql.c sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err Branch: default Log Message: output error on client stream diffs (35 lines): diff --git a/monetdb5/modules/mal/tablet_sql.c b/monetdb5/modules/mal/tablet_sql.c --- a/monetdb5/modules/mal/tablet_sql.c +++ b/monetdb5/modules/mal/tablet_sql.c @@ -785,7 +785,7 @@ SQLload_file(Client cntxt, Tablet *as, b } if (task-b-pos task-b-len cnt (BUN) maxrow task-ateof) { - GDKerror(Incomplete record at end of file.\n); + showException(task-out, MAL, copy_from, Incomplete record at end of file.\n); /* indicate that we did read everything (even if we couldn't * deal with it */ task-b-pos = task-b-len; diff --git a/sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err b/sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err --- a/sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err +++ b/sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err @@ -76,7 +76,7 @@ stderr of test 'hang_on_copy_into.SF-110 # 23:26:36 mclient -lsql -i --host=eir --port=38510 # 23:26:36 -MAPI = monetdb@madrid:31246 +MAPI = monetdb@niels:39769 QUERY = COPY 1 RECORDS INTO news FROM stdin USING DELIMITERS '\t', '\n', ; 1 'dwerg.net word volwassen, er is eindelijk content en het voicemail archief begint al aardig vol te lopen. @@ -89,8 +89,8 @@ QUERY = COPY 1 RECORDS INTO news FROM allemaal nogal lang duurt, maar in principe is het nog maar een uurtje of 6 werk om het goed te krijgen. Zoals je kan zien heb ik bij de voicemails al wat leuke -ERROR = !failed to import table -!Incomplete record at end of file. +ERROR = !MALException:copy_from:Incomplete record at end of file. +!failed to import table # 23:26:36 # 23:26:36 Done. ___ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Dec2011 - merging
Changeset: 68efe8ead072 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=68efe8ead072 Modified Files: sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD Branch: Dec2011 Log Message: merging diffs (172 lines): diff --git a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.FreeBSD +++ /dev/null @@ -1,89 +0,0 @@ -stdout of test 'group-by_ordered_column.Bug-2564` in directory 'test/BugTracker-2010` itself: - - -# 19:36:51 -# 19:36:51mserver5 --config=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/etc/monetdb5.conf --debug=10 --set gdk_nr_threads=0 --set monet_mod_path=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/lib:/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/bin --set gdk_dbfarm=/ufs/manegold/_/scratch0/Monet/HG/Jun2010/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/dbfarm --set mapi_open=true --set xrpc_open=true --set mapi_port=30272 --set xrpc_port=42483 --set monet_prompt= --set mal_listing=2 --trace --dbname=mTests_src_test_BugTracker-2010 --set mal_listing=0 ; echo ; echo Over.. -# 19:36:51 - -# MonetDB server v5.20.3, based on kernel v1.38.2 -# Serving database 'mTests_src_test_BugTracker-2010', using 4 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked -# Found 7.751 GiB available main-memory. -# Copyright (c) 1993-July 2008 CWI. -# Copyright (c) August 2008-2012 MonetDB B.V., all rights reserved -# Visit http://monetdb.cwi.nl/ for further information -# Listening for connection requests on mapi:monetdb://rig.ins.cwi.nl:30272/ -# MonetDB/SQL module v2.38.3 loaded -# MonetDB/GIS module v0.18.1 loaded - -Ready. - - -# 19:36:51 -# 19:36:51 mclient -lsql -ftest -i -e --host=rig --port=30272 -# 19:36:51 - -[ 1] -[ 1] -[ 1] -#select * from t2564; -% sys.t2564, sys.t2564, sys.t2564 # table_name -% c1, c2, c3 # name -% int, int,int # type -% 1, 1, 1 # length -[ 3, 1, 2 ] -[ 1, 2, 1 ] -[ 2, 3, 3 ] -#explain select count(*) from t2564 group by c1, c2, c3; -% .explain # table_name -% mal # name -% clob # type -% 63 # length -function user.s4_1{autoCommit=true}():void; -X_2 := sql.mvc(); -X_30:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,0); -X_29:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,2); -X_32 := algebra.kdifference(X_30,X_29); -X_33 := algebra.kunion(X_32,X_29); -X_28:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c2,1); -X_34 := algebra.kunion(X_33,X_28); -X_5:bat[:oid,:oid] := sql.bind_dbat(X_2,sys,t2564,1); -X_8 := bat.reverse(X_5); -X_35 := algebra.kdifference(X_34,X_8); -(ext53,grp51) := group.new(X_35); -X_21:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,0); -X_20:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,2); -X_22 := algebra.kdifference(X_21,X_20); -X_23 := algebra.kunion(X_22,X_20); -X_19:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c3,1); -X_24 := algebra.kunion(X_23,X_19); -X_25 := algebra.kdifference(X_24,X_8); -(ext56,grp54) := group.derive(ext53,grp51,X_25); -X_12:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,0); -X_10:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,2); -X_14 := algebra.kdifference(X_12,X_10); -X_15 := algebra.kunion(X_14,X_10); -X_9:bat[:oid,:int] := sql.bind(X_2,sys,t2564,c1,1); -X_16 := algebra.kunion(X_15,X_9); -X_17 := algebra.kdifference(X_16,X_8); -(ext59,grp57) := group.done(ext56,grp54,X_17); -X_42 := bat.mirror(ext59); -X_43:bat[:oid,:wrd] := aggr.count(grp57,grp57,X_42); -X_44 := sql.resultSet(1,1,X_43); -sql.rsColumn(X_44,sys.t2564,L4:str,wrd,64,0,X_43); -X_52 := io.stdout(); -sql.exportResult(X_52,X_44); -end s4_1; -#select count(*) from t2564 group by c1, c2, c3; -% sys.t2564 # table_name -% L5 # name -% wrd # type -% 1 # length -[ 1] -[ 1] -[ 1] - -# 19:36:51 -# 19:36:51 Done. -# 19:36:51 - diff --git a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD deleted file mode 100644 --- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.FreeBSD +++ /dev/null @@ -1,73 +0,0 @@
MonetDB: default - Merge with Dec2011 branch.
Changeset: 57fc53f86c16 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=57fc53f86c16 Modified Files: Branch: default Log Message: Merge with Dec2011 branch. diffs (147 lines): diff --git a/sql/test/BugTracker-2012/Tests/All b/sql/test/BugTracker-2012/Tests/All --- a/sql/test/BugTracker-2012/Tests/All +++ b/sql/test/BugTracker-2012/Tests/All @@ -15,3 +15,4 @@ leftjoin-Bug.3041 with_in_derived_table.Bug-3043 boolean_coersion.Bug-3012 correlated_groupby_in_selection.Bug-3011 +multicolumn_join.Bug-2998 diff --git a/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.sql b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.sql @@ -0,0 +1,26 @@ + +CREATE TABLE treeitems ( +tree CHARACTER LARGE OBJECT, +pre BIGINT +); +INSERT INTO treeitems VALUES('documentStructure', 0); +INSERT INTO treeitems VALUES('documentStructure', 1); + + +-- Query 1 +SELECT * +FROM treeitems AS a, + treeitems AS b +WHERE a.pre b.pre +AND a.tree = 'documentStructure' +AND b.tree = 'documentStructure'; + +-- Query 2 +SELECT * +FROM treeitems AS a, + treeitems AS b +WHERE a.pre b.pre +AND a.tree = 'documentStructure' +AND b.tree = a.tree; + +DROP TABLE treeitems; diff --git a/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.err b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.err @@ -0,0 +1,37 @@ +stderr of test 'multicolumn_join.Bug-2998` in directory 'test/BugTracker-2012` itself: + + +# 20:58:24 +# 20:58:24 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=31839 --set monet_prompt= --trace --forcemito --set mal_listing=2 --dbname=mTests_test_BugTracker-2012 --set mal_listing=0 +# 20:58:24 + +# 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 = 5 +# 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 = 31839 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbname = mTests_test_BugTracker-2012 +# cmdline opt mal_listing = 0 + +# 20:58:24 +# 20:58:24 mclient -lsql -ftest -Eutf-8 -i -e --host=niels --port=31839 +# 20:58:24 + + +# 20:58:24 +# 20:58:24 Done. +# 20:58:24 + diff --git a/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.out b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/multicolumn_join.Bug-2998.stable.out @@ -0,0 +1,61 @@ +stdout of test 'multicolumn_join.Bug-2998` in directory 'test/BugTracker-2012` itself: + + +# 20:58:24 +# 20:58:24 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=31839 --set monet_prompt= --trace --forcemito --set mal_listing=2 --dbname=mTests_test_BugTracker-2012 --set mal_listing=0 +# 20:58:24 + +# MonetDB 5 server v11.7.8 +# This is an unreleased version +# Serving database 'mTests_test_BugTracker-2012', using 4 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked +# Found 3.779 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2012 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:31839/ +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 20:58:24 +# 20:58:24 mclient -lsql -ftest -Eutf-8 -i -e --host=niels --port=31839 +# 20:58:24 + +#CREATE TABLE treeitems ( +#tree CHARACTER LARGE OBJECT, +#pre BIGINT +#); +#INSERT INTO treeitems VALUES('documentStructure', 0); +[ 1] +#INSERT INTO treeitems VALUES('documentStructure', 1); +[ 1] +#SELECT * +#FROM treeitems AS a, +# treeitems AS b +#WHERE a.pre b.pre +#AND a.tree = 'documentStructure' +#AND b.tree = 'documentStructure'; +% sys.a, sys.a, sys.b, sys.b # table_name +% tree,pre,tree, pre # name +% clob,bigint, clob, bigint # type +% 17, 1, 17, 1 # length +[ documentStructure, 1, documentStructure,0 ]
MonetDB: Dec2011 - added test for bug 2988
Changeset: 85e9bea7a75f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=85e9bea7a75f Modified Files: sql/server/rel_select.c sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err sql/test/BugTracker-2012/Tests/All sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.out Branch: Dec2011 Log Message: added test for bug 2988 fixed bug in rel_simple_select outer projection handling. diffs (156 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -4359,7 +4359,8 @@ rel_value_exp2(mvc *sql, sql_rel **rel, if (r) { sql_exp *e; - rel_setsubquery(r); + if (ek.card = card_column is_project(r-op) list_length(r-exps) 1) + return sql_error(sql, 02, SELECT: subquery must return only one column); e = rel_lastexp(sql, r); /* group by needed ? */ @@ -4390,16 +4391,19 @@ rel_value_exp2(mvc *sql, sql_rel **rel, l = list_merge(l, r-exps, (fdup)NULL); r-exps = l; (*rel)-exps = NULL; + need_preproj = 1; /* but also project ( project[] [x], [x]) */ } else if (is_project(r-op) l !list_length(l)) { need_preproj = 1; } rel_destroy(*rel); + rel_setsubquery(*rel); *rel = r; if (need_preproj) *rel = rel_project(sql-sa, *rel, pre_proj); } else { + rel_setsubquery(r); *rel = rel_crossproduct(sql-sa, p, r, op_join); *rel = rel_project(sql-sa, *rel, pre_proj); } diff --git a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql --- a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql +++ b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql @@ -1,3 +1,3 @@ create table t1 (id int NOT NULL); -insert into t1 values ((select id, name from tables)); +insert into t1 values ((select id from tables)); drop table t1; diff --git a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err --- a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err +++ b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err @@ -82,8 +82,8 @@ stderr of test 'sql_command_kills_db.SF- # 16:15:09 mclient -lsql -umonetdb -Pmonetdb --host=alf --port=39774 -G # 16:15:09 -MAPI = monetdb@sofia:38256 -QUERY = insert into t1 values ((select id, name from tables)); +MAPI = monetdb@niels:30424 +QUERY = insert into t1 values ((select id from tables)); ERROR = !cardinality violation (311) # 16:15:09 diff --git a/sql/test/BugTracker-2012/Tests/All b/sql/test/BugTracker-2012/Tests/All --- a/sql/test/BugTracker-2012/Tests/All +++ b/sql/test/BugTracker-2012/Tests/All @@ -16,3 +16,4 @@ with_in_derived_table.Bug-3043 boolean_coersion.Bug-3012 correlated_groupby_in_selection.Bug-3011 multicolumn_join.Bug-2998 +simple_select.Bug-2988 diff --git a/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql @@ -0,0 +1,2 @@ +select 1, (select 1) as x; +select 1, (select 1 as y, 2 as z) as x; diff --git a/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err @@ -0,0 +1,40 @@ +stderr of test 'simple_select.Bug-2988` in directory 'test/BugTracker-2012` itself: + + +# 21:37:59 +# 21:37:59 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=36012 --set monet_prompt= --trace --forcemito --set
MonetDB: default - Merge with Dec2011 branch.
Changeset: e32d6cef1924 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e32d6cef1924 Modified Files: sql/server/rel_select.c Branch: default Log Message: Merge with Dec2011 branch. diffs (156 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -4340,7 +4340,8 @@ rel_value_exp2(mvc *sql, sql_rel **rel, if (r) { sql_exp *e; - rel_setsubquery(r); + if (ek.card = card_column is_project(r-op) list_length(r-exps) 1) + return sql_error(sql, 02, SELECT: subquery must return only one column); e = rel_lastexp(sql, r); /* group by needed ? */ @@ -4378,16 +4379,19 @@ rel_value_exp2(mvc *sql, sql_rel **rel, l = list_merge(l, r-exps, (fdup)NULL); r-exps = l; (*rel)-exps = NULL; + need_preproj = 1; /* but also project ( project[] [x], [x]) */ } else if (is_project(r-op) l !list_length(l)) { need_preproj = 1; } rel_destroy(*rel); + rel_setsubquery(*rel); *rel = r; if (need_preproj) *rel = rel_project(sql-sa, *rel, pre_proj); } else { + rel_setsubquery(r); *rel = rel_crossproduct(sql-sa, p, r, op_join); *rel = rel_project(sql-sa, *rel, pre_proj); } diff --git a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql --- a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql +++ b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql @@ -1,3 +1,3 @@ create table t1 (id int NOT NULL); -insert into t1 values ((select id, name from tables)); +insert into t1 values ((select id from tables)); drop table t1; diff --git a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err --- a/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err +++ b/sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err @@ -82,8 +82,8 @@ stderr of test 'sql_command_kills_db.SF- # 16:15:09 mclient -lsql -umonetdb -Pmonetdb --host=alf --port=39774 -G # 16:15:09 -MAPI = monetdb@sofia:38256 -QUERY = insert into t1 values ((select id, name from tables)); +MAPI = monetdb@niels:30424 +QUERY = insert into t1 values ((select id from tables)); ERROR = !cardinality violation (311) # 16:15:09 diff --git a/sql/test/BugTracker-2012/Tests/All b/sql/test/BugTracker-2012/Tests/All --- a/sql/test/BugTracker-2012/Tests/All +++ b/sql/test/BugTracker-2012/Tests/All @@ -16,3 +16,4 @@ with_in_derived_table.Bug-3043 boolean_coersion.Bug-3012 correlated_groupby_in_selection.Bug-3011 multicolumn_join.Bug-2998 +simple_select.Bug-2988 diff --git a/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.sql @@ -0,0 +1,2 @@ +select 1, (select 1) as x; +select 1, (select 1 as y, 2 as z) as x; diff --git a/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.err @@ -0,0 +1,40 @@ +stderr of test 'simple_select.Bug-2988` in directory 'test/BugTracker-2012` itself: + + +# 21:37:59 +# 21:37:59 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=36012 --set monet_prompt= --trace --forcemito --set mal_listing=2 --dbname=mTests_test_BugTracker-2012 --set mal_listing=0 +# 21:37:59 + +# 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 = 5 +# builtin opt mapi_open = false +# builtin opt