This is an automated email from the ASF dual-hosted git repository. voonhous pushed a commit to tag rfc-105-pre-cleanup in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 046a4c5b1880e6506e277725ac04b1020a3f4e5e Author: voon <[email protected]> AuthorDate: Mon May 25 21:50:53 2026 +0800 chore(trino): trim porting-history comments and verbose pom rationale Drops or compresses comments that referenced the porting effort itself ("Trino 480 removed X", "Trino 482 removed Y") rather than the WHY of the current code. The same SPI-version context lives in commit messages and is not load-bearing for a reader of the present tree. Paragraph-style pom comments are condensed to one-liners. --- hudi-trino-plugin/pom.xml | 23 +++++----------------- .../plugin/hudi/HudiBaseFileOnlyPageSource.java | 2 +- .../main/java/io/trino/plugin/hudi/HudiModule.java | 2 -- .../trino/plugin/hudi/HudiPageSourceProvider.java | 3 --- .../main/java/io/trino/plugin/hudi/HudiSplit.java | 1 - .../trino/plugin/hudi/split/HudiSplitFactory.java | 4 +--- pom.xml | 4 +--- 7 files changed, 8 insertions(+), 31 deletions(-) diff --git a/hudi-trino-plugin/pom.xml b/hudi-trino-plugin/pom.xml index 3dda76c1de18..b76e5b60d774 100644 --- a/hudi-trino-plugin/pom.xml +++ b/hudi-trino-plugin/pom.xml @@ -32,13 +32,12 @@ <description>Hudi connector for Trino (RFC-105)</description> <properties> - <!-- Trino SPI / library version this connector compiles against. Bumped via root pom. --> + <!-- Trino SPI version; managed in root pom. --> <dep.trino.version>${trino.connector.version}</dep.trino.version> - <!-- Tests reuse Trino's internal test scaffolding, which only ships under the - test-jar classifier in snapshot builds. See root pom for details. --> + <!-- Trino test-jars only ship in snapshot builds; tracked separately in root pom. --> <dep.trino.test.version>${trino.connector.test.version}</dep.trino.test.version> <trino.parquet.version>1.15.2</trino.parquet.version> - <!-- Connector requires JDK 25 to compile and run (matches Trino runtime requirement). --> + <!-- Trino runtime is JDK 25+. --> <hudi.trino.java.version>25</hudi.trino.java.version> <main.basedir>${project.parent.basedir}</main.basedir> <checkstyle.skip>true</checkstyle.skip> @@ -61,10 +60,6 @@ <dependencies> <dependency> - <!-- Required for compilation: HoodieRecord implements KryoSerializable, - so the compiler needs Kryo on classpath to verify the class hierarchy - when loading HoodieRecord for static imports. - Explicit compile scope overrides the Trino BOM, which manages kryo at test scope. --> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.2</version> @@ -82,10 +77,6 @@ <artifactId>guava</artifactId> </dependency> - <!-- Trino's plugin classloader bundles non-SPI compile deps with the plugin (one URLClassLoader - per plugin). Only the SPI shortlist further down (trino-spi, jackson-annotations, slice, - opentelemetry-*, jol-core) is at provided scope. Matches trino-iceberg / trino-delta-lake. --> - <dependency> <!-- Trino bundles guice as the classes-only classifier; the BOM does not manage the plain jar. --> <groupId>com.google.inject</groupId> @@ -199,10 +190,7 @@ <groupId>org.apache.orc</groupId> <artifactId>*</artifactId> </exclusion> - <!-- The Trino connector does not exercise Hudi's local state stores, Arrow - materialization, or Lance integration. Excluding them keeps the plugin's - runtime jar set lean (~280MB worth otherwise) and avoids dragging native - libs (rocksdbjni) onto Trino's plugin classpath. --> + <!-- Not used by the connector; excluded to keep the plugin jar set lean. --> <exclusion> <groupId>org.rocksdb</groupId> <artifactId>*</artifactId> @@ -240,7 +228,6 @@ <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> </exclusion> - <!-- Same rationale as hudi-common: connector does not use rocksdb / arrow / lance. --> <exclusion> <groupId>org.rocksdb</groupId> <artifactId>*</artifactId> @@ -578,7 +565,7 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> - <!-- Override Hudi parent's Java 11 target. Trino SPI requires recent JDK. --> + <!-- Hudi parent targets JDK 11; override for Trino. --> <source>${hudi.trino.java.version}</source> <target>${hudi.trino.java.version}</target> <release>${hudi.trino.java.version}</release> diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiBaseFileOnlyPageSource.java b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiBaseFileOnlyPageSource.java index b1799bfa703f..5564e2cdffc0 100644 --- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiBaseFileOnlyPageSource.java +++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiBaseFileOnlyPageSource.java @@ -99,7 +99,7 @@ public class HudiBaseFileOnlyPageSource } if (allOutputColumns.isEmpty()) { - // count(*) projects no columns; forward the physical page which already carries the correct positionCount with zero blocks. + // Forward the zero-block page so positionCount survives -- new Page(new Block[0]) would infer positionCount=0. return physicalSourcePage; } diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiModule.java b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiModule.java index a696cd8218d9..cd17429b90d3 100644 --- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiModule.java +++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiModule.java @@ -58,8 +58,6 @@ public class HudiModule configBinder(binder).bindConfig(HudiConfig.class); - // Trino 480 removed the TranslateHiveViews annotation; thrift metastore now reads - // hive.hive-views.enabled config directly. No binding needed. binder.bind(boolean.class).annotatedWith(HideDeltaLakeTables.class).toInstance(false); newSetBinder(binder, SessionPropertiesProvider.class).addBinding().to(HudiSessionProperties.class).in(Scopes.SINGLETON); diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java index 0b87592b74e0..a193dd0952c3 100644 --- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java +++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java @@ -221,7 +221,6 @@ public class HudiPageSourceProvider Optional.ofNullable(hudiTableHandle.getTableSchema()) .orElseGet(() -> getLatestTableSchema(metaClient, hudiTableHandle.getTableName())); - // constructSchema operates on Avro schema to assemble the requested schema for the log file reader. Schema requestedSchema = constructSchema(dataSchema.toAvroSchema(), hudiMetaAndDataColumnHandles.stream().map(HiveColumnHandle::getName).toList()); HoodieFileGroupReader<IndexedRecord> fileGroupReader = HoodieFileGroupReader.<IndexedRecord>newBuilder() @@ -300,8 +299,6 @@ public class HudiPageSourceProvider DOMAIN_COMPACTION_THRESHOLD, options); - // Trino 480 dropped projectBaseColumns/ReaderColumns; createParquetPageSource handles - // base-column projection internally via TransformConnectorPageSource. ParquetDataSourceId dataSourceId = dataSource.getId(); ParquetDataSource finalDataSource = dataSource; ParquetReaderProvider parquetReaderProvider = (fields, appendRowNumberColumn) -> new ParquetReader( diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiSplit.java b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiSplit.java index 0f7b520e4e64..32f1d32aa3f6 100644 --- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiSplit.java +++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiSplit.java @@ -80,7 +80,6 @@ public class HudiSplit this.cachingHostAddresses = requireNonNull(cachingHostAddresses, "cachingHostAddresses is null"); } - // Trino 480 removed getSplitInfo from ConnectorSplit. Method retained for local diagnostics. public Map<String, String> getSplitInfo() { return ImmutableMap.<String, String>builder() diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/split/HudiSplitFactory.java b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/split/HudiSplitFactory.java index 71c3f0c814f6..6bab996e199b 100644 --- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/split/HudiSplitFactory.java +++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/split/HudiSplitFactory.java @@ -110,8 +110,7 @@ public class HudiSplitFactory HoodieBaseFile baseFile = fileSlice.getBaseFile().get(); long fileSize = baseFile.getFileSize(); - // Trino 482 removed CachingHostAddressProvider; object-storage reads have no host - // affinity, so leave the address list empty. Workers are chosen by the scheduler. + // Object-storage reads have no host affinity. List<HostAddress> addresses = ImmutableList.of(); // If the file is empty, create a single split to represent it @@ -168,7 +167,6 @@ public class HudiSplitFactory { // NOTE: Some file slices may not have base files Option<HoodieBaseFile> baseFileOption = fileSlice.getBaseFile(); - // Trino 482 removed CachingHostAddressProvider; no host affinity for object-storage reads. List<HostAddress> addresses = ImmutableList.of(); HudiSplit split = new HudiSplit( diff --git a/pom.xml b/pom.xml index 9f6d33e1c01f..323525c38e6f 100644 --- a/pom.xml +++ b/pom.xml @@ -2276,9 +2276,7 @@ </modules> </profile> <profile> - <!-- RFC-105: builds the Trino connector (org.apache.hudi:hudi-trino), a regular non-shaded - jar relying on Trino's URLClassLoader plugin isolation. Excluded from default builds - because it requires JDK 25 and the Trino SPI. --> + <!-- RFC-105: non-shaded Trino connector. JDK 25 + Trino SPI; off by default. --> <id>hudi-trino</id> <modules> <module>hudi-trino-plugin</module>
