nielspardon opened a new pull request, #12832:
URL: https://github.com/apache/gluten/pull/12832

   ## What changes are proposed in this pull request?
   
   Substrait 0.98 added `IcebergTable iceberg_table = 9` to the 
`ReadRel.read_type` oneof — exactly the field number Gluten's local 
`stream_kafka` graft occupies. This migrates Gluten's vendored 
`ReadRel.read_type` to the 0.98 layout by vendoring the official 
`iceberg_table` field and `IcebergTable` message verbatim and relocating the 
`stream_kafka` graft off the collision, as one step of the Substrait `v0.23.0` 
→ `0.98.0` proto rebase (#12597).
   
   The graft moves to field **1000**, following the "Gluten-local fields start 
at 1000" convention adopted for `WriteRel.bucket_spec` (#12746), so a future 
upstream field cannot collide with it again. It stays inside the `read_type` 
oneof, and the enclosing `Rel.read` oneof tag is unchanged. All accessors are 
name-based (`setStreamKafka` / `hasStreamKafka`), so the renumber needs no 
source change; the new `iceberg_table` field is unreferenced by any producer or 
consumer, so no producer or consumer source is touched.
   
   - **Proto:** add `IcebergTable iceberg_table = 9` to the `read_type` oneof 
and vendor the 0.98 `IcebergTable` message verbatim (nested `MetadataFileRead` 
with `metadata_uri` and a `snapshot_id` / `snapshot_timestamp` oneof); relocate 
`bool stream_kafka` from field 9 to 1000.
   
   `ReadRel` is the largest of the vendored messages, so this is the first of 
three independent ReadRel slices — this one (`read_type`), the text-options 
redesign (`TextReadOptions` → `DelimiterSeparatedTextReadOptions`), and 
`VirtualTable.values` → `expressions` — each landing as its own PR. They touch 
disjoint proto regions and disjoint consumers.
   
   ## How was this patch tested?
   
   - Locally verified: `protoc` dup-field check (all imports resolve, no 
duplicate field numbers, the new `IcebergTable` / `MetadataFileRead` resolve); 
`gluten-substrait` builds with the proto codegen regenerated (`mvn -Pspark-3.5 
-pl gluten-substrait -am clean install`), scalastyle clean.
   - Native: the regenerated `algebra.pb.cc` and all five ReadRel-relevant 
Velox translation units (`SubstraitToVeloxPlan`, 
`SubstraitToVeloxPlanValidator`, `VeloxToSubstraitPlan`, 
`VeloxToSubstraitExpr`, `SubstraitToVeloxExpr`) compile against the new proto. 
A full local `libvelox` link is currently blocked by an unrelated Velox-EP skew 
(`WholeStageResultIterator.cc` references 
`QueryConfig::kBypassHashProbeBloomFilterMin{Rows,Pct}`, absent from the built 
EP), so the end-to-end Kafka/Iceberg read paths and the ClickHouse read parser 
are exercised by CI, not locally. A green local run does not imply full backend 
coverage here.
   - No new test: this slice is a purely additive field plus a name-based 
renumber with no source-side behavior change, so there is no producer/consumer 
contract to pin beyond the descriptor, which `protoc` already enforces. The 
text-options and `VirtualTable` slices — which do change accessor semantics — 
carry their own round-trip tests.
   
   ## Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 4.8)
   
   🤖 Generated with AI
   


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