Skip to content

Bump Trino to 480 and JDK to 25#123

Open
LuciferYang wants to merge 1 commit intoapache:mainfrom
LuciferYang:upgrade-to-480
Open

Bump Trino to 480 and JDK to 25#123
LuciferYang wants to merge 1 commit intoapache:mainfrom
LuciferYang:upgrade-to-480

Conversation

@LuciferYang
Copy link
Copy Markdown

Summary

  • Upgrade Trino from 476 to 480 and JDK from 24 to 25
  • Bump dependency versions: airlift 336 → 419, slice 2.2 → 2.7, spotless 2.43.0 → 2.46.1, google-java-format 1.17.0 → 1.28.0
  • Adapt to Trino 480 SPI breaking changes
  • Replace trino-hdfs:zip unpack with trino-hdfs:jar copy (zip artifact no longer published to Maven Central)
  • Update CI workflows from JDK 24 to JDK 25

Breaking SPI changes addressed

Trino SPI Change Affected File(s) Adaptation
ConnectorPageSource.getNextPage() removed; must use getNextSourcePage() returning SourcePage TrinoPageSource, TrinoPageSourceWrapper, TrinoMergePageSourceWrapper, DirectTrinoPageSource, TableChangesFunctionProcessor Migrate all implementations and callers from getNextPage() to getNextSourcePage()
Connector.shutdown() changed from default to abstract TrinoConnector Add explicit empty shutdown() override
ColumnMetadata.getComment() returns Optional<String> instead of nullable String TrinoMetadata Use .orElse(null) to preserve existing semantics
ConnectorSplit.getSplitInfo() removed TrinoSplit Remove override and unused Map import
NodeVersion moved from io.trino.plugin.hive to io.trino.spi TrinoConnectorFactory Update import
FileSystemModule constructor changed from (String, NodeManager, OpenTelemetry, boolean) to (String, ConnectorContext, boolean) TrinoConnectorFactory Pass ConnectorContext directly
Airlift JsonCodecFactory no longer accepts ObjectMapperProvider; requires JsonMapper TrinoColumnHandleTest Migrate to JsonMapperProvider API
Row type display now quotes field names TrinoTypeTest Update assertion to expect row("id" integer, "name" varchar)
New inherited test methods testDefaultExplainJsonFormat / testLogicalExplainJsonFormat TrinoDistributedQueryTest Add overrides following existing pattern

Dependency version changes

Dependency Old New
Trino 476 480
JDK 24 25
Airlift 336 419
Slice 2.2 2.7
Spotless Maven Plugin 2.43.0 2.46.1
google-java-format 1.17.0 1.28.0

Other changes

  • trino-hdfs packaging: Replaced maven-dependency-plugin:unpack of trino-hdfs:zip with copy of trino-hdfs:jar. Trino 480 no longer publishes the zip artifact to Maven Central. The transitive HDFS dependencies are already covered by other runtime dependencies in the main plugin directory.
  • JVM test args: Added extraJavaTestArgs with --add-modules=jdk.incubator.vector --sun-misc-unsafe-memory-access=allow, required by Trino 480 test framework on JDK 25.
  • Spotless: Upgraded to 2.46.1 with google-java-format 1.28.0 for JDK 25 compatibility. Added TrinoColumnHandleTest.java to spotless excludes because spotless incorrectly rewrites com.fasterxml.jackson import to paimon-shaded variant.
  • CI: Renamed workflow files from *jdk24* to *jdk25* and updated all JDK version references.

Test plan

  • mvn test — 148 tests pass (unit + distributed query tests)
  • mvn test -Dtest=TrinoITCase — 30 integration tests pass
  • mvn package -DskipTests — plugin assembly builds successfully
  • Full build with spotless + checkstyle — no violations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant