Changeset: a3e04b94dac0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a3e04b94dac0
Modified Files:
sql/server/rel_dump.c
sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: Jul2021
Log Message:
Look for escapred and \ in the atom's string representation
diffs (49 lines):
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -777,18 +777,21 @@ readInt( char *r, int *pos)
static char *
readString( char *r, int *pos)
{
- char *st = NULL;
+ char *st = NULL, *parsed;
- if (r[*pos] == '"'){
+ if (r[*pos] == '"') {
(*pos)++;
- st = r+*pos;
+ st = parsed = r+*pos;
while (r[*pos] != '"') {
- if (r[*pos] == '\\' && r[*pos + 1] == '"')
+ if (r[*pos] == '\\' && (r[*pos + 1] == '"' || r[*pos +
1] == '\\')) {
+ *parsed++ = r[*pos + 1];
(*pos)+=2;
- else
+ } else {
+ *parsed++ = r[*pos];
(*pos)++;
+ }
}
- r[*pos] = 0;
+ *parsed = '\0';
(*pos)++;
}
return st;
diff --git a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
--- a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
+++ b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
@@ -51,6 +51,14 @@ with SQLTestCase() as cli:
.assertSucceeded().assertDataResultMatch([(1,),(1,),(1,),(1,),(1,),(1,)])
cli.execute('SELECT 3 > (rt2.c0 ^ CAST(2 AS TINYINT)) * rt2.c0 FROM rt2;')
\
.assertSucceeded().assertDataResultMatch([(False,),(True,),(False,),(False,),(False,),(False,),(True,),(False,),(False,),(False,)])
+ cli.execute("SELECT r'\"' from t3;") \
+ .assertSucceeded().assertDataResultMatch([("\"",)])
+ cli.execute("SELECT r'\"' from rt3;") \
+ .assertSucceeded().assertDataResultMatch([("\"",)])
+ cli.execute("SELECT r'\\' from t3;") \
+ .assertSucceeded().assertDataResultMatch([("\\",)])
+ cli.execute("SELECT r'\\' from rt3;") \
+ .assertSucceeded().assertDataResultMatch([("\\",)])
cli.execute("ROLLBACK;")
cli.execute("""
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list