Changeset: 11613fabc70f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=11613fabc70f
Modified Files:
gdk/gdk_bbp.c
monetdb5/modules/mal/tablet.c
sql/test/copy/Tests/int_parse.stable.err
sql/test/copy/Tests/int_parse.stable.out
sql/test/copy/Tests/int_parse_best.stable.out
sql/test/pg_regress/Tests/strings.stable.err.int128
sql/test/pg_regress/Tests/strings.stable.out
Branch: Jul2015
Log Message:
fixed handling of NULL as ''.
diffs (264 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -3530,6 +3530,10 @@ BBPsync(int cnt, bat *subcommit)
backup_dir = backup_subdir = 0;
(void) GDKremovedir(0, DELDIR);
(void) BBPprepare(0); /* (try to) remove DELDIR and
set up new BAKDIR */
+ if (backup_files > 1) {
+ PERFDEBUG fprintf(stderr, "%d\n", backup_files);
+ backup_files = 1;
+ }
}
}
PERFDEBUG fprintf(stderr, "#BBPsync (ready time %d)\n", (t0 = GDKms())
- t1);
diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -969,7 +969,7 @@ SQLload_parse_line(READERtask *task, int
char *line = task->lines[task->cur][idx];
Tablet *as = task->as;
Column *fmt = as->format;
- int error = 0, skip;
+ int error = 0;
str errline = 0;
#ifdef _DEBUG_TABLET_
@@ -982,10 +982,8 @@ SQLload_parse_line(READERtask *task, int
if (task->quote || task->seplen != 1) {
for (i = 0; i < as->nr_attrs; i++) {
task->fields[i][idx] = line;
- skip = 0;
/* recognize fields starting with a quote, keep them */
if (*line == task->quote) {
- skip = 1;
#ifdef _DEBUG_TABLET_
mnstr_printf(GDKout, "before #1 %s\n", s =
line);
#endif
@@ -1032,7 +1030,7 @@ SQLload_parse_line(READERtask *task, int
endoffieldcheck:
;
/* check for user defined NULL string */
- if (!skip && fmt->nullstr && task->fields[i][idx] &&
strncasecmp(task->fields[i][idx], fmt->nullstr, fmt->null_length + 1) == 0)
+ if (!fmt->skip && fmt->nullstr && task->fields[i][idx]
&& strncasecmp(task->fields[i][idx], fmt->nullstr, fmt->null_length + 1) == 0)
task->fields[i][idx] = 0;
}
#ifdef _DEBUG_TABLET_
diff --git a/sql/test/copy/Tests/int_parse.stable.err
b/sql/test/copy/Tests/int_parse.stable.err
--- a/sql/test/copy/Tests/int_parse.stable.err
+++ b/sql/test/copy/Tests/int_parse.stable.err
@@ -30,17 +30,13 @@ stderr of test 'int_parse` in directory
# 11:23:33 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-4649" "--port=31080"
# 11:23:33 >
-MAPI = (monetdb) /var/tmp/mtest-18609/.s.monetdb.32538
-QUERY = copy 1 records into t_int from stdin USING DELIMITERS ',','\n','\"'
NULL AS '';
- ""
-ERROR = !Failed to import table line 1 field 1 'int' expected in ''
-MAPI = (monetdb) /var/tmp/mtest-18609/.s.monetdb.32538
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = copy 3 records into t_int from stdin USING DELIMITERS ',','\n','\"'
NULL AS '';
0
5.1
9
ERROR = !Failed to import table line 2 field 1 'int' expected in '5.1'
-MAPI = (monetdb) /var/tmp/mtest-18609/.s.monetdb.32538
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = copy 5 records into t_int from stdin delimiters ',','\n' NULL as '';
1
nil
diff --git a/sql/test/copy/Tests/int_parse.stable.out
b/sql/test/copy/Tests/int_parse.stable.out
--- a/sql/test/copy/Tests/int_parse.stable.out
+++ b/sql/test/copy/Tests/int_parse.stable.out
@@ -25,13 +25,17 @@ Ready.
# 13:54:35 >
#create table t_int(i int);
+#copy 1 records into t_int from stdin USING DELIMITERS ',','\n','\"' NULL AS
'';
+#""
+[ 1 ]
#select * from t_int;
% sys.t_int # table_name
% i # name
% int # type
% 1 # length
+[ NULL ]
#delete from t_int;
-[ 0 ]
+[ 1 ]
#copy 2 records into t_int from stdin USING DELIMITERS ',','\n','\"' NULL AS
'';
#3.00
#-4.0000
diff --git a/sql/test/copy/Tests/int_parse_best.stable.out
b/sql/test/copy/Tests/int_parse_best.stable.out
--- a/sql/test/copy/Tests/int_parse_best.stable.out
+++ b/sql/test/copy/Tests/int_parse_best.stable.out
@@ -62,20 +62,20 @@ Ready.
#create table t_int(i int);
#copy 1 records into t_int from stdin USING DELIMITERS ',','\n','\"' NULL AS
'' best effort;
#""
-[ 0 ]
+[ 1 ]
#select * from t_int;
% sys.t_int # table_name
% i # name
% int # type
% 1 # length
+[ NULL ]
#select * from sys.rejects;
% .rejects, .rejects, .rejects, .rejects # table_name
% rowid, fldid, message, input # name
% bigint, int, clob, clob # type
-% 1, 1, 14, 1 # length
-[ 1, 1, "'int' expected", "\n" ]
+% 1, 1, 0, 0 # length
#delete from t_int;
-[ 0 ]
+[ 1 ]
#copy 2 records into t_int from stdin USING DELIMITERS ',','\n','\"' NULL AS
'' best effort;
#3.00
#-4.0000
diff --git a/sql/test/pg_regress/Tests/strings.stable.err.int128
b/sql/test/pg_regress/Tests/strings.stable.err.int128
--- a/sql/test/pg_regress/Tests/strings.stable.err.int128
+++ b/sql/test/pg_regress/Tests/strings.stable.err.int128
@@ -29,70 +29,58 @@ stderr of test 'strings` in directory 's
# 17:11:19 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-1142" "--port=38959"
# 17:11:19 >
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM 'a#"(b_d)#"%' FOR '#') AS "bcd";
ERROR = !conversion of string 'a#"(b_d)#"%' to type int failed.
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM '#"(b_d)#"%' FOR '#') IS NULL AS
"True";
ERROR = !conversion of string '#"(b_d)#"%' to type int failed.
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM '(b|c)' FOR NULL) IS NULL AS "True";
ERROR = !syntax error, unexpected sqlNULL in: "select substring('abcdefg' from
'(b|c)' for null"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING(NULL FROM '(b|c)' FOR '#') IS NULL AS "True";
ERROR = !syntax error, unexpected sqlNULL in: "select substring(null"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM NULL FOR '#') IS NULL AS "True";
ERROR = !syntax error, unexpected sqlNULL in: "select substring('abcdefg' from
null"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM 'c.e') AS "cde";
ERROR = !conversion of string 'c.e' to type int failed.
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT SUBSTRING('abcdefg' FROM 'b(.*)f') AS "cde";
ERROR = !conversion of string 'b(.*)f' to type int failed.
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT OVERLAY('abcdef' PLACING '45' FROM 4) AS "abc45f";
ERROR = !syntax error, unexpected IDENT, expecting ')' or ',' in: "select
overlay('abcdef' placing"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5) AS "yabadaba";
ERROR = !syntax error, unexpected IDENT, expecting ')' or ',' in: "select
overlay('yabadoo' placing"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5 FOR 0) AS "yabadabadoo";
ERROR = !syntax error, unexpected IDENT, expecting ')' or ',' in: "select
overlay('yabadoo' placing"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = SELECT OVERLAY('babosa' PLACING 'ubb' FROM 2 FOR 4) AS "bubba";
ERROR = !syntax error, unexpected IDENT, expecting ')' or ',' in: "select
overlay('babosa' placing"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = insert into toasttest
values(decode(repeat('1234567890',10000),'escape'));
ERROR = !SELECT: no such binary operator 'decode(char,char)'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = insert into toasttest
values(decode(repeat('1234567890',10000),'escape'));
ERROR = !SELECT: no such binary operator 'decode(char,char)'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = insert into toasttest
values(decode(repeat('1234567890',10000),'escape'));
ERROR = !SELECT: no such binary operator 'decode(char,char)'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = insert into toasttest
values(decode(repeat('1234567890',10000),'escape'));
ERROR = !SELECT: no such binary operator 'decode(char,char)'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = select split_part('joeuser@mydatabase','@',0) AS "an error";
-ERROR = !SELECT: no such operator 'split_part'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
-QUERY = select split_part('joeuser@mydatabase','@',1) AS "joeuser";
-ERROR = !SELECT: no such operator 'split_part'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
-QUERY = select split_part('joeuser@mydatabase','@',2) AS "mydatabase";
-ERROR = !SELECT: no such operator 'split_part'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
-QUERY = select split_part('joeuser@mydatabase','@',3) AS "empty string";
-ERROR = !SELECT: no such operator 'split_part'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
-QUERY = select split_part('@joeuser@mydatabase@','@',2) AS "joeuser";
-ERROR = !SELECT: no such operator 'split_part'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+ERROR = !field position must be greater than zero
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = select to_hex(256*256*256 - 1) AS "ffffff";
ERROR = !SELECT: no such unary operator 'to_hex(hugeint)'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-8167/.s.monetdb.37816
QUERY = select to_hex(cast(256 as bigint)*cast(256 as bigint)*cast(256 as
bigint)*cast(256 as bigint) - 1) AS "ffffffff";
ERROR = !SELECT: no such unary operator 'to_hex(hugeint)'
diff --git a/sql/test/pg_regress/Tests/strings.stable.out
b/sql/test/pg_regress/Tests/strings.stable.out
--- a/sql/test/pg_regress/Tests/strings.stable.out
+++ b/sql/test/pg_regress/Tests/strings.stable.out
@@ -689,24 +689,48 @@ Ready.
% char # type
% 0 # length
[ "yaoo" ]
+#select split_part('joeuser@mydatabase','@',1) AS "joeuser";
+% .L # table_name
+% joeuser # name
+% char # type
+% 18 # length
+[ "joeuser" ]
#select substring('joeuser@mydatabase', 0, locate('@','joeuser@mydatabase', 0)
-1) AS "joeuser";
% .L # table_name
% joeuser # name
% char # type
% 18 # length
[ "joeuser" ]
+#select split_part('joeuser@mydatabase','@',2) AS "mydatabase";
+% .L # table_name
+% mydatabase # name
+% char # type
+% 18 # length
+[ "mydatabase" ]
#select substring('joeuser@mydatabase', locate('@','joeuser@mydatabase', 0)
+1) AS "mydatabase";
% .L # table_name
% mydatabase # name
% char # type
% 18 # length
[ "mydatabase" ]
+#select split_part('joeuser@mydatabase','@',3) AS "empty string";
+% .L # table_name
+% empty string # name
+% char # type
+% 18 # length
+[ "" ]
#select substring('joeuser@mydatabase', locate('@','joeuser@mydatabase', 1)
+1, locate('@','joeuser@mydatabase', 2) -1) AS "empty string";
% .L # table_name
% empty string # name
% char # type
% 18 # length
[ "mydatab" ]
+#select split_part('@joeuser@mydatabase@','@',2) AS "joeuser";
+% .L # table_name
+% joeuser # name
+% char # type
+% 18 # length
+[ "joeuser" ]
#select substring('@joeuser@mydatabase@', locate('@','@joeuser@mydatabase@',
0) +1, locate('@','@joeuser@mydatabase@', 1) -1) AS "joeuser";
% .L # table_name
% joeuser # name
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list