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