Changeset: 5e70dae8441c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5e70dae8441c
Modified Files:
monetdb5/modules/mal/tablet.c
sql/backends/monet5/Tests/limithack.stable.out
sql/test/pg_regress/Tests/alter_table.stable.err
sql/test/pg_regress/Tests/insert.stable.err
Branch: resultset
Log Message:
Fix null parsing during COPY FROM
diffs (truncated from 922 to 300 lines):
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
@@ -865,7 +865,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;
+ int error =0, skip;
str errline = 0;
#ifdef _DEBUG_TABLET_
@@ -878,8 +878,10 @@ 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_
//MT_lock_set(&errorlock, "insert_val");
mnstr_printf(GDKout,"before #1 %s\n", s=line);
@@ -900,12 +902,7 @@ SQLload_parse_line(READERtask *task, int
error++;
goto errors1;
} else *line++ = 0;
- } else
- /* check for user defined NULL string */
- if( fmt->nullstr && task->fields[i][idx] &&
strncasecmp(task->fields[i][idx], fmt->nullstr, fmt->null_length + 1) == 0) {
- task->fields[i][idx] = 0;
- line +=fmt->null_length +1;
- }
+ }
/* eat away the column separator */
for (; *line; line++)
@@ -932,6 +929,9 @@ SQLload_parse_line(READERtask *task, int
i--;
}
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)
+ task->fields[i][idx] = 0;
}
#ifdef _DEBUG_TABLET_
if(error)
diff --git a/sql/backends/monet5/Tests/limithack.stable.out
b/sql/backends/monet5/Tests/limithack.stable.out
--- a/sql/backends/monet5/Tests/limithack.stable.out
+++ b/sql/backends/monet5/Tests/limithack.stable.out
@@ -90,8 +90,8 @@ Ready.
% sys.tbls, sys.tbls, sys.tbls, sys.tbls, sys.tbls,
sys.tbls, sys.tbls, sys.tbls, sys.tbls # table_name
% id, name, schema_id, query, type, system, commit_action,
readonly, temporary # name
% int, varchar, int, varchar, smallint, boolean,
smallint, boolean, smallint # type
-% 4, 15, 4, 4, 1, 5, 1, 5, 1 # length
-[ 6616, "systemfunctions", 2000, "NULL", 0, true, 0,
false, 0 ]
+% 4, 15, 4, 0, 1, 5, 1, 5, 1 # length
+[ 6616, "systemfunctions", 2000, NULL, 0, true, 0,
false, 0 ]
#drop function limited;
#drop table tbls;
diff --git a/sql/test/pg_regress/Tests/alter_table.stable.err
b/sql/test/pg_regress/Tests/alter_table.stable.err
--- a/sql/test/pg_regress/Tests/alter_table.stable.err
+++ b/sql/test/pg_regress/Tests/alter_table.stable.err
@@ -26,613 +26,613 @@ stderr of test 'alter_table` in director
# cmdline opt gdk_debug = 536870922
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp RENAME TO tmp_new;
ERROR = !syntax error, unexpected RENAME, expecting DROP or SET or ALTER or
ADD in: "alter table tmp rename"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = SELECT * FROM tmp_new;
ERROR = !SELECT: no such table 'tmp_new'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp RENAME TO tmp_new2;
ERROR = !syntax error, unexpected RENAME, expecting DROP or SET or ALTER or
ADD in: "alter table tmp rename"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = SELECT * FROM tmp_new;
ERROR = !SELECT: no such table 'tmp_new'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = SELECT * FROM tmp_new2;
ERROR = !SELECT: no such table 'tmp_new2'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = DROP TABLE tmp_new;
ERROR = !DROP TABLE: no such table 'tmp_new'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = DROP TABLE tmp_new2;
ERROR = !DROP TABLE: no such table 'tmp_new2'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER INDEX onek_unique1 RENAME TO tmp_onek_unique1;
ERROR = !syntax error, unexpected INDEX, expecting USER or SEQUENCE or TABLE
in: "alter index"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER INDEX tmp_onek_unique1 RENAME TO onek_unique1;
ERROR = !syntax error, unexpected INDEX, expecting USER or SEQUENCE or TABLE
in: "alter index"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp_view RENAME TO tmp_view_new;
ERROR = !syntax error, unexpected RENAME, expecting DROP or SET or ALTER or
ADD in: "alter table tmp_view rename"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = DROP VIEW tmp_view_new;
ERROR = !DROP VIEW: unknown view 'tmp_view_new'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table stud_emp rename to pg_toast_stud_emp;
ERROR = !syntax error, unexpected RENAME, expecting DROP or SET or ALTER or
ADD in: "alter table stud_emp rename"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table pg_toast_stud_emp rename to stud_emp;
ERROR = !syntax error, unexpected RENAME, expecting DROP or SET or ALTER or
ADD in: "alter table pg_toast_stud_emp rename"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp3 add constraint tmpconstr foreign key(c) references
tmp2 match full;
ERROR = !CONSTRAINT FOREIGN KEY: no such column 'c' in table 'tmp3'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp3 add constraint tmpconstr foreign key(a) references
tmp2(b) match full;
ERROR = !CONSTRAINT FOREIGN KEY: could not find referenced PRIMARY KEY in
table 'tmp2'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp3 add constraint tmpconstr foreign key (a) references
tmp2 match full;
ERROR = !UPDATE: FOREIGN KEY constraint 'tmp3.tmpconstr' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE tmp5 add constraint tmpconstr foreign key(a) references
tmp4(a) match full;
ERROR = !Create Key failed, key 'tmpconstr' already exists
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable;
ERROR = !ALTER TABLE: not supported on TEMPORARY table 'fktable'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
ERROR = !ALTER TABLE: not supported on TEMPORARY table 'fktable'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
ERROR = !Create Key failed, key 'fktable_ftest1_fkey' already exists
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable;
ERROR = !types int(32,0) and inet(0,0) are not equal for column 'ptest1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
references pktable(ptest1, ptest2);
ERROR = !types int(32,0) and inet(0,0) are not equal for column 'ptest1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
references pktable(ptest2, ptest1);
ERROR = !CONSTRAINT FOREIGN KEY: could not find referenced PRIMARY KEY in
table 'pktable'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1)
references pktable(ptest1, ptest2);
ERROR = !types int(32,0) and inet(0,0) are not equal for column 'ptest1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 check (test>3);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc1 add constraint atacc_test1 check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 check (test>3);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc1 add constraint atacc_test1 check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 check (test1>3);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc1 add constraint atacc_test1 check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 check
(test+test2<test3*4);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc1 add constraint atacc_test1 check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add check (test2>test);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc1 add check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc2 add constraint foo check (test2>0);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table atacc2 add constraint foo check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table /* only */ atacc2 add constraint foo check (test2>0);
ERROR = !syntax error, unexpected CHECK, expecting FOREIGN or PRIMARY or
UNIQUE in: "alter table /* only */ atacc2 add constraint foo check"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test) values (2);
ERROR = !INSERT INTO: UNIQUE constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_oid1 unique(oid);
ERROR = !CONSTRAINT UNIQUE: no such column 'oid' for table 'atacc1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 unique (test);
ERROR = !UPDATE: UNIQUE constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 unique (test1);
ERROR = !CONSTRAINT UNIQUE: no such column 'test1' for table 'atacc1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test,test2) values (4,4);
ERROR = !INSERT INTO: UNIQUE constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test2, test) values (2, 3);
ERROR = !INSERT INTO: UNIQUE constraint 'atacc1.atacc1_test_unique' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test) values (2);
ERROR = !INSERT INTO: PRIMARY KEY constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test) values(NULL);
ERROR = !INSERT INTO: NOT NULL constraint violated for column atacc1.test
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_oid1 primary key(oid);
ERROR = !CONSTRAINT PRIMARY KEY: no such column 'oid' for table 'atacc1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_oid1 primary key(oid);
ERROR = !CONSTRAINT PRIMARY KEY: no such column 'oid' for table 'atacc1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 primary key (test);
ERROR = !UPDATE: PRIMARY KEY constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 primary key (test);
ERROR = !ALTER TABLE: NOT NULL constraint violated for column atacc1.test
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test1 primary key (test1);
ERROR = !CONSTRAINT PRIMARY KEY: no such column 'test1' for table 'atacc1'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 add constraint atacc_test2 primary key (test);
ERROR = !CONSTRAINT PRIMARY KEY: a table can have only one PRIMARY KEY
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test,test2) values (4,4);
ERROR = !INSERT INTO: PRIMARY KEY constraint 'atacc1.atacc_test1' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test,test2) values (NULL,3);
ERROR = !INSERT INTO: NOT NULL constraint violated for column atacc1.test
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test,test2) values (3, NULL);
ERROR = !INSERT INTO: NOT NULL constraint violated for column atacc1.test2
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test,test2) values (NULL,NULL);
ERROR = !INSERT INTO: NOT NULL constraint violated for column atacc1.test2
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test2, test) values (2, 3);
ERROR = !INSERT INTO: PRIMARY KEY constraint 'atacc1.atacc1_test_pkey' violated
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = insert into atacc1 (test2, test) values (1, NULL);
ERROR = !INSERT INTO: NOT NULL constraint violated for column atacc1.test
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table pg_class alter column relname drop not null;
ERROR = !syntax error, unexpected NOT, expecting DEFAULT in: "alter table
pg_class alter column relname drop not"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table pg_class alter relname set not null;
ERROR = !ALTER TABLE: no such table 'pg_class' in schema 'sys'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table non_existent alter column bar set not null;
ERROR = !ALTER TABLE: no such table 'non_existent' in schema 'sys'
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table non_existent alter column bar drop not null;
ERROR = !syntax error, unexpected NOT, expecting DEFAULT in: "alter table
non_existent alter column bar drop not"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 alter column test drop not null;
ERROR = !syntax error, unexpected NOT, expecting DEFAULT in: "alter table
atacc1 alter column test drop not"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
+MAPI = (monetdb) /var/tmp/mtest-15933/.s.monetdb.38576
QUERY = alter table atacc1 alter column test drop not null;
ERROR = !syntax error, unexpected NOT, expecting DEFAULT in: "alter table
atacc1 alter column test drop not"
-MAPI = (monetdb) /var/tmp/mtest-29915/.s.monetdb.37487
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list