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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to