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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to