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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list