Repository navigation
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
814d0a7 to
c69263a
Compare
|
run buildall |
|
/review |
There was a problem hiding this comment.
Static-only review at exact head c69263a against base 3a33142.
Opinion: approve; I found no blocking correctness issue.
The new VARIANT terminal is placed after the current Iceberg field requirement is checked, so Variant-relative keys are no longer interpreted as schema IDs or collection/meta tokens while ancestor and field-level checks remain intact. I traced all three consumers of this walker: recursive initial-default materialization, missing-required-field rejection, and name/alias collision gating during smooth upgrades. Multiple paths, sibling projections, STRUCT/ARRAY/MAP parents, reserved-looking keys, and numeric-key collisions preserve the existing compatibility fences.
The unit and regression additions cover top-level and nested Variant paths, mixed shredded/unshredded Parquet, historical nested defaults, explicit NULL, filtering/grouping, pruning-on/off parity, and a Spark cross-reader comparison. The generated fixture and expected rows are internally consistent.
Critical checkpoints: correctness and rolling-upgrade compatibility passed static inspection; no lifecycle, configuration, performance, test-validity, or duplicate-comment concern was found. No extra user focus was supplied. Per the review contract I did not run builds or tests, so this is static-only rather than runtime validation.
Review convergence: the main scan plus the normal full reviewer and both risk-focused reviewers completed Round 1 with no valuable findings and no unresolved candidates.
…ubpaths
Querying a subpath of an Iceberg VARIANT column fails during planning
when nested column pruning is enabled, which is the default:
SELECT CAST(message['mainDomain'] AS STRING) FROM iceberg_tbl;
ERROR 1105 (HY000): errCode = 2, detailMessage = Iceberg access path
continues below primitive column message
IcebergScanNode walks projected access paths when checking backend
compatibility and treats every component as an Iceberg schema child.
Variant object keys are data, and a Variant column has no schema
children, so the walk fails on them. Stop the walk at Variant columns
after checking the Variant field itself.
c69263a to
817910e
Compare
|
run buildall |
|
/review |
There was a problem hiding this comment.
Static-only review at exact head 817910e1ae47a36708e9c710309bfbeaf4cefa70 against base 3a33142dc3ff59126d1270d4f0ebab69ac069525.
Opinion: approve; I found no blocking or material correctness issue.
Critical checkpoints:
- Correctness and schema semantics: the new stop occurs only after the current Iceberg field requirement is evaluated. Iceberg VARIANT is a schema leaf, so encoded object keys, array indexes, numeric strings, and reserved-looking tokens are correctly excluded from further Iceberg field traversal without hiding the VARIANT field or its ancestors.
- Compatibility and rolling upgrade: I traced recursive initial-default detection, historical missing-required-field rejection, and name-mapping collision fencing. Their field/ancestor checks remain intact, and the independent effective-VARIANT backend gate still rejects smooth-upgrade source backends.
- Tests: the unit coverage exercises top-level and nested VARIANT paths, token/field-ID ambiguity, collection traversal, and required-field history. The regression forces nested pruning and covers root, STRUCT, MAP, ARRAY, projection, grouping, and filtering with internally consistent expected rows.
- Review context: no inline comments required deduplication, and no additional user-provided focus was supplied.
Review convergence completed in Round 1: two normal full-review assignments and the separate risk-focused review all returned NO_NEW_VALUABLE_FINDINGS; the main review independently verified their evidence and resolved every risk with no candidate findings.
Per the review contract, I did not run builds or tests or modify repository source. This is a static-only opinion, not runtime validation.
FE UT Coverage ReportIncrement line coverage |
What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary:
Querying a subpath of an Iceberg
VARIANTcolumn fails during planning whenenable_prune_nested_columnis enabled (the default):IcebergScanNodewalks projected access paths when checking backend compatibility and treats every path component as an Iceberg schema child. Variant object keys are data, so the walk fails on them. This PR stops the walk at Variant columns after checking the Variant field itself.Master is not affected.
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)