Changeset: e5c67a23d7d6 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=e5c67a23d7d6 Modified Files: src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java Branch: default Log Message:
Fix for bug 6350
diffs (57 lines):
diff --git a/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
b/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
--- a/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
+++ b/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
@@ -49,7 +49,7 @@ public class TupleLineParser extends MCL
throw new MCLParseException(values.length +
" columns expected, but only
single value found");
- // return the whole string but the leading =
+ // return the whole string but without the leading =
values[0] = source.substring(1);
// reset colnr
@@ -60,9 +60,9 @@ public class TupleLineParser extends MCL
// extract separate fields by examining string, char for char
boolean inString = false, escaped = false;
- int cursor = 2, column = 0, i = 2;
+ int cursor = 2, column = 0;
StringBuilder uesc = new StringBuilder();
- for (; i < len; i++) {
+ for (int i = 2; i < len; i++) {
switch(chrLine[i]) {
default:
escaped = false;
@@ -109,15 +109,21 @@ public class TupleLineParser extends MCL
for (int pos = cursor +
1; pos < i - 2; pos++) {
if
(chrLine[pos] == '\\' && pos + 1 < i - 2) {
pos++;
- //
strToStr and strFromStr in gdk_atoms.mx only
- //
support \t \n \\ \" and \377
+ //
escapedStr and GDKstrFromStr in gdk_atoms.c only
+ //
support \\ \f \n \r \t \" and \377
switch
(chrLine[pos]) {
case '\\':
uesc.append('\\');
break;
+
case 'f':
+
uesc.append('\f');
+
break;
case 'n':
uesc.append('\n');
break;
+
case 'r':
+
uesc.append('\r');
+
break;
case 't':
uesc.append('\t');
break;
@@ -177,7 +183,7 @@ public class TupleLineParser extends MCL
// reset colnr
reset();
-
+
return 0;
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list
