Changeset: 7746e71d791e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7746e71d791e
Added Files:
sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.sql
sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.err
sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.out
Modified Files:
monetdb5/modules/atoms/inet.c
sql/common/sql_types.c
sql/server/sql_scan.c
sql/test/BugTracker-2014/Tests/All
sql/test/testdb/Tests/testdb-dump.stable.out
sql/test/testdb/Tests/testdb-load.sql
Branch: default
Log Message:
Merge with Oct2014 branch.
diffs (255 lines):
diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c
--- a/monetdb5/modules/atoms/inet.c
+++ b/monetdb5/modules/atoms/inet.c
@@ -142,7 +142,8 @@ INETfromString(str src, int *len, inet *
goto error;
}
- return(i);
+ return (int) (endptr - src);
+
error: /* catch exception: return NULL */
in_setnil(*retval);
*len = 0; /* signal INETnew something went wrong */
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -1432,13 +1432,14 @@ sqltypeinit( sql_allocator *sa)
sql_create_func(sa, "localtime", "sql", "current_time", NULL, NULL,
TME, SCALE_NONE);
sql_create_func(sa, "localtimestamp", "sql", "current_timestamp", NULL,
NULL, TMESTAMP, SCALE_NONE);
- sql_create_func(sa, "sql_sub", "mtime", "date_sub_msec_interval", DTE,
SECINT, DTE, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "date_sub_month_interval", DTE,
MONINT, DTE, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval",
TMESTAMP, SECINT, TMESTAMP, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval",
TMESTAMP, MONINT, TMESTAMP, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval",
TMESTAMPTZ, SECINT, TMESTAMPTZ, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval",
TMESTAMPTZ, MONINT, TMESTAMPTZ, SCALE_FIX);
- sql_create_func(sa, "sql_sub", "mtime", "time_sub_msec_interval", TME,
SECINT, TME, SCALE_FIX);
+ sql_create_func(sa, "sql_sub", "mtime", "date_sub_msec_interval", DTE,
SECINT, DTE, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "date_sub_month_interval", DTE,
MONINT, DTE, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval",
TMESTAMP, SECINT, TMESTAMP, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval",
TMESTAMP, MONINT, TMESTAMP, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_msec_interval",
TMESTAMPTZ, SECINT, TMESTAMPTZ, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "timestamp_sub_month_interval",
TMESTAMPTZ, MONINT, TMESTAMPTZ, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "time_sub_msec_interval", TME,
SECINT, TME, SCALE_NONE);
+ sql_create_func(sa, "sql_sub", "mtime", "time_sub_msec_interval",
TMETZ, SECINT, TMETZ, SCALE_NONE);
sql_create_func(sa, "sql_sub", "mtime", "diff", DTE, DTE, INT,
SCALE_FIX);
sql_create_func(sa, "sql_sub", "mtime", "diff", TMESTAMP, TMESTAMP,
LNG, SCALE_FIX);
@@ -1451,6 +1452,8 @@ sqltypeinit( sql_allocator *sa)
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_msec_interval",
TMESTAMPTZ, SECINT, TMESTAMPTZ, SCALE_NONE);
sql_create_func(sa, "sql_add", "mtime", "timestamp_add_month_interval",
TMESTAMPTZ, MONINT, TMESTAMPTZ, SCALE_NONE);
sql_create_func(sa, "sql_add", "mtime", "time_add_msec_interval", TME,
SECINT, TME, SCALE_NONE);
+ sql_create_func(sa, "sql_add", "mtime", "time_add_msec_interval",
TMETZ, SECINT, TMETZ, SCALE_NONE);
+
sql_create_func(sa, "local_timezone", "mtime", "local_timezone", NULL,
NULL, SECINT, SCALE_FIX);
sql_create_func(sa, "year", "mtime", "year", DTE, NULL, INT, SCALE_FIX);
@@ -1459,6 +1462,9 @@ sqltypeinit( sql_allocator *sa)
sql_create_func(sa, "hour", "mtime", "hours", TME, NULL, INT,
SCALE_FIX);
sql_create_func(sa, "minute", "mtime", "minutes", TME, NULL, INT,
SCALE_FIX);
sql_create_func_res(sa, "second", "mtime", "sql_seconds", TME, NULL,
DEC, SCALE_NONE, 3);
+ sql_create_func(sa, "hour", "mtime", "hours", TMETZ, NULL, INT,
SCALE_FIX);
+ sql_create_func(sa, "minute", "mtime", "minutes", TMETZ, NULL, INT,
SCALE_FIX);
+ sql_create_func_res(sa, "second", "mtime", "sql_seconds", TMETZ, NULL,
DEC, SCALE_NONE, 3);
sql_create_func(sa, "year", "mtime", "year", TMESTAMP, NULL, INT,
SCALE_FIX);
sql_create_func(sa, "month", "mtime", "month", TMESTAMP, NULL, INT,
SCALE_FIX);
diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c
--- a/sql/server/sql_scan.c
+++ b/sql/server/sql_scan.c
@@ -560,19 +560,6 @@ scanner_getc(struct scanner *lc)
goto error;
}
- /* if we find a BOM interpret it as a "zero-width non-breaking
- * space" by just skipping it */
- if (c == 0xFEFF) {
- /* shift stuff so we won't "see" this BOM when it's in the
- * middle of some word */
- memmove(b->buf + b->pos + 3, b->buf + b->pos, lc->yycur - 3);
- for (n = 0; n < 3; n++) {
- b->buf[b->pos++] = ' ';
- lc->yycur--;
- }
- return(scanner_getc(lc));
- }
-
return c;
error:
diff --git a/sql/test/BugTracker-2014/Tests/All
b/sql/test/BugTracker-2014/Tests/All
--- a/sql/test/BugTracker-2014/Tests/All
+++ b/sql/test/BugTracker-2014/Tests/All
@@ -65,3 +65,4 @@ ifthenelse.Bug-3629
order_by_incorrect_error.Bug-3630
incorrect_floating_point_cast.Bug-3633
acidity-fail.Bug-3635
+BOM-in-string.Bug-3641
diff --git a/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.sql
b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.sql
@@ -0,0 +1,4 @@
+-- careful: the second query contains the code U+FEFF or ZERO WIDTH
+-- NO-BREAK SPACE, also known as BYTE ORDER MARK
+select ' ';
+select ' ';
diff --git a/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.err
b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'BOM-in-string.Bug-3641` in directory
'sql/test/BugTracker-2014` itself:
+
+
+# 09:45:17 >
+# 09:45:17 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=37240" "--set"
"mapi_usock=/var/tmp/mtest-27530/.s.monetdb.37240" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2014"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 09:45:17 >
+
+# 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 = 37240
+# cmdline opt mapi_usock = /var/tmp/mtest-27530/.s.monetdb.37240
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath =
/home/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2014
+# cmdline opt mal_listing = 0
+# cmdline opt embedded_r = yes
+# cmdline opt gdk_debug = 536870922
+
+# 09:45:18 >
+# 09:45:18 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-27530" "--port=37240"
+# 09:45:18 >
+
+
+# 09:45:18 >
+# 09:45:18 > "Done."
+# 09:45:18 >
+
diff --git a/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.out
b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2014/Tests/BOM-in-string.Bug-3641.stable.out
@@ -0,0 +1,73 @@
+stdout of test 'BOM-in-string.Bug-3641` in directory
'sql/test/BugTracker-2014` itself:
+
+
+# 09:47:46 >
+# 09:47:46 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=35607" "--set"
"mapi_usock=/var/tmp/mtest-27606/.s.monetdb.35607" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_BugTracker-2014"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 09:47:46 >
+
+# MonetDB 5 server v11.19.8 (hg id: 9a2cf4c75ba5+)
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2014', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 7.734 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://gaai.mullender.nl:35607/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-27606/.s.monetdb.35607
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+# MonetDB/R module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 19_cluster.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_functions.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 24_zorder.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 26_sysmon.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 40_geom.sql
+# loading sql script: 40_json.sql
+# loading sql script: 41_jsonstore.sql
+# loading sql script: 45_uuid.sql
+# loading sql script: 46_gsl.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 85_bam.sql
+# loading sql script: 90_generator.sql
+# loading sql script: 99_system.sql
+
+# 09:47:46 >
+# 09:47:46 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-27606" "--port=35607"
+# 09:47:46 >
+
+#select ' ';
+% .L # table_name
+% single_value # name
+% char # type
+% 2 # length
+[ " " ]
+#select ' ';
+% .L # table_name
+% single_value # name
+% char # type
+% 5 # length
+[ " " ]
+
+# 09:47:46 >
+# 09:47:46 > "Done."
+# 09:47:46 >
+
diff --git a/sql/test/testdb/Tests/testdb-dump.stable.out
b/sql/test/testdb/Tests/testdb-dump.stable.out
--- a/sql/test/testdb/Tests/testdb-dump.stable.out
+++ b/sql/test/testdb/Tests/testdb-dump.stable.out
@@ -101170,11 +101170,12 @@ CREATE TABLE "testschema"."typestest" (
"character" CHAR(1),
"varchar100" VARCHAR(100),
"character10" CHAR(10),
- "uuid" UUID
+ "uuid" UUID,
+ "inet" INET
);
COPY 2 RECORDS INTO "testschema"."typestest" FROM stdin USING DELIMITERS
'\t','\n','"';
-true 10 10000 1000000 1000000 10000000000 1e+30 1.00000002e+20
1.000 123456789 12345.678 3.1415000000000002 3.1415 3.1415
2009-04-15 24 18 3 1728000.000 108000.000
120000.000 100000.000 36000.000 6000.000 2000.000
600.000 100.000 10.000 1995-07-15 07:30:00.000000 1995-07-15
07:30:00.00000 1995-07-15 07:30:00.000000+00:00 1995-07-15
07:30:00.00000+00:00 07:30:00 07:30:00.00000 07:30:00+00:00
07:30:00.00000+00:00 123456 123456 "123456" "123456" "x"
"varchar" "0123456789" 7d95a9ce-aeb8-4881-9cf7-60b4d55f9e45
-NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL
+true 10 10000 1000000 1000000 10000000000 1e+30 1.00000002e+20
1.000 123456789 12345.678 3.1415000000000002 3.1415 3.1415
2009-04-15 24 18 3 1728000.000 108000.000
120000.000 100000.000 36000.000 6000.000 2000.000
600.000 100.000 10.000 1995-07-15 07:30:00.000000 1995-07-15
07:30:00.00000 1995-07-15 07:30:00.000000+00:00 1995-07-15
07:30:00.00000+00:00 07:30:00 07:30:00.00000 07:30:00+00:00
07:30:00.00000+00:00 123456 123456 "123456" "123456" "x"
"varchar" "0123456789" 7d95a9ce-aeb8-4881-9cf7-60b4d55f9e45
192.168.10.0/24
+NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL
CREATE TABLE "testschema"."keytest1" (
"key1" INTEGER NOT NULL,
"key2" INTEGER NOT NULL,
diff --git a/sql/test/testdb/Tests/testdb-load.sql
b/sql/test/testdb/Tests/testdb-load.sql
--- a/sql/test/testdb/Tests/testdb-load.sql
+++ b/sql/test/testdb/Tests/testdb-load.sql
@@ -101149,11 +101149,12 @@ CREATE TABLE "testschema"."typestest" (
"character" CHAR(1),
"varchar100" VARCHAR(100),
"character10" CHAR(10),
- "uuid" UUID
+ "uuid" UUID,
+ "inet" INET
);
COPY 2 RECORDS INTO "testschema"."typestest" FROM stdin USING DELIMITERS
'\t','\n','"';
-true 10 10000 1000000 1000000 10000000000 1e+30 1.00000002e+20
1 123456789 12345.678 3.1415000000000002 3.1415 3.1415
2009-04-15 24 18 3 1728000 108000 120000 100000 36000
6000 2000 600 100 10 1995-07-15 07:30:00.000000
1995-07-15 07:30:00.00000 1995-07-15 07:30:00.000000+00:00
1995-07-15 07:30:00.00000+00:00 07:30:00 07:30:00.00000 07:30:00+00:00
07:30:00.00000+00:00 123456 123456 "123456" "123456" "x"
"varchar" "0123456789" 7d95a9ce-aeb8-4881-9cf7-60b4d55f9e45
-NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL
+true 10 10000 1000000 1000000 10000000000 1e+30 1.00000002e+20
1 123456789 12345.678 3.1415000000000002 3.1415 3.1415
2009-04-15 24 18 3 1728000 108000 120000 100000 36000
6000 2000 600 100 10 1995-07-15 07:30:00.000000
1995-07-15 07:30:00.00000 1995-07-15 07:30:00.000000+00:00
1995-07-15 07:30:00.00000+00:00 07:30:00 07:30:00.00000 07:30:00+00:00
07:30:00.00000+00:00 123456 123456 "123456" "123456" "x"
"varchar" "0123456789" 7d95a9ce-aeb8-4881-9cf7-60b4d55f9e45
192.168.10.0/24
+NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL
CREATE TABLE "testschema"."keytest1" (
"key1" INTEGER NOT NULL,
"key2" INTEGER NOT NULL,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list