Changeset: d747f540597a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d747f540597a
Added Files:
sql/test/BugTracker-2026/Tests/7820-mergeors-reset-list.test
Modified Files:
sql/server/rel_optimize_sel.c
sql/test/BugTracker-2026/Tests/7818-out-of-bounds-analytics.test
sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:
fixed issue #7820, jump to proper next node in optimizer
diffs (98 lines):
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -743,21 +743,20 @@ merge_ors(mvc *sql, list *exps, int *cha
eqs = new_exp_list(sql->sa);
neq = new_exp_list(sql->sa);
- for(node *n = el->h; n; n = n->next) {
+ for(node *n = el->h; n; ) {
sql_exp *e = n->data;
if (e->type == e_cmp && e->flag == cmp_con &&
!is_anti(e)) {
exp_or_chain_groups(e->l, &gen_ands,
&mce_ands, &eqs, &neq);
} else if (e->type == e_cmp && e->flag ==
cmp_dis && !is_anti(e)) {
- node *p = el->h;
- for( ; p->next != n; p = p->next)
- ;
- list_remove_node(el, NULL, n);
+ node *p = list_remove_node(el, NULL, n);
list_merge(el, e->l, NULL);
n = p;
+ continue;
} else {
list *l = append(sa_list(sql->sa), e);
exp_or_chain_groups(l, &gen_ands,
&mce_ands, &eqs, &neq);
}
+ n = n->next;
}
/* detect col cmp_eq exps with multiple values */
diff --git a/sql/test/BugTracker-2026/Tests/7818-out-of-bounds-analytics.test
b/sql/test/BugTracker-2026/Tests/7818-out-of-bounds-analytics.test
--- a/sql/test/BugTracker-2026/Tests/7818-out-of-bounds-analytics.test
+++ b/sql/test/BugTracker-2026/Tests/7818-out-of-bounds-analytics.test
@@ -67,8 +67,7 @@ SELECT covar_pop (
FROM (
SELECT 1 AS x
UNION SELECT 0 AS x
- UNION SELECT DISTINCT * FROM generate_series ( CAST( 65536 AS REAL ) ,
CAST( 1.900000 AS REAL ) ) AS x
- WHERE 625
+ UNION SELECT DISTINCT * FROM generate_series ( CAST( 100 AS REAL ) , CAST(
1.900000 AS REAL ) ) AS x
) as x(x)) as x
----
-65536
+100
diff --git a/sql/test/BugTracker-2026/Tests/7820-mergeors-reset-list.test
b/sql/test/BugTracker-2026/Tests/7820-mergeors-reset-list.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7820-mergeors-reset-list.test
@@ -0,0 +1,42 @@
+query II
+select
+ (select function_type_id from function_types limit 1 offset 1)
+ as c0,
+ ref_0.depend_type as c1
+from
+ dependency_functions_on_triggers as ref_0
+where (cast(coalesce(ref_0.trigger_id,
+ ref_0.trigger_table_id) as int) is NULL)
+ and ((((ref_0.trigger_id is NULL)
+ or ((((false)
+ and (true))
+ or (false))
+ or ((true)
+ and ((ref_0.trigger_table_id is NULL)
+ or (ref_0.trigger_id is not NULL)))))
+ or ((ref_0.trigger_name is not NULL)
+ and (ref_0.function_schema_id is not NULL)))
+ and ((EXISTS (
+ select
+ ref_1.schema_name as c0,
+ ref_0.depend_type as c1,
+ ref_0.function_schema_id as c2,
+ ref_1.schema_name as c3,
+ ref_0.trigger_name as c4,
+ ref_1.user_name as c5,
+ ref_1.user_name as c6,
+ ref_0.function_id as c7,
+ ref_0.trigger_table_id as c8,
+ ref_1.schema_name as c9,
+ ref_1.stmt as c10,
+ ref_1.schema_name as c11,
+ ref_0.depend_type as c12,
+ ref_0.depend_type as c13,
+ ref_0.function_type as c14
+ from
+ dump_add_schemas_to_users as ref_1
+ where false
+ limit 105))
+ or (ref_0.function_id is NULL)))
+limit 61
+----
diff --git a/sql/test/BugTracker-2026/Tests/All
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -34,3 +34,4 @@ KNOWNFAIL?7801-assertion-failure
7815-ALGmarkselect-crash
7816-table-returning-function-crash
7818-out-of-bounds-analytics
+7820-mergeors-reset-list
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]