Changeset: 2b3fcb11cbbe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2b3fcb11cbbe
Added Files:
        sql/test/BugTracker-2026/Tests/7826-crash-in-optimizer.test
Modified Files:
        sql/server/rel_optimize_sel.c
        sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:

fix for issue #7826, properly continue when reseting list iteration node ptr


diffs (69 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
@@ -464,6 +464,7 @@ exps_cse_dis( visitor *v, list *oexps, s
                                m = ll->h;
                                lpos = 0;
                        }
+                       continue;
                }
                m = m->next;
                lpos++;
diff --git a/sql/test/BugTracker-2026/Tests/7826-crash-in-optimizer.test 
b/sql/test/BugTracker-2026/Tests/7826-crash-in-optimizer.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7826-crash-in-optimizer.test
@@ -0,0 +1,45 @@
+query II
+select  
+  subq_1.c1 as c0, 
+  subq_1.c1 as c1
+from 
+  (select  
+        subq_0.c2 as c0, 
+        subq_0.c2 as c1
+      from 
+        (select  
+              ref_0.session_attr as c0, 
+              66 as c1, 
+              ref_0.session_attr as c2
+            from 
+              clientinfo_properties as ref_0
+            where ((true) 
+                or (EXISTS (
+                  select  
+                      ref_1.view1_schema_id as c0, 
+                      ref_0.session_attr as c1, 
+                      ref_0.prop as c2
+                    from 
+                      dependency_views_on_views as ref_1
+                    where true
+                    limit 66))) 
+              or (((false) 
+                  or (ref_0.session_attr is NULL)) 
+                or (ref_0.session_attr is not NULL))) as subq_0
+      where ((subq_0.c2 is NULL) 
+          or (((subq_0.c2 is not NULL) 
+              or (subq_0.c0 is not NULL)) 
+            and (false))) 
+        and (false)) as subq_1
+where ((subq_1.c0 is not NULL) 
+    and (subq_1.c1 is not NULL)) 
+  or (((subq_1.c0 is not NULL) 
+      and ((true) 
+        or (((true) 
+            and ((subq_1.c0 is not NULL) 
+              and (subq_1.c0 is not NULL))) 
+          and (subq_1.c0 is not NULL)))) 
+    and (subq_1.c0 is not NULL))
+limit 77
+----
+
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
 7816-table-returning-function-crash
 7818-out-of-bounds-analytics
 7820-mergeors-reset-list
+7826-crash-in-optimizer
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to