Changeset: c5460cc0b66b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c5460cc0b66b
Modified Files:
monetdb5/modules/mal/tablet.c
sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
Branch: Jul2015
Log Message:
Do not insert non-UTF-8 sequences into a string BAT.
diffs (41 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
@@ -894,14 +894,19 @@ SQLinsert_val(READERtask *task, int col,
snprintf(buf, BUFSIZ, "'%s' expected", fmt->type);
err = SQLload_error(task, idx, task->as->nr_attrs);
if (task->rowerror) {
+ size_t slen = mystrlen(s);
+ char *scpy = GDKmalloc(slen + 1);
+ if (scpy)
+ mycpstr(scpy, s);
MT_lock_set(&errorlock, "insert_val");
col++;
BUNappend(task->cntxt->error_row, &row, FALSE);
BUNappend(task->cntxt->error_fld, &col, FALSE);
BUNappend(task->cntxt->error_msg, buf, FALSE);
BUNappend(task->cntxt->error_input, err, FALSE);
- snprintf(buf, BUFSIZ, "line " LLFMT " field %d '%s'
expected in '%s'", row, col, fmt->type, s);
buf[BUFSIZ-1]=0;
+ snprintf(buf, sizeof(buf), "line " LLFMT " field %d
'%s' expected in '%s'", row, col, fmt->type, scpy ? scpy : buf);
+ GDKfree(scpy);
if (task->as->error == NULL && (task->as->error =
GDKstrdup(buf)) == NULL)
task->as->error = M5OutOfMemory;
task->rowerror[idx]++;
diff --git
a/sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
b/sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
---
a/sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
+++
b/sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
@@ -67,11 +67,11 @@ stderr of test 'incomplete-utf8-sequence
# 14:47:29 > mclient -lsql -ftest -i -e --host=ottar --port=36476
# 14:47:29 >
-MAPI = (monetdb) /var/tmp/mtest-7656/.s.monetdb.37934
+MAPI = (monetdb) /var/tmp/mtest-20213/.s.monetdb.30730
QUERY = copy 2 records into tbl_bug2575 from stdin using delimiters
'\t','\n','';
10001160000 29 .v.
10001690001 0 coÃ
-ERROR = !Failed to import table line 2 field 3 'char(3)' expected in 'coÃ'
+ERROR = !Failed to import table line 2 field 3 'char(3)' expected in 'co<C3>'
# 14:47:29 >
# 14:47:29 > Done.
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list