Changeset: 20575938a64a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/20575938a64a
Modified Files:
        sql/server/rel_exp.c
        sql/server/rel_select.c
Branch: nested
Log Message:

merged with default


diffs (93 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
@@ -879,8 +879,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
@@ -1708,7 +1708,8 @@ set_dependent_( sql_rel *r)
 }
 
 static sql_rel*
-find_union(visitor *v, sql_rel *rel) {
+find_union(visitor *v, sql_rel *rel)
+{
        if (rel->op == op_munion)
                v->data = rel;
        return rel;
@@ -2666,7 +2667,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);
 
@@ -2973,17 +2974,6 @@ rel_logical_value_exp(sql_query *query, 
        case SQL_IS_NOT_NULL:
        /* is (NOT) NULL */
        {
-               /*
-               sql_exp *le = rel_value_exp(query, rel, sc->data.sym, 
f|sql_farg, ek);
-
-               if (!le)
-                       return NULL;
-               le = rel_unop_(sql, rel ? *rel : NULL, le, "sys", sc->token == 
SQL_IS_NULL ? "isnull" : "isnotnull", card_value);
-               if (!le)
-                       return NULL;
-               set_has_no_nil(le);
-               return le;
-               */
                sql_exp *le = rel_value_exp(query, rel, sc->data.sym, 
f|sql_farg, ek);
                sql_subtype *t;
 
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