Changeset: 636ea86fee63 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=636ea86fee63
Added Files:
sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out.32bit
Modified Files:
clients/R/MonetDB.R/R/dbi.R
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
testing/Mtest.py.in
Branch: default
Log Message:
Merge with Jun2016 branch.
diffs (207 lines):
diff --git a/clients/R/MonetDB.R/R/dbi.R b/clients/R/MonetDB.R/R/dbi.R
--- a/clients/R/MonetDB.R/R/dbi.R
+++ b/clients/R/MonetDB.R/R/dbi.R
@@ -524,7 +524,7 @@ setMethod("dbWriteTable", signature(conn
if (csvdump) {
tmp <- tempfile(fileext = ".csv")
write.table(value, tmp, sep = ",", quote = TRUE, row.names = FALSE,
col.names = FALSE, na="", fileEncoding = "UTF-8")
- dbSendQuery(conn, paste0("COPY INTO ", qname, " FROM '", tmp, "' USING
DELIMITERS ',','\\n','\"' NULL AS ''"))
+ dbSendQuery(conn, paste0("COPY INTO ", qname, " FROM '",
encodeString(tmp), "' USING DELIMITERS ',','\\n','\"' NULL AS ''"))
file.remove(tmp)
} else {
vins <- paste("(", paste(rep("?", length(value)), collapse=', '), ")",
sep='')
@@ -924,7 +924,7 @@ monet.read.csv <- monetdb.read.csv <- fu
delimspec <- paste0("USING DELIMITERS '", delim, "','", newline, "','",
quote, "'")
for(i in seq_along(files)) {
- thefile <- normalizePath(files[i])
+ thefile <- encodeString(normalizePath(files[i]))
dbSendUpdate(conn, paste("COPY", if(header) "OFFSET 2", "INTO",
tablename, "FROM", paste("'", thefile, "'", sep=""), delimspec, "NULL
as", paste("'",
na.strings[1], "'", sep=""), if(locked) "LOCKED", if(best.effort) "BEST
EFFORT"))
diff --git
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
---
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
+++
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
@@ -56,7 +56,7 @@ Ready.
% def # name
% clob # type
% 449 # length
-[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();"
]
+[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();"
]
#explain copy into ttt from 'a:\tmp/xyz';
% .explain # table_name
% mal # name
@@ -88,7 +88,7 @@ end user.s4_1;
% def # name
% clob # type
% 472 # length
-[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();"
]
+[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();"
]
#explain copy into ttt from 'Z:/tmp/xyz';
% .explain # table_name
% mal # name
diff --git a/sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
b/sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
--- a/sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
+++ b/sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
@@ -19,8 +19,11 @@ shutil.copyfile(os.path.join(src,'n_regi
clt.stdin.write('start transaction;');
clt.stdin.write('create table bug (n_nationkey INTEGER,n_regionkey
INTEGER);\n')
-clt.stdin.write('copy binary into bug from \'%s/n_nationkey.sorted\',
\'%s/n_regionkey.sorted\';\n'% (dst,dst))
+clt.stdin.write('copy binary into bug from \'%s\', \'%s\';\n' %
+ (os.path.join(dst, 'n_nationkey.sorted').replace('\\', '\\\\'),
+ os.path.join(dst, 'n_regionkey.sorted').replace('\\',
'\\\\')))
out, err = clt.communicate()
-sys.stdout.write(out.replace(os.environ['TSTTRGBASE'],'${TSTTRGBASE}').replace('\\','/'))
-sys.stderr.write(err.replace(os.environ['TSTTRGBASE'],'${TSTTRGBASE}').replace('\\','/'))
+# normalize output
+sys.stdout.write(out.replace(os.environ['TSTTRGBASE'].replace('\\',
'\\\\'),'${TSTTRGBASE}').replace('\\\\','/'))
+sys.stderr.write(err.replace(os.environ['TSTTRGBASE'].replace('\\',
'\\\\'),'${TSTTRGBASE}').replace('\\\\','/'))
diff --git
a/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
b/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
---
a/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
+++
b/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
@@ -37,15 +37,14 @@ Ready.
% clob # type
% 107 # length
function user.s2_1(A0:int):void;
- X_21:void := querylog.define("explain select count(*) from tmp where i =
20160222;","default_pipe",11);
+ X_20:void := querylog.define("explain select count(*) from tmp where i =
20160222;","default_pipe",10);
X_2 := sql.mvc();
X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp","i",0);
- X_9 := X_6;
X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp");
- X_10 := algebra.subselect(X_9,X_3,A0,A0,true,false,false);
- X_13 := algebra.leftfetchjoin(X_10,X_9);
- X_14 := aggr.count(X_13);
- sql.resultSet("sys.L1","L1","wrd",32,0,7,X_14);
+ X_9 := algebra.subselect(X_6,X_3,A0,A0,true,false,false);
+ X_12 := algebra.leftfetchjoin(X_9,X_6);
+ X_13 := aggr.count(X_12);
+ sql.resultSet("sys.L1","L1","wrd",32,0,7,X_13);
end user.s2_1;
# optimizer.mitosis()
# optimizer.dataflow()
@@ -55,16 +54,15 @@ end user.s2_1;
% clob # type
% 113 # length
function user.s3_1(A0:str):void;
- X_23:void := querylog.define("explain select count(*) from tmp where i =
\\'20160222\\';","default_pipe",12);
+ X_22:void := querylog.define("explain select count(*) from tmp where i =
\\'20160222\\';","default_pipe",11);
X_2 := sql.mvc();
X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp","i",0);
- X_9 := X_6;
X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp");
- X_10 := calc.int(A0,8,0);
- X_12 := algebra.subselect(X_9,X_3,X_10,X_10,true,false,false);
- X_15 := algebra.leftfetchjoin(X_12,X_9);
- X_16 := aggr.count(X_15);
- sql.resultSet("sys.L1","L1","wrd",32,0,7,X_16);
+ X_9 := calc.int(A0,8,0);
+ X_11 := algebra.subselect(X_6,X_3,X_9,X_9,true,false,false);
+ X_14 := algebra.leftfetchjoin(X_11,X_6);
+ X_15 := aggr.count(X_14);
+ sql.resultSet("sys.L1","L1","wrd",32,0,7,X_15);
end user.s3_1;
# optimizer.mitosis()
# optimizer.dataflow()
@@ -74,16 +72,15 @@ end user.s3_1;
% clob # type
% 108 # length
function user.s4_1(A0:lng):void;
- X_23:void := querylog.define("explain select count(*) from tmp where i =
201602221;","default_pipe",12);
+ X_22:void := querylog.define("explain select count(*) from tmp where i =
201602221;","default_pipe",11);
X_2 := sql.mvc();
X_6:bat[:oid,:int] := sql.bind(X_2,"sys","tmp","i",0);
- X_9 := X_6;
- X_10:bat[:oid,:lng] := batcalc.lng(0,X_9,10,0);
+ X_9:bat[:oid,:lng] := batcalc.lng(0,X_6,10,0);
X_3:bat[:oid,:oid] := sql.tid(X_2,"sys","tmp");
- X_12 := algebra.subselect(X_10,X_3,A0,A0,true,false,false);
- X_15 := algebra.leftfetchjoin(X_12,X_9);
- X_16 := aggr.count(X_15);
- sql.resultSet("sys.L1","L1","wrd",32,0,7,X_16);
+ X_11 := algebra.subselect(X_9,X_3,A0,A0,true,false,false);
+ X_14 := algebra.leftfetchjoin(X_11,X_6);
+ X_15 := aggr.count(X_14);
+ sql.resultSet("sys.L1","L1","wrd",32,0,7,X_15);
end user.s4_1;
# optimizer.mitosis()
# optimizer.dataflow()
diff --git
a/sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out.32bit
b/sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out.32bit
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out.32bit
@@ -0,0 +1,45 @@
+stdout of test 'rename_exps.Bug-3974` in directory 'sql/test/BugTracker-2016`
itself:
+
+
+# 12:27:17 >
+# 12:27:17 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=39847" "--set"
"mapi_usock=/var/tmp/mtest-21445/.s.monetdb.39847" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2016"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 12:27:17 >
+
+# MonetDB 5 server v11.21.18
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2016', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit
integers dynamically linked
+# Found 7.332 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://localhost.nes.nl:39847/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-21445/.s.monetdb.39847
+# MonetDB/GIS module loaded
+# Start processing logs sql/sql_logs version 52200
+# Start reading the write-ahead log 'sql_logs/sql/log.11'
+# Finished reading the write-ahead log 'sql_logs/sql/log.11'
+# Finished processing logs sql/sql_logs
+# MonetDB/SQL module loaded
+# MonetDB/R module loaded
+
+Ready.
+
+# 12:27:17 >
+# 12:27:17 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-21445" "--port=39847"
+# 12:27:17 >
+
+#create table foo (a int, b int);
+#prepare select count(b) from (select a,b from foo union all select null,null
from foo) t;
+#prepare select count(b) from (select a,b from foo union all select null,null
from foo) t;
+% .prepare, .prepare, .prepare, .prepare, .prepare,
.prepare # table_name
+% type, digits, scale, schema, table, column # name
+% varchar, int, int, str, str, str # type
+% 3, 2, 1, 0, 2, 2 # length
+[ "wrd", 32, 0, "", "L3", "L3" ]
+#drop table foo;
+
+# 12:27:17 >
+# 12:27:17 > "Done."
+# 12:27:17 >
+
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -600,11 +600,21 @@ def startswithpath(str,pre) :
if sys.version_info[0] == 2:
import urllib
path = urllib.url2pathname
- url = urllib.pathname2url
+ def url(str) :
+ url = urllib.pathname2url(str)
+ # on Windows, C:\tmp\foo becomes ///C:/tmp/foo, turn into /C:/tmp/foo
+ if url.startswith('///'):
+ url = url[2:]
+ return url
elif sys.version_info[0] == 3:
import urllib.request
path = urllib.request.url2pathname
- url = urllib.request.pathname2url
+ def url(str) :
+ url = urllib.request.pathname2url(str)
+ # on Windows, C:\tmp\foo becomes ///C:/tmp/foo, turn into /C:/tmp/foo
+ if url.startswith('///'):
+ url = url[2:]
+ return url
def try_open(path, mode) :
try:
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list