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]