[Subtask] Shared version seam for Trino 480+ in the Trino connector
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 935
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 298
Description
### Describe the subtask
Trino 480+ change wrapped SPI methods that live in SHARED connector code
(compiled by every version-segment module), so the per-module wrapper
classes can't handle them alone. Introduce a version seam so the shared
`trino-connector` source compiles across Trino 435–483.
Scope:
- Adapter-level accessor for the `ColumnMetadata` comment (returns String
on <=479, Optional on 480+), used by `CatalogConnectorMetadataAdapter`,
the Hive/Iceberg/MySQL adapters, and `GravitinoTable`.
- Move `finishTableExecute` and `SchemaFunctionName` usage out of shared
`GravitinoMetadata` into the per-version `GravitinoMetadataNNN` wrappers.
- Replace the accumulating reflective `BlockEncodingManager` probe in
shared `JsonCodec` with a per-module `BlockEncodingSerde` factory seam:
each module carries only its range's construction logic (reflection
stays — it's a trino-main internal class — and within-version
OSS-vs-Starburst probing stays).
Regression gate: modules 435–479 must still compile and pass their tests
after the refactor.
### Parent issue
[12630](https://github.com/apache/gravitino/issues/12632)
Contributor guide
Research direction
Start in the shared trino-connector source and trace ColumnMetadata handling through CatalogConnectorMetadataAdapter, the Hive/Iceberg/MySQL adapters, and GravitinoTable. Then inspect GravitinoMetadata, its GravitinoMetadataNNN wrappers, and JsonCodec's BlockEncodingManager probe across modules 435–483. Done means modules 435–479 still compile and pass their tests after the seams are separated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100