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]