github-actions[bot] commented on code in PR #66284:
URL: https://github.com/apache/doris/pull/66284#discussion_r3681925180


##########
be/src/exprs/aggregate/aggregate_function_group_array_set_op_impl.h:
##########
@@ -33,8 +33,8 @@ template <template <PrimitiveType> class ImplNumericData, 
typename ImplStringDat
 inline AggregateFunctionPtr create_aggregate_function_group_array_impl(
         const DataTypes& argument_types, const bool result_is_nullable,
         const AggregateFunctionAttr& attr) {
-    const auto& nested_type = remove_nullable(
-            assert_cast<const 
DataTypeArray&>(*(argument_types[0])).get_nested_type());
+    const auto& array_type = assert_cast<const 
DataTypeArray&>(*remove_nullable(argument_types[0]));

Review Comment:
   [P1] Fence pre-fix states for both set operations
   
   This makes fresh aggregates skip outer NULL rows, but existing serialized 
states keep the old meaning. Pre-fix `group_array_intersect_state` serialized 
an ordinary outer NULL as `init=true,size=0`, so it permanently empties valid 
states; pre-fix `group_array_union_state` could serialize a nonempty payload 
hidden under an outer NULL (the `[99]` test shape is SQL-reachable through 
`IF`), so spurious values survive. The unchanged AGG_STATE layout/function 
compatibility check accepts both in existing columns or synchronous MVs, which 
can then disagree with fresh direct queries after upgrade. Please fence both 
function names from old states, provide rebuild/refresh handling, and add 
upgrade tests for both byte patterns.



-- 
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