[VL][Iceberg] Register iceberg spark session extensions automatically - #12823
Conversation
|
Run Gluten Clickhouse CI on x86 |
There was a problem hiding this comment.
Pull request overview
Automatically registers component-provided Spark session extensions, including Iceberg’s extension for Velox, while preserving configured extensions.
Changes:
- Added component session-extension support and merging.
- Registered
IcebergSparkSessionExtensionsfor Velox Iceberg. - Added extension deduplication and Iceberg procedure parsing tests.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
gluten-ut/test/src/test/scala/org/apache/gluten/GlutenSessionExtensionsSuite.scala |
Tests extension merging and deduplication. |
gluten-iceberg/src/test/scala/org/apache/gluten/execution/IcebergSuite.scala |
Verifies Iceberg procedures parse without manual configuration. |
gluten-core/src/main/scala/org/apache/gluten/GlutenPlugin.scala |
Merges component extensions into Spark configuration. |
gluten-core/src/main/scala/org/apache/gluten/component/Component.scala |
Adds the component extension API. |
backends-velox/src-iceberg/main/scala/org/apache/gluten/component/VeloxIcebergComponent.scala |
Supplies the Iceberg Spark session extension. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Hi @infvg, we found an issue after this change when the Iceberg runtime is on the classpath. Tracking issue: #12912.
The extension can also unexpectedly wrap other configured SQL parsers. Community CI passed because the Iceberg runtime was not on the The safest fix seems to be keeping the new component extension mechanism, but not registering the Iceberg extension globally. Iceberg applications and tests can configure it explicitly, and we can add the runtime to Does this approach make sense to you? |
|
Sorry for the late review. For cloud products or internal platforms that provide standardized components, the Iceberg extension is often not enabled by default, even when Iceberg itself is available. |
|
@jackylee-ch yep that's a good point, let's revert it #12913 |
Gluten detects the Velox Iceberg component but does not register
IcebergSparkSessionExtensions. RegisteredIcebergSparkSessionExtensions. Resolves #12693 (comment)