Changeset: ff759944d28b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ff759944d28b Modified Files: sql/server/rel_select.c sql/test/BugTracker-2023/Tests/misc-crashes-7390.test Branch: Dec2023 Log Message:
Merge with Jun2023 branch. diffs (172 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -5255,7 +5255,7 @@ rel_rankop(sql_query *query, sql_rel **r if (frame_type == FRAME_RANGE) ie = obe ? (sql_exp*) obe->t->data : in; else - ie = oe; + ie = obe ? oe : in; } assert(oe && pe); 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 @@ -182,19 +182,19 @@ statement ok DROP TABLE v0 -- 12.sql --- statement ok --- CREATE TABLE v0 (v1 VARCHAR(255) NULL) +statement ok +CREATE TABLE v0 (v1 VARCHAR(255) NULL) --- statement ok --- INSERT INTO v0 (v1) VALUES (2),(10),(99),(1.100000),(3) +statement ok +INSERT INTO v0 (v1) VALUES (2),(10),(99),(1.100000),(3) --- statement ok --- UPDATE v0 SET v1 = (SELECT MIN(v1) OVER (ROWS 10 PRECEDING) WHERE (10 = v1 OR v1 = ((3 - 10.100000))) AND 3 NOT LIKE v1); +statement error 22018!conversion of string to type bte failed. +UPDATE v0 SET v1 = (SELECT MIN(v1) OVER (ROWS 10 PRECEDING) WHERE (10 = v1 OR v1 = ((3 - 10.100000))) AND 3 NOT LIKE v1); --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 --- -- 13.sql +-- 13.sql -- statement ok -- CREATE TABLE v0 (v1 SMALLINT) @@ -228,19 +228,19 @@ DROP TABLE v0 -- DROP TABLE v0 -- -- 16.sql --- statement ok --- CREATE TABLE v0(v1 FLOAT) +statement ok +CREATE TABLE v0(v1 FLOAT) --- statement ok --- INSERT INTO v0 VALUES (82),((SELECT 0 FROM v0 AS v2 GROUP BY (SELECT -128))),(15255709.000000),(12) +statement ok +INSERT INTO v0 VALUES (82),((SELECT 0 FROM v0 AS v2 GROUP BY (SELECT -128))),(15255709.000000),(12) --- statement ok --- SELECT v1 = 2147483647 - v1 ^ v1 AS v4 FROM v0 AS v3, v0, v0 AS v6,v0 AS v5, v0 AS v7 ORDER BY 35 >= (SELECT VAR_SAMP(v1 >= 72 ) OVER (ROWS BETWEEN v1 + -128 * -32768 PRECEDING AND CURRENT ROW) IS NOT NULL) ASC +statement error 42000!row frame bound must be non negative and non null. +SELECT v1 = 2147483647 - v1 ^ v1 AS v4 FROM v0 AS v3, v0, v0 AS v6,v0 AS v5, v0 AS v7 ORDER BY 35 >= (SELECT VAR_SAMP(v1 >= 72 ) OVER (ROWS BETWEEN v1 + -128 * -32768 PRECEDING AND CURRENT ROW) IS NOT NULL) ASC --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 --- -- 17.sql +-- 17.sql -- statement ok -- CREATE TABLE v0(v1 INT) @@ -260,21 +260,21 @@ DROP TABLE v0 -- statement ok -- DROP TABLE v0 --- -- 19.sql --- statement ok --- CREATE TABLE v0(v1 BIGINT) +-- 19.sql +statement ok +CREATE TABLE v0(v1 BIGINT) --- statement ok --- INSERT INTO v0 VALUES (16),(22),(-128),(60),(76),(127),(89) +statement ok +INSERT INTO v0 VALUES (16),(22),(-128),(60),(76),(127),(89) --- statement ok --- WITH v0 AS (SELECT -1, * FROM v0) INSERT INTO v0 SELECT v1 * 255 FROM v0 AS v5, v0, v0 AS v4, v0 AS v3, v0 AS v2 ORDER BY v1 * -128 ^ -1 +statement ok +WITH v0 AS (SELECT -1, * FROM v0) INSERT INTO v0 SELECT v1 * 255 FROM v0 AS v5, v0, v0 AS v4, v0 AS v3, v0 AS v2 ORDER BY v1 * -128 ^ -1 --- statement ok --- UPDATE v0 SET v1 = 59 % v1 WHERE (WITH v0 (v1) AS (SELECT ('x' + 95) ORDER BY - (v1), v1) SELECT STDDEV_POP(v1) OVER (ROWS BETWEEN v1 IS NOT NULL PRECEDING AND 89 FOLLOWING) IS NOT NULL) + 0 % v1 % 46 + 45 * v1 +statement ok +UPDATE v0 SET v1 = 59 % v1 WHERE (WITH v0 (v1) AS (SELECT ('x' + 95) ORDER BY - (v1), v1) SELECT STDDEV_POP(v1) OVER (ROWS BETWEEN v1 IS NOT NULL PRECEDING AND 89 FOLLOWING) IS NOT NULL) + 0 % v1 % 46 + 45 * v1 --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- -- 20.sql -- statement ok @@ -286,21 +286,21 @@ DROP TABLE v0 -- statement ok -- DROP TABLE v0 --- -- 21.sql --- statement ok --- CREATE TABLE v0(v1 BIGINT) +-- 21.sql +statement ok +CREATE TABLE v0(v1 BIGINT) --- statement ok --- INSERT INTO v0 VALUES (13),(53),(-1),(13),(54),((SELECT v1 FROM v0 WHERE v1 IS NULL AND v1 IN (7 ^ v1))),(72),(2147483647) +statement ok +INSERT INTO v0 VALUES (13),(53),(-1),(13),(54),((SELECT v1 FROM v0 WHERE v1 IS NULL AND v1 IN (7 ^ v1))),(72),(2147483647) --- statement ok --- WITH v0 AS (SELECT 2147483647, * FROM v0) INSERT INTO v0 SELECT v1 * -32768 FROM v0 AS v2,v0,v0 AS v5,v0 AS v3,v0 AS v4 ORDER BY v1 * 127 ^ -1 +statement ok +WITH v0 AS (SELECT 2147483647, * FROM v0) INSERT INTO v0 SELECT v1 * -32768 FROM v0 AS v2,v0,v0 AS v5,v0 AS v3,v0 AS v4 ORDER BY v1 * 127 ^ -1 --- statement ok --- UPDATE v0 SET v1 = -128 % v1 WHERE (WITH v0 (v1) AS (SELECT 8 WHERE (v1 < -1 OR v1 > 40) AND 80 ^ 0 % v1 <= 75 = 127 AND v1 IS NOT NULL) SELECT VAR_POP((52 * (v1 IN (127,47)))) OVER (ROWS BETWEEN CURRENT ROW AND v1 - NULL FOLLOWING) * -32768) > v1 +statement error 42000!row frame bound must be non negative and non null. +UPDATE v0 SET v1 = -128 % v1 WHERE (WITH v0 (v1) AS (SELECT 8 WHERE (v1 < -1 OR v1 > 40) AND 80 ^ 0 % v1 <= 75 = 127 AND v1 IS NOT NULL) SELECT VAR_POP((52 * (v1 IN (127,47)))) OVER (ROWS BETWEEN CURRENT ROW AND v1 - NULL FOLLOWING) * -32768) > v1 --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- 22.sql statement ok @@ -348,21 +348,21 @@ DROP TABLE v0 -- statement ok -- DROP TABLE v0 --- -- 26.sql --- statement ok --- CREATE TABLE v0(v1 BIGINT NOT NULL) +-- 26.sql +statement ok +CREATE TABLE v0(v1 BIGINT NOT NULL) --- statement ok --- INSERT INTO v0 VALUES (-1),(127),(4),(-128),(11),(-1),(-128),(-128),(-1) +statement ok +INSERT INTO v0 VALUES (-1),(127),(4),(-128),(11),(-1),(-128),(-128),(-1) --- statement ok --- WITH v0 AS (SELECT -1, * FROM v0) INSERT INTO v0 SELECT v1 * 29 FROM v0 AS v3, v0, v0 AS v2, v0 AS v4, v0 ORDER BY v1 * 0 ^ 83 +statement ok +WITH v0 AS (SELECT -1, * FROM v0) INSERT INTO v0 SELECT v1 * 29 FROM v0 AS v3, v0, v0 AS v2, v0 AS v4, v0 ORDER BY v1 * 0 ^ 83 --- statement ok --- UPDATE v0 SET v1 = -1 WHERE CASE WHEN v1 > -1 THEN (SELECT STDDEV_SAMP((18 * v1 + (v1 IN (21 , -1)))) OVER (ROWS BETWEEN CURRENT ROW AND v1 - NULL FOLLOWING) * 17) > v1 / (SELECT -1 WHERE (88 IN (96))) ELSE 82 END ^ -128 ^ v1 +statement error 42000!row frame bound must be non negative and non null. +UPDATE v0 SET v1 = -1 WHERE CASE WHEN v1 > -1 THEN (SELECT STDDEV_SAMP((18 * v1 + (v1 IN (21 , -1)))) OVER (ROWS BETWEEN CURRENT ROW AND v1 - NULL FOLLOWING) * 17) > v1 / (SELECT -1 WHERE (88 IN (96))) ELSE 82 END ^ -128 ^ v1 --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- -- 27.sql -- statement ok _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org