Changeset: 5348db884213 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5348db884213
Added Files:
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128.src
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit.src
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128.src
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.src
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128.src
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit.src
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128.src
        sql/test/emptydb-upgrade/Tests/check.stable.out.src
Removed Files:
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
        sql/test/emptydb/updatetests
Modified Files:
        NT/rules.msc
        monetdb5/optimizer/Tests/DCexample2.malC
        monetdb5/optimizer/Tests/DCexample2.stable.out
        monetdb5/optimizer/Tests/dataflow3.malC
        monetdb5/optimizer/Tests/dataflow3.stable.out
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_garbageCollector.c
        sql/backends/monet5/UDF/pyapi/emit.c
        sql/backends/monet5/sql_execute.c
        sql/test/Tests/systemfunctions.stable.out
        sql/test/emptydb/Tests/check.stable.out
        sql/test/mapi/Tests/perl_dbi.SQL.bat
        sql/test/mapi/Tests/python3_dbapi.SQL.bat
        sql/test/mapi/Tests/python3_dec38.SQL.bat
        sql/test/mapi/Tests/python3_int128.SQL.bat
        testing/Mfilter.py
        testing/Mtest.py.in
        tools/mserver/shutdowntest.c
Branch: default
Log Message:

Merge with Jul2017 branch.


diffs (truncated from 50798 to 300 lines):

diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -326,6 +326,11 @@ create_winconfig_conds_new_py:
 !ELSE
        $(ECHO) HAVE_LIBPY_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
 !ENDIF
+!IFDEF HAVE_LIBPY3
+       $(ECHO) HAVE_LIBPY3_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ELSE
+       $(ECHO) HAVE_LIBPY3_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ENDIF
 !IFDEF HAVE_LIBR
        $(ECHO) HAVE_LIBR_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
 !ELSE
diff --git a/monetdb5/optimizer/Tests/DCexample2.malC 
b/monetdb5/optimizer/Tests/DCexample2.malC
--- a/monetdb5/optimizer/Tests/DCexample2.malC
+++ b/monetdb5/optimizer/Tests/DCexample2.malC
@@ -1,9 +1,9 @@
 function foo();
 b:= bat.new(:int);
-bat.append(b,2);
-bat.append(b,5);
-bat.append(b,3);
-b:= algebra.sort(b,false,false);
+b1:= bat.append(b,2);
+b2:= bat.append(b1,5);
+b3:= bat.append(b2,3);
+b5:= algebra.sort(b3,false,false);
 end;
 
 #should throw out the last statement
diff --git a/monetdb5/optimizer/Tests/DCexample2.stable.out 
b/monetdb5/optimizer/Tests/DCexample2.stable.out
--- a/monetdb5/optimizer/Tests/DCexample2.stable.out
+++ b/monetdb5/optimizer/Tests/DCexample2.stable.out
@@ -30,19 +30,11 @@ Ready.
 # 06:41:04 >  
 
 function user.foo():void;                      #[0] (0)  0 
-    b:bat[:int] := bat.new(:int);              #[1] (0) CMDBATnew 1 <- 2 
-    bat.append(b:bat[:int], 2:int);            #[2] (0) BKCappend_val_wrap 3 
<- 1 4 
-    bat.append(b:bat[:int], 5:int);            #[3] (0) BKCappend_val_wrap 5 
<- 1 6 
-    bat.append(b:bat[:int], 3:int);            #[4] (0) BKCappend_val_wrap 7 
<- 1 8 
-    b:bat[:int] := algebra.sort(b:bat[:int], false:bit, false:bit);    #[5] 
(0) ALGsort11 1 <- 1 9 10 
-end user.foo;                                  #[6] (0)  
+end user.foo;                                  #[1] (0)  
+#deadcode             actions= 5 time=8 usec 
 function user.foo():void;                      #[0] (0)  0 
