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

Reply via email to