Changeset: 07ebc5d4e461 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/07ebc5d4e461 Branch: sw_ew_c_sorting Log Message:
Merge with Dec2023 branch diffs (246 lines): diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c --- a/sql/server/rel_optimize_sel.c +++ b/sql/server/rel_optimize_sel.c @@ -875,12 +875,12 @@ exps_merge_select_rse( mvc *sql, list *l le->flag == re->flag && le->flag <= cmp_lt) { sql_exp *mine = NULL, *maxe = NULL; - if (!(mine = rel_binop_(sql, NULL, le->r, re->r, "sys", "sql_min", card_value))) { + if (!(mine = rel_binop_(sql, NULL, exp_copy(sql, le->r), exp_copy(sql, re->r), "sys", "sql_min", card_value))) { sql->session->status = 0; sql->errstr[0] = '\0'; continue; } - if (!(maxe = rel_binop_(sql, NULL, le->f, re->f, "sys", "sql_max", card_value))) { + if (!(maxe = rel_binop_(sql, NULL, exp_copy(sql, le->f), exp_copy(sql, re->f), "sys", "sql_max", card_value))) { sql->session->status = 0; sql->errstr[0] = '\0'; continue; 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 @@ -1495,9 +1495,17 @@ 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) { + char *err = GDKerrbuf; + if (strncmp(err, GDKERROR, strlen(GDKERROR)) == 0) + err += strlen(GDKERROR); + else if (*err == '!') + err++; + sql_error(c, 1, SQLSTATE(42000) "%s", err); + return LEX_ERROR; + } quote = '\''; break; case 'u': @@ -1539,10 +1547,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-2023/Tests/misc-crashes-7390.test b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test --- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test +++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test @@ -244,7 +244,7 @@ DROP TABLE v0 statement ok CREATE TABLE v0(v1 INT) -statement error +statement error 42000!CATALOG: no such function 'sys'.'=' UPDATE v0 SET v1 = (WITH v0 AS (SELECT 42039652.000000) SELECT STDDEV_POP (96) OVER (ORDER BY v1) FROM v0, v0 LIMIT 37 OFFSET 62) = 8 statement ok @@ -423,15 +423,15 @@ DROP TABLE v0 -- SELECT ALL ( SELECT - - - - - - - - - - 48 FROM ( SELECT NULL - - - - - - - - 89 FROM ( VALUES ( - - - - - - - - - - 74 ) , ( - - - - - 128 ) , ( - - - - - - 8 ) , ( - - - - 61 ) ) AS v1 ( v1 ) GROUP BY ( ) , GROUPING SETS ( GROUPING SETS ( GROUPING SETS ( ( ) ) ) ) , ( ) ORDER BY - - - - - - - - - - 255 LIKE v1 / CASE WHEN v1 IS NULL THEN - - 75 END DESC , v1 , v1 LIMIT 63 ) AS v1 UNION SELECT - - - - - - - - - - - - - 74 WHERE - v1 < - 89088397.000000 ) FROM ( SELECT * FROM ( VALUES ( - - - - - - - 61 ) , ( - - - 42 ) ) AS v1 ( v1 ) ) AS v1 ( v1 ) -- sql/server/rel_select.c:4614: rel_groupings: Assertion `next_set' failed. --- -- 30.sql --- statement ok --- CREATE TABLE v0(v2 DOUBLE PRIMARY KEY, v1 VARCHAR(1)) +-- 30.sql +statement ok +CREATE TABLE v0(v2 DOUBLE PRIMARY KEY, v1 VARCHAR(1)) --- statement ok --- DELETE FROM v0 WHERE (SELECT v2 FROM v0 WHERE v0.v2 = v0.v1 GROUP BY 2.100000, v1) IN (10.100000, 10, 10 ) +statement ok +DELETE FROM v0 WHERE (SELECT v2 FROM v0 WHERE v0.v2 = v0.v1 GROUP BY 2.100000, v1) IN (10.100000, 10, 10 ) --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- 31.sql statement error 22003!overflow ... 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 @@ -25,3 +25,6 @@ concat_order-7455 order-by-false-or-false-Bug-7456 constant-expression-issue-7457 sign-issue-7458 +unicode-escape-7461 +exp-bin-Bug-7462 +contains-cast-7463 diff --git a/sql/test/BugTracker-2024/Tests/contains-cast-7463.test b/sql/test/BugTracker-2024/Tests/contains-cast-7463.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2024/Tests/contains-cast-7463.test @@ -0,0 +1,45 @@ +statement ok +CREATE TABLE t0(c0 INT, c1 INT) + +statement ok +INSERT INTO t0 (c0) VALUES (0) + +statement ok +INSERT INTO t0 (c0, c1) VALUES (1, 1) + +query II +SELECT * FROM t0 +---- +0 +NULL +1 +1 + +query IIT +SELECT t0.c0, CONTAINS(0, t0.c0), CAST(CONTAINS(0, t0.c0) AS VARCHAR) FROM t0 +---- +0 +1 +true +1 +0 +false + +query I +SELECT (t0.c1)AND(CAST(CONTAINS(0, t0.c0) AS VARCHAR)) FROM t0 +---- +NULL +0 + +query II +SELECT * FROM t0 WHERE ((t0.c1)AND(CAST(CONTAINS(0, t0.c0) AS VARCHAR))) +----- + +query II +SELECT * FROM t0 WHERE (NOT ((t0.c1)AND(CAST(CONTAINS(0, t0.c0) AS VARCHAR)))) +---- +1 +1 + +statement ok +DROP TABLE t0 diff --git a/sql/test/BugTracker-2024/Tests/exp-bin-Bug-7462.test b/sql/test/BugTracker-2024/Tests/exp-bin-Bug-7462.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2024/Tests/exp-bin-Bug-7462.test @@ -0,0 +1,23 @@ +statement ok +CREATE TABLE t0(c0 VARCHAR(500), c1 VARCHAR(500)) + +statement ok +INSERT INTO t0(c1) VALUES ('a') + +query TTI +SELECT t0.c1, t0.c0, (((t0.c1 BETWEEN -1 AND 1))OR((t0.c1 BETWEEN -1 AND ('b' IN (t0.c1, t0.c0))))) FROM t0 +---- +a +NULL +NULL + + +-- next query fails in: sql/backends/monet5/rel_bin.c:1680: exp_bin: Assertion `s' failed. +-- with assertion disabled it fails to return a result set +query TT +SELECT t0.c1, t0.c0 FROM t0 WHERE (((t0.c1 BETWEEN -1 AND 1))OR((t0.c1 BETWEEN -1 AND ('b' IN (t0.c1, t0.c0))))) +---- + + +statement ok +DROP TABLE t0 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 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: 'clob' 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