-    b:bat[:int] := bat.new(:int);              #[1] (0) CMDBATnew 1 <- 2 
-    bat.append(b:bat[:int], 2:int);            #[2] (0) BKCappend_val_wrap 3 
<- 1 4 
-    bat.append(b:bat[:int], 5:int);            #[3] (0) BKCappend_val_wrap 5 
<- 1 6 
-    bat.append(b:bat[:int], 3:int);            #[4] (0) BKCappend_val_wrap 7 
<- 1 8 
-    b:bat[:int] := algebra.sort(b:bat[:int], false:bit, false:bit);    #[5] 
(0) ALGsort11 1 <- 1 9 10 
-end user.foo;                                  #[6] (0)  
+end user.foo;                                  #[1] (0)  
+#deadcode             actions= 5 time=8 usec 
 
 # 06:41:05 >  
 # 06:41:05 >  "Done."
diff --git a/monetdb5/optimizer/Tests/dataflow3.malC 
b/monetdb5/optimizer/Tests/dataflow3.malC
--- a/monetdb5/optimizer/Tests/dataflow3.malC
+++ b/monetdb5/optimizer/Tests/dataflow3.malC
@@ -37,14 +37,14 @@ function user.s1_0():void;
     _507 := remote.get(_84,_87);
     remote.disconnect(_84);
 
-    bat.append(_17,_54);
-    bat.append(_17,_55);
-    bat.append(_17,_56);
-    bat.append(_17,_57);
-    io.print(_17);
+    _98 := bat.append(_17,_54);
+    _97 := bat.append(_98,_55);
+    _96 := bat.append(_97,_56);
+    _95 := bat.append(_96,_57);
+    io.print(_95);
 
 #COUNT/SUM
-    _19 := aggr.sum(_17);
+    _19 := aggr.sum(_95);
        io.print(_19);
 end s1_0;
     optimizer.mergetable("user","s1_0");
diff --git a/monetdb5/optimizer/Tests/dataflow3.stable.out 
b/monetdb5/optimizer/Tests/dataflow3.stable.out
--- a/monetdb5/optimizer/Tests/dataflow3.stable.out
+++ b/monetdb5/optimizer/Tests/dataflow3.stable.out
@@ -57,12 +57,12 @@ exit X_52;
     X88 := remote.exec(X84, "user", "s1_0map");
     X507 := remote.get(X84, X87);
     remote.disconnect(X84);
-    bat.append(X17, X54);
-    bat.append(X17, X55);
-    bat.append(X17, X56);
-    bat.append(X17, X57);
-    io.print(X17);
-    X19 := aggr.sum(X17);
+    X98 := bat.append(X17, X54);
+    X97 := bat.append(X98, X55);
+    X96 := bat.append(X97, X56);
+    X95 := bat.append(X96, X57);
+    io.print(X95);
+    X19 := aggr.sum(X95);
     io.print(X19);
 end user.s1_0;
 
diff --git a/monetdb5/optimizer/opt_deadcode.c 
b/monetdb5/optimizer/opt_deadcode.c
--- a/monetdb5/optimizer/opt_deadcode.c
+++ b/monetdb5/optimizer/opt_deadcode.c
@@ -58,6 +58,10 @@ OPTdeadcodeImplementation(Client cntxt, 
                        varused[getArg(p,0)]++; // force keeping 
                        continue;
                }
