hubgeter commented on code in PR #66758:
URL: https://github.com/apache/doris/pull/66758#discussion_r3782345754
##########
be/src/format_v2/parquet/reader/variant_column_reader.cpp:
##########
@@ -851,18 +1048,32 @@ class ParquetVariantShreddedState final : public
VariantShreddedState {
std::lock_guard lock(_materialization_lock);
_materialized.reset();
_serialized.reset();
+ _unshredded_metadata_cache.reset();
return true;
}
std::optional<VariantShreddedTypedValue> find_typed_value(
std::span<const VariantShreddedPathSegment> path) const override {
+ auto residual_seek_fallback = [&]() ->
std::optional<VariantShreddedTypedValue> {
+ // Complete mixed shredded states still need canonical
reconstruction when neither a
+ // typed leaf nor the pure unshredded direct-seek path can answer
the request.
+ if (_complete && !unshredded_child_indices(*_schema).has_value() &&
+ find_child(*_schema, "value", nullptr) != nullptr) {
+
update_counter(_profile.variant_direct_residual_seek_fallbacks, 1);
+ }
+ return std::nullopt;
+ };
auto path_miss = [&]() -> std::optional<VariantShreddedTypedValue> {
update_counter(_profile.variant_direct_leaf_path_misses, 1);
- return std::nullopt;
+ return residual_seek_fallback();
};
if (path.empty()) {
return path_miss();
}
+ if (auto normalized = find_unshredded_normalized_value(path);
normalized.has_value()) {
+ return VariantShreddedTypedValue {
Review Comment:
Fixed in 715e82f7eea. Iceberg profile assertions now use
VariantDirectResidualSeekRows. Predicate-only and position-delete scans require
VariantReconstructedRows to be present but exactly zero; the helper now
separates required counters from counters that must become positive.
--
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]