HappenLee commented on code in PR #67805:
URL: https://github.com/apache/doris/pull/67805#discussion_r3982099713


##########
be/src/exprs/aggregate/aggregate_function_window_funnel.h:
##########
@@ -295,6 +295,15 @@ struct WindowFunnelState {
         if (other.events_list.empty()) {
             return;
         }
+
+        if (events_list.empty()) {
+            window = other.window;
+            window_funnel_mode = other.window_funnel_mode;
+        } else if (UNLIKELY(window != other.window ||

Review Comment:
   Fixed by requiring both window and mode to be constant during FE legality 
checking in WindowFunnel (V1) and WindowFunnelV2. The ordinary functions and 
their _state/_combine forms delegate to these checks, so varying configuration 
columns are rejected before any state is built. Timestamp and event arguments 
can still be columns. Existing BE merge-time comparisons remain necessary for 
states built separately with different constant configurations.
   
   Added FE unit coverage for both implementations and all three forms, plus 18 
expected-error SQL cases covering window_funnel, window_funnel_v1 and 
window_funnel_v2 with varying window or mode. All 5 FE parameter tests 
(including reservoir NaN coverage) and all 3 regression suites 
(test_agg_state_parameters, window_funnel, window_funnel_v2) passed. The BE 
ASAN/FE build and FE Checkstyle also passed.
   
   This fix is included in commit a8b018b9ef6, together with the previously 
agreed review follow-ups in this PR update.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to