Changeset: 9757df0ca9d3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9757df0ca9d3
Added Files:
        sql/test/BugTracker-2024/Tests/bind-exps-crash-7438.test
        sql/test/BugTracker-2024/Tests/rewrite-count-crash-7433.test
Modified Files:
        sql/server/rel_unnest.c
        sql/test/BugTracker-2024/Tests/All
Branch: Dec2023
Log Message:

fixes for issues #7433 and #7438

only set type of atom expressions
a converted count isn't a count expression.


diffs (53 lines):

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
@@ -1144,8 +1144,6 @@ exp_is_count(sql_exp *e, sql_rel *rel)
                sql_exp *ne = rel_find_exp(rel->l, e);
                return exp_is_count(ne, rel->l);
        }
-       if (is_convert(e->type))
-               return exp_is_count(e->l, rel);
        if (is_aggr(e->type) && exp_aggr_is_count(e))
                return 1;
        return 0;
@@ -2373,7 +2371,7 @@ rel_set_type(visitor *v, sql_rel *rel)
                                                                        }
                                                                } else {
                                                                        e->tpe 
= *exp_subtype(te);
-                                                                       if 
(e->l)
+                                                                       if 
(e->l && e->type == e_atom)
                                                                                
e->l = atom_set_type(v->sql->sa, e->l, &e->tpe);
                                                                }
                                                        }
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -4,6 +4,8 @@ where-between-issue-7428
 where-case-null-issue-7429
 create-index-query-issue-7430
 alloc-overflow-7432
+rewrite-count-crash-7433
+bind-exps-crash-7438
 exps-cards-crash-7439
 gc-col-crash-7440
 is-col-uniq-crash-7441
diff --git a/sql/test/BugTracker-2024/Tests/bind-exps-crash-7438.test 
b/sql/test/BugTracker-2024/Tests/bind-exps-crash-7438.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/bind-exps-crash-7438.test
@@ -0,0 +1,5 @@
+statement ok
+CREATE TABLE v0 ( v2 INTEGER , v1 INTEGER )
+
+statement ok
+SELECT CAST ( ( ( SELECT NULL v1 WHERE v2 IS NULL OR ( 'www' > ANY ( v1 ) ) ) 
) AS BIGINT ) FROM v0
diff --git a/sql/test/BugTracker-2024/Tests/rewrite-count-crash-7433.test 
b/sql/test/BugTracker-2024/Tests/rewrite-count-crash-7433.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/rewrite-count-crash-7433.test
@@ -0,0 +1,5 @@
+statement ok
+CREATE TABLE v0 ( v1 VARCHAR ( 217 ) )
+
+statement ok
+UPDATE v0 SET v1 = ( SELECT ( v1 IN ( SELECT COUNT ( * ) WHERE v1 = 1 ) ) AS 
new_column )
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to