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


##########
be/src/storage/iterator/block_reader.cpp:
##########
@@ -60,6 +62,18 @@ using namespace ErrorCode;
 
 static constexpr int32_t BLOCK_SIZE_CHECK_INTERVAL_ROWS = 64;
 
+namespace {
+
+// IColumn::compare_at is not implemented in production for these 
internal/opaque column
+// families. Row binlog currently rejects VARIANT, while the remaining types 
are kept here as a
+// conservative guard so an old or malformed schema cannot turn a MIN_DELTA 
query into an error.
+bool supports_min_delta_value_comparison(PrimitiveType type) {
+    return !is_var_len_object(type) && type != TYPE_VARIANT && type != 
TYPE_FIXED_LENGTH_OBJECT &&

Review Comment:
   [P1] Guard the concrete AGG_STATE representation before comparing. 
TYPE_AGG_STATE passes this allowlist, but DataTypeAggState creates 
aggregate-specific serialized columns: fixed states such as sum/count use 
ColumnFixedLengthObject (no compare_at override), while bitmap-style states use 
ColumnComplexType whose override is BE_TEST-only. Row-binlog schema 
construction permits AGG_STATE and wraps value cells nullable, so a non-NULL 
update reaches _min_delta_values_equal() and throws NOT_IMPLEMENTED_ERROR 
instead of conservatively retaining the UPDATE. Please inspect the actual 
serialized column capability or exclude AGG_STATE here.



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