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

Reply via email to