Changeset: 250b0a2fd796 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/250b0a2fd796
Added Files:
sql/test/BugTracker-2025/Tests/7634_join_with_subquery_crash.test
Modified Files:
sql/server/rel_select.c
sql/test/BugTracker-2025/Tests/All
Branch: default
Log Message:
Rel names are not mandatory so check if they exist before cmp. Fix #7634
diffs (45 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
@@ -6194,9 +6194,11 @@ 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));
- }
+
+ const char *t1_name = rel_name(t1), *t2_name = rel_name(t2);
+ if (t1_name && t2_name && strcmp(t1_name, t2_name) == 0)
+ return sql_error(sql, 02, "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-2025/Tests/7634_join_with_subquery_crash.test
b/sql/test/BugTracker-2025/Tests/7634_join_with_subquery_crash.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7634_join_with_subquery_crash.test
@@ -0,0 +1,14 @@
+statement ok
+CREATE TABLE t0(c0 INT)
+
+statement ok
+INSERT INTO t0 VALUES (1)
+
+statement ok
+SELECT * FROM t0,(SELECT 1)
+
+statement ok
+SELECT * FROM t0 CROSS JOIN (SELECT 1)
+
+statement ok
+SELECT * FROM t0 CROSS JOIN (SELECT 1) a
diff --git a/sql/test/BugTracker-2025/Tests/All
b/sql/test/BugTracker-2025/Tests/All
--- a/sql/test/BugTracker-2025/Tests/All
+++ b/sql/test/BugTracker-2025/Tests/All
@@ -8,3 +8,4 @@ 7625_missing_temporary_view_types
7626_sum_max_const
7632-crash-leftjoin-exists
7633-crash-leftjoin-any
+7634_join_with_subquery_crash
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]