+               if ( getModuleId(p) == batRef && isUpdateInstruction(p)){
+                       /* bat.append and friends are intermediates that need 
not be retained 
+                        * unless they are used */
+               } else
                if (hasSideEffects(mb, p, FALSE) || !isLinearFlow(p) || 
                                (p->retc == 1 && mb->unsafeProp) || p->barrier 
/* ==side-effect */){
                        varused[getArg(p,0)]++; // force keeping it
diff --git a/monetdb5/optimizer/opt_garbageCollector.c 
b/monetdb5/optimizer/opt_garbageCollector.c
--- a/monetdb5/optimizer/opt_garbageCollector.c
+++ b/monetdb5/optimizer/opt_garbageCollector.c
@@ -161,9 +161,11 @@ OPTgarbageCollectorImplementation(Client
        /* leave a consistent scope admin behind */
        setVariableScope(mb);
        /* Defense line against incorrect plans */
-       chkTypes(cntxt->usermodule, mb, FALSE);
-       chkFlow(mb);
-       chkDeclarations(mb);
+       if( actions > 0){
+               chkTypes(cntxt->usermodule, mb, FALSE);
+               chkFlow(mb);
+               chkDeclarations(mb);
+       }
        /* keep all actions taken as a post block comment */
        usec = GDKusec()- usec;
        snprintf(buf,256,"%-20s actions=%2d time=" LLFMT " 
usec","garbagecollector",actions, usec);
diff --git a/sql/backends/monet5/UDF/pyapi/emit.c 
b/sql/backends/monet5/UDF/pyapi/emit.c
--- a/sql/backends/monet5/UDF/pyapi/emit.c
+++ b/sql/backends/monet5/UDF/pyapi/emit.c
@@ -66,9 +66,10 @@ PyObject *PyEmit_Emit(PyEmitObject *self
                        if (el_count < 0) {
                                el_count = this_size;
                        } else if (el_count != this_size) {
+                               /* don't use SZFMT since format given to Python 
*/
                                PyErr_Format(
-                                       PyExc_TypeError, "Element %s has size " 
SZFMT ", but expected an "
-                                                                        
"element with size " SZFMT,
+                                       PyExc_TypeError, "Element %s has size 
%zu, but expected an "
+                                                                        
"element with size %zu",
                                        PyString_AsString(PyObject_Str(key)), 
this_size, el_count);
                                Py_DECREF(items);
                                return NULL;
diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -419,6 +419,7 @@ SQLstatementIntern(Client c, str *expr, 
        int oldvtop, oldstop = 1;
        buffer *b;
        char *n;
+       bstream *bs;
        stream *buf;
        str msg = MAL_SUCCEED;
        backend *be, *sql = (backend *) c->sqlcontext;
@@ -477,15 +478,26 @@ SQLstatementIntern(Client c, str *expr, 
        if( b == NULL)
                throw(SQL,"sql.statement", SQLSTATE(HY001) MAL_MALLOC_FAIL);
        n = GDKmalloc(len + 1 + 1);
-       if( n == NULL)
+       if( n == NULL) {
+               GDKfree(b);
                throw(SQL,"sql.statement", SQLSTATE(HY001) MAL_MALLOC_FAIL);
+       }
        strncpy(n, *expr, len);
        n[len] = '\n';
        n[len + 1] = 0;
        len++;
        buffer_init(b, n, len);
        buf = buffer_rastream(b, "sqlstatement");
-       scanner_init(&m->scanner, bstream_create(buf, b->len), NULL);
+       if(buf == NULL) {
+               buffer_destroy(b);//n and b will be freed by the buffer
+               throw(SQL,"sql.statement",MAL_MALLOC_FAIL);
+       }
+       bs = bstream_create(buf, b->len);
+       if(bs == NULL) {
+               buffer_destroy(b);//n and b will be freed by the buffer
+               throw(SQL,"sql.statement",MAL_MALLOC_FAIL);
+       }
+       scanner_init(&m->scanner, bs, NULL);
        m->scanner.mode = LINE_N;
        bstream_next(m->scanner.rs);
 
diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -3426,21 +3426,39 @@ Ready.
 [ "sys",       "sql_mul",      0,      "smallint",     "*"     ]
 [ "sys",       "sql_mul",      1,      "smallint",     ""      ]
 [ "sys",       "sql_mul",      2,      "tinyint",      ""      ]
+[ "sys",       "sql_mul",      0,      "smallint",     "*"     ]
+[ "sys",       "sql_mul",      1,      "tinyint",      ""      ]
+[ "sys",       "sql_mul",      2,      "smallint",     ""      ]
 [ "sys",       "sql_mul",      0,      "int",  "*"     ]
 [ "sys",       "sql_mul",      1,      "int",  ""      ]
 [ "sys",       "sql_mul",      2,      "tinyint",      ""      ]
 [ "sys",       "sql_mul",      0,      "int",  "*"     ]
+[ "sys",       "sql_mul",      1,      "tinyint",      ""      ]
+[ "sys",       "sql_mul",      2,      "int",  ""      ]
+[ "sys",       "sql_mul",      0,      "int",  "*"     ]
 [ "sys",       "sql_mul",      1,      "int",  ""      ]
 [ "sys",       "sql_mul",      2,      "smallint",     ""      ]
+[ "sys",       "sql_mul",      0,      "int",  "*"     ]
+[ "sys",       "sql_mul",      1,      "smallint",     ""      ]
+[ "sys",       "sql_mul",      2,      "int",  ""      ]
 [ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
 [ "sys",       "sql_mul",      1,      "bigint",       ""      ]
 [ "sys",       "sql_mul",      2,      "tinyint",      ""      ]
 [ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
+[ "sys",       "sql_mul",      1,      "tinyint",      ""      ]
+[ "sys",       "sql_mul",      2,      "bigint",       ""      ]
+[ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
 [ "sys",       "sql_mul",      1,      "bigint",       ""      ]
 [ "sys",       "sql_mul",      2,      "smallint",     ""      ]
 [ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
+[ "sys",       "sql_mul",      1,      "smallint",     ""      ]
+[ "sys",       "sql_mul",      2,      "bigint",       ""      ]
+[ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
 [ "sys",       "sql_mul",      1,      "bigint",       ""      ]
 [ "sys",       "sql_mul",      2,      "int",  ""      ]
+[ "sys",       "sql_mul",      0,      "bigint",       "*"     ]
+[ "sys",       "sql_mul",      1,      "int",  ""      ]
+[ "sys",       "sql_mul",      2,      "bigint",       ""      ]
 [ "sys",       "sql_mul",      0,      "decimal",      "*"     ]
 [ "sys",       "sql_mul",      1,      "decimal",      ""      ]
 [ "sys",       "sql_mul",      2,      "decimal",      ""      ]
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
deleted file mode 100644
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
+++ /dev/null
@@ -1,6487 +0,0 @@
-stdout of test 'check` in directory 'sql/test/emptydb-upgrade-chain-hge` 
itself:
-
-
-# 16:23:48 >  
-# 16:23:48 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32016" "--set" 
"mapi_usock=/var/tmp/mtest-13569/.s.monetdb.32016" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb-upgrade-chain-hge"
 "--set" "mal_listing=0" "--set" "embedded_r=yes"
-# 16:23:48 >  
-
-# MonetDB 5 server v11.21.16 (hg id: c20b591c1c70+)
-# This is an unreleased version
-# Serving database 'mTests_sql_test_emptydb-upgrade-chain-hge', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit 
integers dynamically linked
-# Found 15.589 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://madrid.da.cwi.nl:32016/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-13569/.s.monetdb.32016
-# MonetDB/GIS module loaded
-# Start processing logs sql/sql_logs version 52200
-# Start reading the write-ahead log 'sql_logs/sql/log.4'
-# Finished reading the write-ahead log 'sql_logs/sql/log.4'
-# Finished processing logs sql/sql_logs
-# MonetDB/SQL module loaded
-# MonetDB/R   module loaded
-
-Ready.
-
-# 10:17:18 >  
-# 10:17:18 >  "/usr/bin/python2" "check.SQL.py" "check"
-# 10:17:18 >  
-
-\dn
-\dt
-\dv
-\ds
-\df
-\dSn
-\dSt
-\dSv
-\dSs
-\dSf
-\dn bam
-\dn json
-\dn profiler
-\dn sys
-\dn tmp
-\dSt bam.export
-\dSt bam.files
-\dSt bam.pg
-\dSt bam.rg
-\dSt bam.sq
-\dSt sys._columns
-\dSt sys._tables
-\dSt sys.args
-\dSt sys.auths
-\dSt sys.db_user_info
-\dSt sys.dependencies
-\dSt sys.dependency_types
-\dSt sys.function_languages
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to