MonetDB: default - correctly set the new optimizer

2012-02-26 Thread Niels Nes
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

2012-02-26 Thread Niels Nes
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 ...

2012-02-26 Thread Niels Nes
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.

2012-02-26 Thread Stefan Manegold
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:

2012-02-26 Thread Stefan Manegold
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.

2012-02-26 Thread Stefan Manegold
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...

2012-02-26 Thread Niels Nes
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

2012-02-26 Thread Niels Nes
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...

2012-02-26 Thread Fabian Groffen
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

2012-02-26 Thread Niels Nes
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...

2012-02-26 Thread Niels Nes
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

2012-02-26 Thread Niels Nes
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

2012-02-26 Thread Niels Nes
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.

2012-02-26 Thread Stefan Manegold
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

2012-02-26 Thread Niels Nes
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.

2012-02-26 Thread Stefan Manegold
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