Changeset: e86e386644db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e86e386644db
Branch: default
Log Message:

merged


diffs (57 lines):

diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -2155,7 +2155,7 @@ ngrams_create(size_t cnt, size_t ng_sz)
                ng->sigs = GDKmalloc(cnt * sizeof(NGRAM_TYPE));
                ng->histogram = GDKmalloc(ng_sz * sizeof(unsigned));
                ng->lists = GDKmalloc(ng_sz * sizeof(unsigned));
-               ng->rids = GDKmalloc(NGRAM_MULTIPLE * cnt * sizeof(unsigned));
+               ng->rids = GDKmalloc(2 * NGRAM_MULTIPLE * cnt * 
sizeof(unsigned));
        }
        if (!ng || !ng->idx || !ng->sigs || !ng->histogram || !ng->lists || 
!ng->rids) {
                ngrams_destroy(ng);
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]

Reply via email to