Changeset: e85e3162bcb6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e85e3162bcb6
Modified Files:
        sql/server/rel_select.c
        sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
Branch: Jun2023
Log Message:

Fix 7390/{12,16,19,21,26}.sql + add missing tests. Commented lines are not 
fixed yet.


diffs (truncated from 431 to 300 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
@@ -5073,7 +5073,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
@@ -1,6 +1,3 @@
-statement ok
-drop table if exists v0
-
 -- 01.sql
 statement ok
 CREATE TABLE v0 (v1 SMALLINT)
@@ -12,7 +9,7 @@ statement ok
 SELECT NULL, v1 FROM v0 v0 ORDER BY v1+v1, v1, -1 LIMIT 2147483645
 
 statement ok
-drop table v0
+DROP TABLE v0
 
 -- 02.sql
 statement ok
@@ -22,8 +19,9 @@ query TTI
 SELECT DISTINCT v1 v1, v1, abs(v1)=10 FROM v0 WHERE lower (v1) IS NOT NULL
 ----
 
+
 statement ok
-drop table v0
+DROP TABLE v0
 
 -- 03.sql
 statement ok
@@ -47,7 +45,7 @@ 1
 .125e+3
 
 statement ok
-drop view v0
+DROP VIEW v0
 
 -- 04.sql
 statement ok
@@ -77,7 +75,7 @@ 122500
 5
 
 statement ok
-drop table v0;
+DROP TABLE v0;
 
 -- 05.sql
 statement ok
@@ -106,21 +104,18 @@ SELECT distinct FIRST_VALUE ( v1 ) OVER 
 10
 
 statement ok
-drop table v0
+DROP TABLE v0
 
 -- 06.sql
 statement error HY013!Could not allocate space
 CREATE TEMP TABLE Table0 (Col0 INT, PRIMARY KEY(Col0), FOREIGN KEY (Col0) 
REFERENCES Table0)
 
-statement ok
-drop table if exists Table0
-
 -- 07.sql
 statement ok
 CREATE VIEW v0 AS SELECT CAST (NULL AS INT) EXCEPT SELECT CAST (NULL AS INT) 
GROUP BY NULL
 
 statement ok
-drop view if exists v0
+DROP VIEW v0
 
 -- 08.sql
 statement ok
@@ -144,7 +139,7 @@ statement ok
 SELECT v1, row_number() OVER (ORDER BY v1 * 3 NULLS LAST, NULL*0 DESC NULLS 
FIRST), 3 FROM v0 LIMIT 300000
 
 statement ok
-drop table v0
+DROP TABLE v0
 
 -- 09.sql
 statement ok
@@ -160,8 +155,9 @@ query IR
 SELECT * FROM v0 ORDER BY (SELECT -1)
 ----
 
+
 statement ok
-drop table v0
+DROP TABLE v0
 
 -- 10.sql
 statement ok
@@ -184,3 +180,326 @@ UPDATE v0 SET v1 = v1 * 73 WHERE v1 = (S
 
 statement ok
 DROP TABLE v0
+
+-- 12.sql
+statement ok
+CREATE TABLE v0 (v1 VARCHAR(255) NULL)
+
+statement ok
+INSERT INTO v0 (v1) VALUES (2),(10),(99),(1.100000),(3)
+
+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
+
+-- 13.sql
+-- statement ok
+-- CREATE TABLE v0 (v1 SMALLINT)
+
+-- statement ok
+-- UPDATE v0 SET v1 = CASE WHEN v1 > 37 THEN (SELECT ALL AVG (v1) AS v2 FROM 
(SELECT SUM(v1) OVER (ORDER BY v1 RANGE BETWEEN UNBOUNDED PRECEDING AND 
UNBOUNDED FOLLOWING)) AS v3 WHERE v1 = v1 AND v1 = v1) / 99 ELSE 8 END ^ 16 + 1 
^ -32768
+
+-- statement ok
+-- DROP TABLE v0
+
+-- -- 14.sql
+-- statement ok
+-- CREATE TABLE v0(v1 INT)
+
+-- statement ok
+-- INSERT INTO v0 VALUES (-1),(NULL),(57),(NULL),(NULL)
+
+-- statement ok
+-- UPDATE v0 SET v1 = v1 % (WITH v0 (v1) AS (SELECT -2147483648 WHERE (v1 < -1 
OR v1 = 37 % 127) AND v1 - 85 = 45 AND v1 IS NOT NULL) SELECT DISTINCT -1 FROM 
v0) + v1;
+
+-- statement ok
+-- DROP TABLE v0
+
+-- -- 15.sql
+-- statement ok
+-- CREATE TABLE v0(v1 SMALLINT)
+
+-- statement ok
+-- UPDATE v0 SET v1 = v1 <= (WITH v0 (v1) AS (SELECT (CASE WHEN 59 THEN (0 * 
(('x' < v1 = 255 > v1 - v1))) END)) SELECT v1 > 16 OR v1 > 2147483647 AND v1 >= 
27 AS v4 FROM v0 ORDER BY v1 > v1 % v1 % (v1) NULLS LAST) OR v1 > -1
+
+-- statement ok
+-- DROP TABLE v0
+
+-- -- 16.sql
+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 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
+
+-- 17.sql
+-- statement ok
+-- CREATE TABLE v0(v1 INT)
+
+-- statement ok
+-- 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
+-- DROP TABLE v0
+
+-- -- 18.sql
+-- statement ok
+-- CREATE TABLE v0(v1 NUMERIC)
+
+-- statement ok
+-- UPDATE v0 SET v1 = (WITH v0 (v1) AS (SELECT 127 WHERE (v1 < 2147483647 OR 
v1 > -1) AND v1 / v1 + v1 <= 95 = v1 >= -128 + 15) SELECT 38 FROM v0 AS v3 
WINDOW v2 AS ( ), v4 AS (GROUPS BETWEEN -32768 PRECEDING AND 94 FOLLOWING) 
LIMIT 16 OFFSET 8) ^ v1
+
+-- statement ok
+-- DROP TABLE v0
+
+-- 19.sql
+statement ok
+CREATE TABLE v0(v1 BIGINT)
+
+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
+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
+
+-- -- 20.sql
+-- statement ok
+-- CREATE TABLE v0(v1 REAL PRIMARY KEY)
+
+-- statement ok
+-- SELECT (SELECT COUNT(v1) OVER ( ) FROM SUM (STDDEV_POP(MIN ('x')))) AS v2 
FROM v0 WHERE v1 = -1
+
+-- statement ok
+-- DROP TABLE v0
+
+-- 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
+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 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
+
+-- 22.sql
+statement ok
+CREATE TABLE v0(v1 SMALLINT)
+
+statement error 42000!PARTITION BY: subqueries not allowed in PARTITION BY 
clause
+UPDATE v0 SET v1 = (SELECT LAG(v1 * v1) OVER (PARTITION BY 0 ,(NOT EXISTS 
(SELECT v1 WHERE v1 = FALSE)), v1, 255))
+
+statement ok
+DROP TABLE v0
+
+-- -- 23.sql
+-- statement ok
+-- CREATE TABLE v0 (v1 INTEGER PRIMARY KEY)
+
+-- statement ok
+-- UPDATE v0 SET v1 = -128 WHERE v1 = 1 AND v1 IN (WITH v0 AS (SELECT v1 * (95 
- v1) FROM v0 ORDER BY v1, v1 DESC, ('x' < v1 AND v1 = 24)) SELECT 67 + 0 + -1 
+ 96 + 46463082.000000 + 30 AS v2 FROM v0 WHERE 255 = v1 LIMIT 66 OFFSET 16) OR 
(69 AND 30) OR ('x' >= 9)
+
+-- statement ok
+-- DROP TABLE v0
+
+-- -- 24.sql
+-- statement ok
+-- CREATE TABLE v0(v1 FLOAT)
+
+-- statement ok
+-- INSERT INTO v0 VALUES (0),(67),(127),(-1),(NULL),(NULL),(NULL),(NULL)
+
+-- statement ok
+-- WITH v0 AS (SELECT 14, * FROM v0) INSERT INTO v0 SELECT v1 * 0 FROM v0 
NATURAL JOIN v0, v0, v0 AS v2, v0, v0 AS v3 ORDER BY v1 * 0 / 77
+
+-- statement ok
+-- SELECT * , 'x' FROM v0 WHERE (SELECT 39 WHERE (v1 + -32768 NOT IN (14, 
255))) * 87 + 2147483647
+
+-- statement ok
+-- DROP TABLE v0
+
+-- -- 25.sql
+-- statement ok
+-- CREATE TABLE IF NOT EXISTS v0(v1 INTEGER)
+
+-- statement ok
+-- UPDATE v0 AS v9 SET v1 = (WITH v0 (v1) AS (SELECT v1 % (12 ^ 55 + v1 + 
57159072.000000)) SELECT NULL AS v8 WINDOW v7 AS (PARTITION BY 8, 95, 
92150085.000000, 57) ORDER BY v1, v1 DESC NULLS LAST)
+
+-- statement ok
+-- DROP TABLE v0
+
+-- 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
+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 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
+
+-- -- 27.sql
+-- statement ok
+-- CREATE TABLE v0(v1 SMALLINT PRIMARY KEY)
+
+-- statement ok
+-- INSERT INTO v0 VALUES ('x' IN (SELECT - SUM(18) OVER ( ) * 8 AS v2)), 
(-128), (34), (39)
+
+-- -- 28.sql
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to