Changeset: 7a0f46ef26fb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7a0f46ef26fb
Modified Files:
sql/server/rel_select.c
sql/test/BugTracker-2023/Tests/misc-crashes-7390.test
sql/test/BugTracker-2024/Tests/exp_equal-Bug-7475.test
sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test
Branch: default
Log Message:
restrict aliases, ie should be unique on both ends of the join
diffs (82 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
@@ -5978,6 +5978,9 @@ rel_joinquery_(sql_query *query, symbol
return NULL;
query_processed(query);
+ if (strcmp(rel_name(t1), rel_name(t2)) == 0) {
+ return sql_error(sql, 02, SQLSTATE(42000) "SELECT: ERROR:
table name '%s' specified more than once", rel_name(t1));
+ }
inner = rel = rel_crossproduct(sql->sa, t1, t2, op);
if (!rel)
return NULL;
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
@@ -363,18 +363,18 @@ x
-- 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
-WITH v0 AS (SELECT 14, * FROM v0) INSERT INTO v0 SELECT v0.v1 * 0 FROM v0
NATURAL JOIN v0, v0, v0 AS v2, v0, v0 AS v3 ORDER BY v0.v1 * 0 / 77
+WITH v0 AS (SELECT 14, * FROM v0) INSERT INTO v0 SELECT v0.v1 * 0 FROM v0
NATURAL JOIN v0 v, v0 as v1, v0 AS v2, v0 as v3, v0 AS v4 ORDER BY v0.v1 * 0 /
77
query I nosort
SELECT count(*) FROM v0
----
-131080
+16392
-- after the second insert, rerun same query as above, since it used to crash
the server
query RT rowsort
SELECT * , 'x' FROM v0 WHERE (SELECT 39 WHERE (v1 + -32768 NOT IN (14, 255)))
* 87 + 2147483647
----
-131080 values hashing to c051bd7cdccd1fd3636c9e0973aca08e
+32776 values hashing to b2c71832cf3b6b1cb7d9db5b58419143
-- mul_bte_bte_bte: ERROR: 22003!overflow in calculation 87*39.
diff --git a/sql/test/BugTracker-2024/Tests/exp_equal-Bug-7475.test
b/sql/test/BugTracker-2024/Tests/exp_equal-Bug-7475.test
--- a/sql/test/BugTracker-2024/Tests/exp_equal-Bug-7475.test
+++ b/sql/test/BugTracker-2024/Tests/exp_equal-Bug-7475.test
@@ -5,7 +5,7 @@ 1
1
query II nosort
-WITH x AS ( SELECT 1 x ) SELECT 1 , ( SELECT x FROM x ) FROM ( x NATURAL JOIN
x ) WHERE x
+WITH x AS ( SELECT 1 x ) SELECT 1 , ( SELECT x FROM x ) FROM ( x NATURAL JOIN
x y ) WHERE x
----
1
1
@@ -18,14 +18,14 @@ 1
1
query II nosort
-SELECT * FROM ( WITH x AS ( SELECT 1 x ) SELECT 1 , x FROM ( x NATURAL JOIN x
) WHERE x ) y
+SELECT * FROM ( WITH x AS ( SELECT 1 x ) SELECT 1 , x FROM ( x NATURAL JOIN x
y ) WHERE x ) y
----
1
1
skipif knownfail
query II nosort
-SELECT * FROM ( WITH x AS ( SELECT 1 x ) SELECT 1 , ( SELECT x FROM x ) FROM (
x NATURAL JOIN x ) WHERE x ) y
+SELECT * FROM ( WITH x AS ( SELECT 1 x ) SELECT 1 , ( SELECT x FROM x ) FROM (
x NATURAL JOIN x y ) WHERE x ) y
----
1
1
diff --git a/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test
b/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test
--- a/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test
+++ b/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test
@@ -1,9 +1,9 @@
query I nosort
-SELECT ( WITH x AS ( SELECT 1 x ) SELECT 1 FROM ( x NATURAL JOIN x ) WHERE x
NOT IN ( SELECT CASE WHEN x THEN ( SELECT 1 ) END GROUP BY 1 ) )
+SELECT ( WITH x AS ( SELECT 1 x ) SELECT 1 FROM ( x NATURAL JOIN x as y )
WHERE x NOT IN ( SELECT CASE WHEN x THEN ( SELECT 1 ) END GROUP BY 1 ) )
----
NULL
query I nosort
-SELECT ( WITH x AS ( SELECT 1 x ) SELECT 1 FROM ( x NATURAL JOIN x ) WHERE x
NOT IN ( SELECT CASE WHEN x THEN ( SELECT 1 ) END GROUP BY ( SELECT 1 ) ) )
+SELECT ( WITH x AS ( SELECT 1 x ) SELECT 1 FROM ( x NATURAL JOIN x as y )
WHERE x NOT IN ( SELECT CASE WHEN x THEN ( SELECT 1 ) END GROUP BY ( SELECT 1 )
) )
----
NULL
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]