Changeset: 046b4c1a659e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=046b4c1a659e Added Files: sql/test/Dump/Tests/clean-again.reqtests sql/test/Dump/Tests/clean-again.sql.src sql/test/Dump/Tests/clean-again.stable.err sql/test/Dump/Tests/clean-again.stable.out sql/test/Dump/Tests/dump-again.SQL.py sql/test/Dump/Tests/dump-again.reqtests sql/test/Dump/Tests/dump-again.stable.err sql/test/Dump/Tests/dump-again.stable.out sql/test/Dump/Tests/reload-again.SQL.py sql/test/Dump/Tests/reload-again.reqtests sql/test/Dump/Tests/reload-again.stable.err sql/test/Dump/Tests/reload-again.stable.out sql/test/Dump/Tests/test-again.reqtests sql/test/Dump/Tests/test-again.sql.src sql/test/Dump/Tests/test-again.stable.err.src sql/test/Dump/Tests/test-again.stable.out.src Modified Files: clients/mapiclient/dump.c clients/odbc/driver/Makefile.ag clients/odbc/driver/SQLExecute.c configure.ag sql/test/Dump/Tests/All Branch: default Log Message:
Merge with Mar2018 branch. diffs (truncated from 565 to 300 lines): diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -1268,7 +1268,36 @@ dump_table_data(Mapi mid, const char *sc s = mapi_fetch_field(hdl, i); if (s == NULL) mnstr_printf(toConsole, "NULL"); - else if (string[i]) { + else if (useInserts) { + const char *tp = mapi_get_type(hdl, i); + if (strcmp(tp, "sec_interval") == 0) { + const char *p = strchr(s, '.'); + if (p == NULL) + p = s + strlen(s); + mnstr_printf(toConsole, "INTERVAL '%.*s' SECOND", (int) (p - s), s); + } else if (strcmp(tp, "month_interval") == 0) + mnstr_printf(toConsole, "INTERVAL '%s' MONTH", s); + else if (strcmp(tp, "timestamptz") == 0) + mnstr_printf(toConsole, "TIMESTAMP WITH TIME ZONE '%s'", s); + else if (strcmp(tp, "timestamp") == 0) + mnstr_printf(toConsole, "TIMESTAMP '%s'", s); + else if (strcmp(tp, "timetz") == 0) + mnstr_printf(toConsole, "TIME WITH TIME ZONE '%s'", s); + else if (strcmp(tp, "time") == 0) + mnstr_printf(toConsole, "TIME '%s'", s); + else if (strcmp(tp, "date") == 0) + mnstr_printf(toConsole, "DATE '%s'", s); + else if (strcmp(tp, "blob") == 0) + mnstr_printf(toConsole, "BINARY LARGE OBJECT '%s'", s); + else if (strcmp(tp, "inet") == 0 || + strcmp(tp, "json") == 0 || + strcmp(tp, "url") == 0 || + strcmp(tp, "uuid") == 0 || + string[i]) + quoted_print(toConsole, s, true); + else + mnstr_printf(toConsole, "%s", s); + } else if (string[i]) { /* write double or single-quoted string with certain characters escaped */ diff --git a/clients/odbc/driver/Makefile.ag b/clients/odbc/driver/Makefile.ag --- a/clients/odbc/driver/Makefile.ag +++ b/clients/odbc/driver/Makefile.ag @@ -107,7 +107,7 @@ lib_MonetODBC = { SQLTransact.c \ driver.rc \ ODBC.syms - LIBS = ../../mapilib/libmapi $(LTLIBICONV) $(ODBCINST_LIBS) $(SOCKET_LIBS) + LIBS = ../../mapilib/libmapi ../../../common/stream/libstream $(LTLIBICONV) $(ODBCINST_LIBS) $(SOCKET_LIBS) $(openssl_LIBS) } EXTRA_DIST = Copyright diff --git a/clients/odbc/driver/SQLExecute.c b/clients/odbc/driver/SQLExecute.c --- a/clients/odbc/driver/SQLExecute.c +++ b/clients/odbc/driver/SQLExecute.c @@ -43,7 +43,9 @@ static struct msql_types { {"decimal", SQL_DECIMAL}, {"double", SQL_DOUBLE}, {"hugeint", SQL_HUGEINT}, + /* {"inet", SQL_WCHAR}, */ {"int", SQL_INTEGER}, + /* {"json", SQL_WCHAR}, */ {"month_interval", SQL_INTERVAL_MONTH}, {"oid", SQL_BIGINT}, {"real", SQL_REAL}, @@ -55,7 +57,7 @@ static struct msql_types { {"timestamp", SQL_TYPE_TIMESTAMP}, {"timestamptz", SQL_TYPE_TIMESTAMP}, {"tinyint", SQL_TINYINT}, -/* {"ubyte", SQL_TINYINT}, */ + /* {"url", SQL_WCHAR}, */ {"uuid", SQL_GUID}, {"varchar", SQL_WVARCHAR}, {0, 0}, /* sentinel */ diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -3084,7 +3084,7 @@ for comp in \ 'zlib ' \ ; do AS_VAR_COPY([org], [org_have_$comp]) - AS_VAR_COPY([have], [org_have_$comp]) + AS_VAR_COPY([have], [have_$comp]) AS_VAR_COPY([why_not], [why_not_$comp]) AS_CASE([$why_not-$have-$org], diff --git a/sql/test/Dump/Tests/All b/sql/test/Dump/Tests/All --- a/sql/test/Dump/Tests/All +++ b/sql/test/Dump/Tests/All @@ -1,6 +1,10 @@ dump-empty load dump +dump-again clean reload test +clean-again +reload-again +test-again diff --git a/sql/test/Dump/Tests/clean-again.reqtests b/sql/test/Dump/Tests/clean-again.reqtests new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/clean-again.reqtests @@ -0,0 +1,1 @@ +reload diff --git a/sql/test/Dump/Tests/clean-again.sql.src b/sql/test/Dump/Tests/clean-again.sql.src new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/clean-again.sql.src @@ -0,0 +1,1 @@ +clean.sql diff --git a/sql/test/Dump/Tests/clean-again.stable.err b/sql/test/Dump/Tests/clean-again.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/clean-again.stable.err @@ -0,0 +1,35 @@ +stderr of test 'clean-again` in directory 'sql/test/Dump` itself: + + +# 22:19:54 > +# 22:19:54 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=37984" "--set" "mapi_usock=/var/tmp/mtest-25752/.s.monetdb.37984" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump" "--set" "embedded_c=true" +# 22:19:54 > + +# builtin opt gdk_dbpath = /home/sjoerd/@Monet-stable/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# 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 mapi_open = true +# cmdline opt mapi_port = 37984 +# cmdline opt mapi_usock = /var/tmp/mtest-25752/.s.monetdb.37984 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump +# cmdline opt embedded_c = true +# cmdline opt gdk_debug = 553648138 + +# 22:19:54 > +# 22:19:54 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-25752" "--port=37984" +# 22:19:54 > + + +# 22:19:54 > +# 22:19:54 > "Done." +# 22:19:54 > + diff --git a/sql/test/Dump/Tests/clean-again.stable.out b/sql/test/Dump/Tests/clean-again.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/clean-again.stable.out @@ -0,0 +1,36 @@ +stdout of test 'clean-again` in directory 'sql/test/Dump` itself: + + +# 22:19:54 > +# 22:19:54 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=37984" "--set" "mapi_usock=/var/tmp/mtest-25752/.s.monetdb.37984" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump" "--set" "embedded_c=true" +# 22:19:54 > + +# MonetDB 5 server v11.29.4 (hg id: c717aa6c1f76) +# This is an unreleased version +# Serving database 'mTests_sql_test_Dump', using 4 threads +# Compiled for x86_64-pc-linux-gnu/64bit with 128bit integers +# Found 15.513 GiB available main-memory. +# Copyright (c) 1993 - July 2008 CWI. +# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved +# Visit https://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://meeuw.mullender.nl:37984/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-25752/.s.monetdb.37984 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 22:19:54 > +# 22:19:54 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-25752" "--port=37984" +# 22:19:54 > + +#drop table "test"; +#drop sequence "test_seq"; +#drop table "typestest"; +#drop table keytest2; +#drop table keytest1; + +# 22:19:54 > +# 22:19:54 > "Done." +# 22:19:54 > + diff --git a/sql/test/Dump/Tests/dump-again.SQL.py b/sql/test/Dump/Tests/dump-again.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/dump-again.SQL.py @@ -0,0 +1,15 @@ +import os, sys +try: + from MonetDBtesting import process +except ImportError: + import process + +p = process.client('sqldump', args = ['--inserts'], stdout = process.PIPE, stderr = process.PIPE) +dump, err = p.communicate() + +f = open(os.path.join(os.environ['TSTTRGDIR'], 'dumpoutput2.sql'), 'w') +f.write(dump) +f.close() + +sys.stdout.write(dump) +sys.stderr.write(err) diff --git a/sql/test/Dump/Tests/dump-again.reqtests b/sql/test/Dump/Tests/dump-again.reqtests new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/dump-again.reqtests @@ -0,0 +1,1 @@ +load diff --git a/sql/test/Dump/Tests/dump-again.stable.err b/sql/test/Dump/Tests/dump-again.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/dump-again.stable.err @@ -0,0 +1,43 @@ +stderr of test 'dump-again` in directory 'sql/test/Dump` itself: + + +# 22:27:57 > +# 22:27:57 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34099" "--set" "mapi_usock=/var/tmp/mtest-27453/.s.monetdb.34099" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump" "--set" "embedded_c=true" +# 22:27:57 > + +# builtin opt gdk_dbpath = /home/sjoerd/@Monet-stable/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# 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 mapi_open = true +# cmdline opt mapi_port = 34099 +# cmdline opt mapi_usock = /var/tmp/mtest-27453/.s.monetdb.34099 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump +# cmdline opt embedded_c = true +# cmdline opt gdk_debug = 553648138 +#WARNING To speedup sql.get_value a bulk operator implementation is needed +# X_258:bat[:lng] := mal.multiplex("sql":str, "get_value":str, X_230:bat[:str], X_238:bat[:str]); +#WARNING To speedup sql.get_value a bulk operator implementation is needed +# X_259:bat[:lng] := mal.multiplex("sql":str, "get_value":str, X_231:bat[:str], X_239:bat[:str]); +#WARNING To speedup sql.get_value a bulk operator implementation is needed +# X_260:bat[:lng] := mal.multiplex("sql":str, "get_value":str, X_232:bat[:str], X_240:bat[:str]); +#WARNING To speedup sql.get_value a bulk operator implementation is needed +# X_261:bat[:lng] := mal.multiplex("sql":str, "get_value":str, X_233:bat[:str], X_241:bat[:str]); + +# 22:27:57 > +# 22:27:57 > "/usr/bin/python" "dump-again.SQL.py" "dump-again" +# 22:27:57 > + + +# 22:27:57 > +# 22:27:57 > "Done." +# 22:27:57 > + diff --git a/sql/test/Dump/Tests/dump-again.stable.out b/sql/test/Dump/Tests/dump-again.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/Dump/Tests/dump-again.stable.out @@ -0,0 +1,111 @@ +stdout of test 'dump-again` in directory 'sql/test/Dump` itself: + + +# 22:27:57 > +# 22:27:57 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34099" "--set" "mapi_usock=/var/tmp/mtest-27453/.s.monetdb.34099" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump" "--set" "embedded_c=true" +# 22:27:57 > + +# MonetDB 5 server v11.29.4 (hg id: c717aa6c1f76) +# This is an unreleased version +# Serving database 'mTests_sql_test_Dump', using 4 threads +# Compiled for x86_64-pc-linux-gnu/64bit with 128bit integers +# Found 15.513 GiB available main-memory. +# Copyright (c) 1993 - July 2008 CWI. +# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved +# Visit https://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://meeuw.mullender.nl:34099/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-27453/.s.monetdb.34099 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 22:27:57 > +# 22:27:57 > "/usr/bin/python" "dump-again.SQL.py" "dump-again" +# 22:27:57 > + +START TRANSACTION; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list