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]