Changeset: 2c28798e2cec for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2c28798e2cec
Modified Files:
        sql/server/rel_exp.c
        sql/server/rel_select.c
        sql/test/BugTracker-2025/Tests/All
Branch: default
Log Message:

merged with march205


diffs (65 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -823,8 +823,6 @@ exp_ref(mvc *sql, sql_exp *e)
        sql_exp *ne = exp_propagate(sql->sa, exp_column(sql->sa, 
exp_relname(e), exp_name(e), exp_subtype(e), exp_card(e), has_nil(e), 
is_unique(e), is_intern(e)), e);
        if (ne) {
                ne->nid = e->alias.label;
-               assert(ne->nid);
-               assert(!ne->nid || ne->alias.name);
                ne->alias.label = ne->nid;
        }
        return ne;
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
@@ -2410,7 +2410,7 @@ rel_in_exp(sql_query *query, sql_rel *re
                int r_is_atoms = rlist ? exps_are_atoms(e->r) : 
exp_is_atom(e->r);
                int r_has_freevar = rlist ? exps_have_freevar(sql, e->r) : 
exp_has_freevar(sql, e->r);
 
-               if (rcard <= CARD_ATOM && (r_is_atoms || r_has_freevar || 
exp_has_freevar(sql, ls))) {
+               if ((rcard <= CARD_ATOM && r_is_atoms) || r_has_freevar || 
exp_has_freevar(sql, ls)) {
                        if ((exp_card(ls) == rcard) || rel->processed) /* bin 
compare op */
                                return rel_select(sql->sa, rel, e);
 
diff --git a/sql/test/BugTracker-2025/Tests/7644_antijoin_crash.test 
b/sql/test/BugTracker-2025/Tests/7644_antijoin_crash.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7644_antijoin_crash.test
@@ -0,0 +1,15 @@
+statement ok
+CREATE TABLE database0_t2(c0 DOUBLE)
+
+statement ok
+CREATE TABLE database0_t4(c0 DOUBLE)
+
+statement ok
+INSERT INTO database0_t2 VALUES(1.0)
+
+statement ok
+INSERT INTO database0_t4 VALUES(1.0)
+
+query I
+SELECT * FROM database0_t2 WHERE NOT EXISTS(SELECT 1 FROM database0_t4 WHERE 
(database0_t2.c0) IN (database0_t4.c0, database0_t2.c0))
+----
diff --git a/sql/test/BugTracker-2025/Tests/7646_leftjoin_crash.test 
b/sql/test/BugTracker-2025/Tests/7646_leftjoin_crash.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7646_leftjoin_crash.test
@@ -0,0 +1,7 @@
+statement ok
+CREATE TABLE t1(c0 INT)
+
+query II
+SELECT * FROM t1 LEFT JOIN (SELECT 1) ON EXISTS (SELECT (VALUES (1)));
+----
+
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
@@ -12,3 +12,5 @@ 7633-crash-leftjoin-any
 7634_join_with_subquery_crash
 7635_name_propagation_missing
 7636_antijoin_crash
+7644_antijoin_crash
+7646_leftjoin_crash
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to