Changeset: 20f8777d533f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/20f8777d533f Modified Files: monetdb5/modules/atoms/str.c sql/server/sql_scan.c sql/test/BugTracker-2024/Tests/All sql/test/copy/Tests/nonutf8.test Branch: default Log Message:
Merge with Dec2023 branch. diffs (242 lines): diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c --- a/monetdb5/modules/atoms/str.c +++ b/monetdb5/modules/atoms/str.c @@ -985,6 +985,7 @@ const struct UTF8_lower_upper { {0x2C5C, 0x2C2C,}, {0x2C5D, 0x2C2D,}, {0x2C5E, 0x2C2E,}, + {0x2C5F, 0x2C2F,}, {0x2C61, 0x2C60,}, {0x2C65, 0x023A,}, {0x2C66, 0x023E,}, @@ -1188,9 +1189,13 @@ const struct UTF8_lower_upper { {0xA7BB, 0xA7BA,}, {0xA7BD, 0xA7BC,}, {0xA7BF, 0xA7BE,}, + {0xA7C1, 0xA7C0,}, {0xA7C3, 0xA7C2,}, {0xA7C8, 0xA7C7,}, {0xA7CA, 0xA7C9,}, + {0xA7D1, 0xA7D0,}, + {0xA7D7, 0xA7D6,}, + {0xA7D9, 0xA7D8,}, {0xA7F6, 0xA7F5,}, {0xAB53, 0xA7B3,}, {0xAB70, 0x13A0,}, @@ -1375,6 +1380,41 @@ const struct UTF8_lower_upper { {0x104F9, 0x104D1,}, {0x104FA, 0x104D2,}, {0x104FB, 0x104D3,}, + {0x10597, 0x10570,}, + {0x10598, 0x10571,}, + {0x10599, 0x10572,}, + {0x1059A, 0x10573,}, + {0x1059B, 0x10574,}, + {0x1059C, 0x10575,}, + {0x1059D, 0x10576,}, + {0x1059E, 0x10577,}, + {0x1059F, 0x10578,}, + {0x105A0, 0x10579,}, + {0x105A1, 0x1057A,}, + {0x105A3, 0x1057C,}, + {0x105A4, 0x1057D,}, + {0x105A5, 0x1057E,}, + {0x105A6, 0x1057F,}, + {0x105A7, 0x10580,}, + {0x105A8, 0x10581,}, + {0x105A9, 0x10582,}, + {0x105AA, 0x10583,}, + {0x105AB, 0x10584,}, + {0x105AC, 0x10585,}, + {0x105AD, 0x10586,}, + {0x105AE, 0x10587,}, + {0x105AF, 0x10588,}, + {0x105B0, 0x10589,}, + {0x105B1, 0x1058A,}, + {0x105B3, 0x1058C,}, + {0x105B4, 0x1058D,}, + {0x105B5, 0x1058E,}, + {0x105B6, 0x1058F,}, + {0x105B7, 0x10590,}, + {0x105B8, 0x10591,}, + {0x105B9, 0x10592,}, + {0x105BB, 0x10594,}, + {0x105BC, 0x10595,}, {0x10CC0, 0x10C80,}, {0x10CC1, 0x10C81,}, {0x10CC2, 0x10C82,}, @@ -2480,6 +2520,7 @@ const struct UTF8_lower_upper { {0x2C2C, 0x2C5C,}, {0x2C2D, 0x2C5D,}, {0x2C2E, 0x2C5E,}, + {0x2C2F, 0x2C5F,}, {0x2C60, 0x2C61,}, {0x2C62, 0x026B,}, {0x2C63, 0x1D7D,}, @@ -2660,12 +2701,16 @@ const struct UTF8_lower_upper { {0xA7BA, 0xA7BB,}, {0xA7BC, 0xA7BD,}, {0xA7BE, 0xA7BF,}, + {0xA7C0, 0xA7C1,}, {0xA7C2, 0xA7C3,}, {0xA7C4, 0xA794,}, {0xA7C5, 0x0282,}, {0xA7C6, 0x1D8E,}, {0xA7C7, 0xA7C8,}, {0xA7C9, 0xA7CA,}, + {0xA7D0, 0xA7D1,}, + {0xA7D6, 0xA7D7,}, + {0xA7D8, 0xA7D9,}, {0xA7F5, 0xA7F6,}, {0xFF21, 0xFF41,}, {0xFF22, 0xFF42,}, @@ -2769,6 +2814,41 @@ const struct UTF8_lower_upper { {0x104D1, 0x104F9,}, {0x104D2, 0x104FA,}, {0x104D3, 0x104FB,}, + {0x10570, 0x10597,}, + {0x10571, 0x10598,}, + {0x10572, 0x10599,}, + {0x10573, 0x1059A,}, + {0x10574, 0x1059B,}, + {0x10575, 0x1059C,}, + {0x10576, 0x1059D,}, + {0x10577, 0x1059E,}, + {0x10578, 0x1059F,}, + {0x10579, 0x105A0,}, + {0x1057A, 0x105A1,}, + {0x1057C, 0x105A3,}, + {0x1057D, 0x105A4,}, + {0x1057E, 0x105A5,}, + {0x1057F, 0x105A6,}, + {0x10580, 0x105A7,}, + {0x10581, 0x105A8,}, + {0x10582, 0x105A9,}, + {0x10583, 0x105AA,}, + {0x10584, 0x105AB,}, + {0x10585, 0x105AC,}, + {0x10586, 0x105AD,}, + {0x10587, 0x105AE,}, + {0x10588, 0x105AF,}, + {0x10589, 0x105B0,}, + {0x1058A, 0x105B1,}, + {0x1058C, 0x105B3,}, + {0x1058D, 0x105B4,}, + {0x1058E, 0x105B5,}, + {0x1058F, 0x105B6,}, + {0x10590, 0x105B7,}, + {0x10591, 0x105B8,}, + {0x10592, 0x105B9,}, + {0x10594, 0x105BB,}, + {0x10595, 0x105BC,}, {0x10C80, 0x10CC0,}, {0x10C81, 0x10CC1,}, {0x10C82, 0x10CC2,}, diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c --- a/sql/server/sql_scan.c +++ b/sql/server/sql_scan.c @@ -1504,9 +1504,12 @@ sql_get_next_token(YYSTYPE *yylval, void case 'e': case 'E': assert(yylval->sval[1] == '\''); - GDKstrFromStr((unsigned char *) str, - (unsigned char *) yylval->sval + 2, - lc->yycur-lc->yysval - 2, '\''); + if (GDKstrFromStr((unsigned char *) str, + (unsigned char *) yylval->sval + 2, + lc->yycur-lc->yysval - 2, '\'') < 0) { + sql_error(c, 1, SQLSTATE(42000) "%s", GDKerrbuf); + return LEX_ERROR; + } quote = '\''; break; case 'u': @@ -1548,10 +1551,13 @@ sql_get_next_token(YYSTYPE *yylval, void src++; *dst = 0; } else { - GDKstrFromStr((unsigned char *)str, - (unsigned char *)yylval->sval + 1, - lc->yycur - lc->yysval - 1, - '\''); + if (GDKstrFromStr((unsigned char *)str, + (unsigned char *)yylval->sval + 1, + lc->yycur - lc->yysval - 1, + '\'') < 0) { + sql_error(c, 1, SQLSTATE(42000) "%s", GDKerrbuf); + return LEX_ERROR; + } } break; } diff --git a/sql/test/BugTracker-2024/Tests/All b/sql/test/BugTracker-2024/Tests/All --- a/sql/test/BugTracker-2024/Tests/All +++ b/sql/test/BugTracker-2024/Tests/All @@ -27,3 +27,4 @@ constant-expression-issue-7457 sign-issue-7458 contains-between-issue-7459 push_select_exp-issue-7460 +unicode-escape-7461 diff --git a/sql/test/BugTracker-2024/Tests/unicode-escape-7461.test b/sql/test/BugTracker-2024/Tests/unicode-escape-7461.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2024/Tests/unicode-escape-7461.test @@ -0,0 +1,30 @@ +statement ok +CREATE TABLE t0(c0 BOOLEAN, c1 BOOLEAN, PRIMARY KEY(c0)) + +statement ok +CREATE TABLE t1(c0 INTEGER, c1 INT, PRIMARY KEY(c0)) + +statement error +INSERT INTO t0(c1) VALUES (-2041868105), (true) + +statement ok +INSERT INTO t0(c1, c0) VALUES (-1820721628, -337528041) + +statement error +INSERT INTO t0(c1) VALUES (true) + +statement ok +INSERT INTO t1(c0) VALUES (true) + +statement ok +SELECT * FROM t1, t0 + +statement error +SELECT * FROM t1, t0 WHERE (CASE t0.c0 WHEN (t0.c0 IN (((t1.c0)<=(true)))) THEN (((-953136241) IS NOT NULL) NOT BETWEEN (CASE true WHEN '_hf4{r' THEN t0.c0 WHEN '\Uwc0g8g' THEN t1.c1 WHEN false THEN '' ELSE t1.c1 END ) AND 1239880767) ELSE t0.c1 END ) + +statement ok +DROP TABLE t0 + +statement ok +DROP TABLE t1 + diff --git a/sql/test/copy/Tests/nonutf8.test b/sql/test/copy/Tests/nonutf8.test --- a/sql/test/copy/Tests/nonutf8.test +++ b/sql/test/copy/Tests/nonutf8.test @@ -1,7 +1,7 @@ statement ok create table nonutf8 (s string) -statement error GDK reported error: GDKstrFromStr: not a proper UTF-8 sequence +statement error !ERROR: GDKstrFromStr: not a proper UTF-8 sequence insert into nonutf8 values (E'\x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35') statement error Failed to import table 'nonutf8', line 1: column 1 s: 'varchar' expected in '\x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35\x0A\xB1\x31\x37\x20\x25' diff --git a/tools/merovingian/daemon/argvcmds.c b/tools/merovingian/daemon/argvcmds.c --- a/tools/merovingian/daemon/argvcmds.c +++ b/tools/merovingian/daemon/argvcmds.c @@ -441,10 +441,9 @@ command_set(confkeyval *ckv, int argc, c (meropid = atoi(buf)) != 0 && kill(meropid, SIGHUP) == -1) { - fprintf(stderr, "sending SIGHUP to monetdbd[%d] failed: %s\n", + /* maybe monetdbd crashed and did not get the chance to clean up */ + fprintf(stderr, "WARNING: sending SIGHUP to monetdbd[%d] failed: %s\n", (int)meropid, strerror(errno)); - fclose(pfile); - return(1); } fclose(pfile); } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org