Changeset: 537ebd308bd3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/537ebd308bd3
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
sql/server/rel_unnest.c
sql/test/BugTracker-2025/Tests/All
Branch: Dec2025
Log Message:
Merge with Mar2025 branch.
diffs (81 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -3633,7 +3633,8 @@ rel2bin_antijoin(backend *be, sql_rel *r
if (!li)
li = ls;
- if (!en->next && (constval || stmt_has_null(ls) /*||
stmt_has_null(rs) (change into check for fk)*/)) {
+ if (!en->next && !is_anti(e) && e->flag != cmp_notequal
&&
+ (constval || stmt_has_null(ls))) {
join = stmt_tdiff2(be, ls, rs, NULL,
is_semantics(e), is_any(e));
jexps = NULL;
} else {
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
@@ -828,6 +828,8 @@ 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;
+ if (!ne->nid)
+ ne->nid = exp_get_label(e);
ne->alias.label = ne->nid;
}
return ne;
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -3552,7 +3552,11 @@ rewrite_compare(visitor *v, sql_rel *rel
}
if (quantifier) {
sql_subfunc *a;
-
+ if (rsq == NULL) {
+ rsq = rel_project(v->sql->sa,
NULL, sa_list(v->sql->sa));
+ append(rsq->exps, re);
+ re = exp_ref(v->sql, re);
+ }
rsq = rel_groupby(v->sql, rsq, NULL);
a = sql_bind_func(v->sql, "sys",
"null", exp_subtype(re), NULL, F_AGGR, true, true);
rnull = exp_aggr1(v->sql->sa, re, a, 0,
1, CARD_AGGR, has_nil(re));
diff --git a/sql/test/BugTracker-2025/Tests/7725-crash-find-rel-ref.test
b/sql/test/BugTracker-2025/Tests/7725-crash-find-rel-ref.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7725-crash-find-rel-ref.test
@@ -0,0 +1,6 @@
+statement error 22018!conversion of string 'EUROPE' to type bte failed.
+SELECT ( WITH x ( x ) AS ( SELECT DISTINCT 1 ) SELECT ( SELECT x FROM x WHERE
x = ( SELECT ( SELECT x FROM x WHERE EXISTS ( SELECT - x , x FROM x ) ) WHERE (
WITH x AS ( SELECT * FROM generate_series ( 8888 , 8100 ) EXCEPT SELECT * FROM
generate_series ( 44 , 3 ) ) SELECT 2 WHERE FALSE ) > ANY ( 'EUROPE' ) GROUP BY
1 ) ) FROM x )
+
+statement ok
+SELECT (SELECT * FROM (select 1))
+GROUP BY 1;
diff --git a/sql/test/BugTracker-2025/Tests/7745-antijoin-bad-mal-gen.test
b/sql/test/BugTracker-2025/Tests/7745-antijoin-bad-mal-gen.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7745-antijoin-bad-mal-gen.test
@@ -0,0 +1,15 @@
+statement ok
+CREATE TABLE t0(c1 INT)
+
+statement ok
+CREATE TABLE t1(c1 INT)
+
+statement ok
+INSERT INTO t1(c1) VALUES (1)
+
+statement ok
+INSERT INTO t0(c1) VALUES (-10)
+
+query I
+SELECT * FROM t1 WHERE NOT EXISTS (SELECT 1 FROM t0 WHERE ((t1.c1)!=(t0.c1)));
+----
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
@@ -76,3 +76,5 @@ 7741_missing_rel_name
7744_opt_null_in_where
7748-update-returning-subquery-crash
7753-like-in-projection
+7725-crash-find-rel-ref
+7745-antijoin-bad-mal-gen
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]