Changeset: 91b06dcae189 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/91b06dcae189
Modified Files:
        sql/server/rel_distribute.c
        sql/server/rel_rewriter.c
Branch: nested
Log Message:

merged with default


diffs (99 lines):

diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c
--- a/sql/server/rel_distribute.c
+++ b/sql/server/rel_distribute.c
@@ -128,6 +128,7 @@ do_replica_rewrite(mvc *sql, list *exps,
                sql_exp *ne = m->data;
 
                exp_prop_alias(sql->sa, ne, e);
+               ne->nid = e->nid;
        }
        list_hash_clear(r->exps); /* the child table may have different column 
names, so clear the hash */
 
diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -217,14 +217,19 @@ rewrite_simplify_exp(visitor *v, sql_rel
        }
        if (is_compare(e->type) && e->flag == cmp_equal && !is_semantics(e)) { 
/* predicate_func = TRUE */
                sql_exp *l = e->l, *r = e->r;
-               if (is_func(l->type) && exp_is_true(r) && 
(is_anyequal_func(((sql_subfunc*)l->f)) || 
is_exists_func(((sql_subfunc*)l->f))))
+               if (is_func(l->type) && exp_is_true(r) && 
(is_anyequal_func(((sql_subfunc*)l->f)) || 
is_exists_func(((sql_subfunc*)l->f)))) {
+                       if (exp_name(e))
+                               exp_prop_alias(v->sql->sa, l, e);
                        return l;
+               }
                if (is_func(l->type) && exp_is_false(r) && exp_is_not_null(r) 
&& (is_anyequal_func(((sql_subfunc*)l->f)) || 
is_exists_func(((sql_subfunc*)l->f)))) {
                        sql_subfunc *sf = l->f;
                        if (is_anyequal_func(sf))
-                               return exp_in_func(v->sql, 
((list*)l->l)->h->data, ((list*)l->l)->h->next->data, !is_anyequal(sf), 0);
-                       if (is_exists_func(sf))
-                               return exp_exists(v->sql, 
((list*)l->l)->h->data, !is_exists(sf));
+                               l = exp_in_func(v->sql, ((list*)l->l)->h->data, 
((list*)l->l)->h->next->data, !is_anyequal(sf), 0);
+                       else if (is_exists_func(sf))
+                               l = exp_exists(v->sql, ((list*)l->l)->h->data, 
!is_exists(sf));
+                       if (exp_name(e))
+                               exp_prop_alias(v->sql->sa, l, e);
                        return l;
                }
        }
diff --git a/sql/test/BugTracker-2025/Tests/7635_name_propagation_missing.test 
b/sql/test/BugTracker-2025/Tests/7635_name_propagation_missing.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7635_name_propagation_missing.test
@@ -0,0 +1,17 @@
+statement ok
+CREATE TABLE t0(c0 INT)
+
+statement ok
+INSERT INTO t0 VALUES (1)
+
+query II
+SELECT * FROM t0 INNER JOIN (SELECT (1 = ANY(VALUES (1)))) AS sub ON TRUE
+----
+1
+1
+
+query II
+SELECT * FROM t0 INNER JOIN (SELECT (1 = ANY(VALUES (1)) = TRUE)) AS sub ON 
TRUE
+----
+1
+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
@@ -10,4 +10,5 @@ HAVE_HGE?7637_str_to_decimal
 7632-crash-leftjoin-exists
 7633-crash-leftjoin-any
 7634_join_with_subquery_crash
+7635_name_propagation_missing
 7636_antijoin_crash
diff --git a/sql/test/analytics/Tests/analytics13.test 
b/sql/test/analytics/Tests/analytics13.test
--- a/sql/test/analytics/Tests/analytics13.test
+++ b/sql/test/analytics/Tests/analytics13.test
@@ -679,7 +679,7 @@ 0
 0
 0
 
-query III nosort
+query III rowsort
 SELECT
     CASE WHEN t1.col1 IN (SELECT 1 FROM tbl_ProductSales tp LEFT JOIN 
another_T t2 ON tp.ColID = t1.col1) THEN 1 ELSE 2 END,
     CASE WHEN SUM(t1.col3) IN (SELECT MAX(t1.col3) FROM tbl_ProductSales tp 
LEFT JOIN another_T t2 ON tp.ColID = t1.col1) THEN 1 ELSE 2 END,
@@ -690,7 +690,7 @@ GROUP BY ROLLUP(t1.col1, t1.col2)
 1
 1
 2
-2
+1
 1
 2
 2
@@ -699,7 +699,7 @@ 2
 2
 1
 2
-1
+2
 1
 2
 2
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to