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 -- [email protected]
To unsubscribe send an email to [email protected]