This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-trino.git
The following commit(s) were added to refs/heads/main by this push:
new 17c94a8 Flatten paimon-trino-440 to top level (#92)
17c94a8 is described below
commit 17c94a820bdf55f316384ac49339cce2e20694e2
Author: YeJunHao <[email protected]>
AuthorDate: Wed Nov 27 15:01:29 2024 +0800
Flatten paimon-trino-440 to top level (#92)
---
.github/workflows/ci-jdk21.yml | 2 +-
.github/workflows/publish_snapshot_jdk21.yml | 2 +-
.scalafmt.conf | 70 +++
.../trino/DecimalUtils.java => copyright.txt | 13 -
paimon-trino-440/pom.xml | 234 ---------
.../paimon/trino/TrinoTransactionHandle.java | 22 -
.../trino/fileio/TrinoDirectoryFileStatus.java | 56 ---
.../paimon/trino/fileio/TrinoFileIOLoader.java | 47 --
.../paimon/trino/fileio/TrinoFileStatus.java | 58 ---
pom.xml | 548 +++++++--------------
.../src => src}/main/assembly/paimon.xml | 0
.../org/apache/paimon/trino/ClassLoaderUtils.java | 0
.../java/org/apache/paimon/trino/DecimalUtils.java | 0
.../apache/paimon/trino/DirectTrinoPageSource.java | 0
.../org/apache/paimon/trino/EncodingUtils.java | 0
.../org/apache/paimon/trino/FieldNameUtils.java | 0
.../trino/FixedBucketTableShuffleFunction.java | 0
.../org/apache/paimon/trino/TrinoColumnHandle.java | 0
.../org/apache/paimon/trino/TrinoConnector.java | 0
.../apache/paimon/trino/TrinoConnectorFactory.java | 0
.../apache/paimon/trino/TrinoFilterConverter.java | 0
.../apache/paimon/trino/TrinoFilterExtractor.java | 0
.../paimon/trino/TrinoMergePageSourceWrapper.java | 0
.../org/apache/paimon/trino/TrinoMergeSink.java | 0
.../apache/paimon/trino/TrinoMergeTableHandle.java | 0
.../org/apache/paimon/trino/TrinoMetadata.java | 0
.../apache/paimon/trino/TrinoMetadataFactory.java | 0
.../java/org/apache/paimon/trino/TrinoModule.java | 0
.../trino/TrinoNodePartitioningProvider.java | 0
.../apache/paimon/trino/TrinoOrcDataSource.java | 28 +-
.../org/apache/paimon/trino/TrinoPageSink.java | 0
.../apache/paimon/trino/TrinoPageSinkProvider.java | 0
.../org/apache/paimon/trino/TrinoPageSource.java | 0
.../paimon/trino/TrinoPageSourceProvider.java | 0
.../paimon/trino/TrinoPageSourceWrapper.java | 28 +-
.../paimon/trino/TrinoPartitioningHandle.java | 0
.../java/org/apache/paimon/trino/TrinoPlugin.java | 0
.../java/org/apache/paimon/trino/TrinoRow.java | 0
.../paimon/trino/TrinoSessionProperties.java | 0
.../java/org/apache/paimon/trino/TrinoSplit.java | 0
.../org/apache/paimon/trino/TrinoSplitManager.java | 0
.../org/apache/paimon/trino/TrinoSplitSource.java | 0
.../org/apache/paimon/trino/TrinoTableHandle.java | 0
.../apache/paimon/trino/TrinoTableOptionUtils.java | 0
.../org/apache/paimon/trino/TrinoTableOptions.java | 0
.../paimon/trino/TrinoTransactionHandle.java | 13 +-
.../org/apache/paimon/trino/TrinoTypeUtils.java | 0
.../apache/paimon/trino/catalog/TrinoCatalog.java | 28 +-
.../trino/fileio/PositionOutputStreamWrapper.java | 28 +-
.../trino/fileio/TrinoDirectoryFileStatus.java | 41 +-
.../apache/paimon/trino/fileio/TrinoFileIO.java | 28 +-
.../paimon/trino/fileio/TrinoFileIOLoader.java | 29 +-
.../paimon/trino/fileio/TrinoFileStatus.java | 43 +-
.../trino/fileio/TrinoInputStreamWrapper.java | 28 +-
.../META-INF/services/io.trino.spi.Plugin | 0
.../apache/paimon/trino/SimpleTableTestHelper.java | 0
.../apache/paimon/trino/TrinoColumnHandleTest.java | 2 +-
.../paimon/trino/TrinoConnectorFactoryTest.java | 2 +-
.../paimon/trino/TrinoDistributedQueryTest.java | 2 +-
.../paimon/trino/TrinoFilterConverterTest.java | 4 +-
.../paimon/trino/TrinoFilterExtractorTest.java | 2 +-
.../java/org/apache/paimon/trino/TrinoITCase.java | 2 +-
.../paimon/trino/TrinoPartitioningHandleTest.java | 2 +-
.../org/apache/paimon/trino/TrinoPluginTest.java | 2 +-
.../org/apache/paimon/trino/TrinoQueryRunner.java | 0
.../java/org/apache/paimon/trino/TrinoRowTest.java | 2 +-
.../org/apache/paimon/trino/TrinoSplitTest.java | 2 +-
.../apache/paimon/trino/TrinoTableHandleTest.java | 2 +-
.../org/apache/paimon/trino/TrinoTestUtils.java | 0
.../org/apache/paimon/trino/TrinoTypeTest.java | 4 +-
.../test/resources/log4j2-test.properties | 0
71 files changed, 417 insertions(+), 957 deletions(-)
diff --git a/.github/workflows/ci-jdk21.yml b/.github/workflows/ci-jdk21.yml
index 434aeb0..9b792d4 100644
--- a/.github/workflows/ci-jdk21.yml
+++ b/.github/workflows/ci-jdk21.yml
@@ -49,4 +49,4 @@ jobs:
EOF
- name: Build
run: |
- mvn clean install -P '!toolchain' -pl paimon-trino-440
+ mvn clean install -P '!toolchain' -Papache-build
diff --git a/.github/workflows/publish_snapshot_jdk21.yml
b/.github/workflows/publish_snapshot_jdk21.yml
index 627d893..fc30eb0 100644
--- a/.github/workflows/publish_snapshot_jdk21.yml
+++ b/.github/workflows/publish_snapshot_jdk21.yml
@@ -81,6 +81,6 @@ jobs:
echo "<password>$ASF_PASSWORD</password>" >> $tmp_settings
echo "</server></servers></settings>" >> $tmp_settings
- mvn --settings $tmp_settings clean deploy -Dgpg.skip -Drat.skip
-DskipTests -Papache-release -pl paimon-trino-440
+ mvn --settings $tmp_settings clean deploy -Dgpg.skip -Drat.skip
-DskipTests -Papache-build
rm $tmp_settings
diff --git a/.scalafmt.conf b/.scalafmt.conf
new file mode 100644
index 0000000..6335c0e
--- /dev/null
+++ b/.scalafmt.conf
@@ -0,0 +1,70 @@
+runner.dialect = scala212
+
+# Version is required to make sure IntelliJ picks the right version
+version = 3.4.3
+preset = default
+
+# Max column
+maxColumn = 100
+
+# This parameter simply says the .stripMargin method was not redefined by the
user to assign
+# special meaning to indentation preceding the | character. Hence, that
indentation can be modified.
+assumeStandardLibraryStripMargin = true
+align.stripMargin = true
+
+# Align settings
+align.preset = none
+align.closeParenSite = false
+align.openParenCallSite = false
+danglingParentheses.defnSite = false
+danglingParentheses.callSite = false
+danglingParentheses.ctrlSite = true
+danglingParentheses.tupleSite = false
+align.openParenCallSite = false
+align.openParenDefnSite = false
+align.openParenTupleSite = false
+
+# Newlines
+newlines.alwaysBeforeElseAfterCurlyIf = false
+newlines.beforeCurlyLambdaParams = multiline # Newline before lambda params
+newlines.afterCurlyLambdaParams = squash # No newline after lambda params
+newlines.inInterpolation = "avoid"
+newlines.avoidInResultType = true
+optIn.annotationNewlines = true
+
+# Scaladoc
+docstrings.style = Asterisk # Javadoc style
+docstrings.removeEmpty = true
+docstrings.oneline = fold
+docstrings.forceBlankLineBefore = true
+
+# Indentation
+indent.extendSite = 2 # This makes sure extend is not indented as the ctor
parameters
+
+# Rewrites
+rewrite.rules = [AvoidInfix, Imports, RedundantBraces, SortModifiers]
+
+# Imports
+rewrite.imports.sort = scalastyle
+rewrite.imports.groups = [
+ ["org.apache.paimon\\..*"],
+ ["org.apache.paimon.shade\\..*"],
+ [".*"],
+ ["javax\\..*"],
+ ["java\\..*"],
+ ["scala\\..*"]
+]
+rewrite.imports.contiguousGroups = no
+importSelectors = singleline # Imports in a single line, like IntelliJ
+
+# Remove redundant braces in string interpolation.
+rewrite.redundantBraces.stringInterpolation = true
+rewrite.redundantBraces.defnBodies = false
+rewrite.redundantBraces.generalExpressions = false
+rewrite.redundantBraces.ifElseExpressions = false
+rewrite.redundantBraces.methodBodies = false
+rewrite.redundantBraces.includeUnitMethods = false
+rewrite.redundantBraces.maxBreaks = 1
+
+# Remove trailing commas
+rewrite.trailingCommas.style = "never"
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
b/copyright.txt
similarity index 75%
copy from
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
copy to copyright.txt
index 467b03c..e5cdfe9 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
+++ b/copyright.txt
@@ -16,16 +16,3 @@
* limitations under the License.
*/
-package org.apache.paimon.trino;
-
-import io.trino.spi.type.Int128;
-
-import java.math.BigInteger;
-
-/** Utils for decimal. */
-public class DecimalUtils {
-
- public static BigInteger toBigInteger(Object value) {
- return ((Int128) value).toBigInteger();
- }
-}
diff --git a/paimon-trino-440/pom.xml b/paimon-trino-440/pom.xml
deleted file mode 100644
index 7be8f4b..0000000
--- a/paimon-trino-440/pom.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <artifactId>paimon-trino</artifactId>
- <groupId>org.apache.paimon</groupId>
- <version>1.0-SNAPSHOT</version>
- </parent>
-
- <packaging>jar</packaging>
-
- <artifactId>paimon-trino-440</artifactId>
- <name>Paimon : Trino : 440</name>
-
- <properties>
- <target.java.version>21</target.java.version>
- <jdk.test.version>21</jdk.test.version>
- <trino.version>440</trino.version>
- <airlift.version>241</airlift.version>
- <slice.version>2.2</slice.version>
-
<maven.toolchains.plugin.version>3.1.0</maven.toolchains.plugin.version>
- <hadoop.apache.version>3.2.0-18</hadoop.apache.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>io.trino.hadoop</groupId>
- <artifactId>hadoop-apache</artifactId>
- <version>${hadoop.apache.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-plugin-toolkit</artifactId>
- <version>${trino.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-spi</artifactId>
- <version>${trino.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.openjdk.jol</groupId>
- <artifactId>jol-core</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-hdfs</artifactId>
- <version>${trino.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-hive</artifactId>
- <version>${trino.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.airlift</groupId>
- <artifactId>bootstrap</artifactId>
- <version>${airlift.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.airlift</groupId>
- <artifactId>configuration</artifactId>
- <version>${airlift.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.airlift</groupId>
- <artifactId>slice</artifactId>
- <version>${slice.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- for testing -->
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-client</artifactId>
- <version>${trino.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-main</artifactId>
- <version>${trino.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>io.trino</groupId>
- <artifactId>trino-testing</artifactId>
- <version>${trino.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-toolchains-plugin</artifactId>
- <version>${maven.toolchains.plugin.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>toolchain</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <toolchains>
- <jdk>
- <version>${jdk.test.version}</version>
- </jdk>
- </toolchains>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
- <configuration>
- <source>${target.java.version}</source>
- <target>${target.java.version}</target>
- <testSource>${jdk.test.version}</testSource>
- <testTarget>${jdk.test.version}</testTarget>
- <testRelease>${jdk.test.version}</testRelease>
- <!-- The semantics of this option are reversed, see
MCOMPILER-209. -->
-
<useIncrementalCompilation>false</useIncrementalCompilation>
- <compilerArgs>
- <!-- Prevents recompilation due to missing
package-info.class, see MCOMPILER-205 -->
- <arg>-Xpkginfo:always</arg>
- </compilerArgs>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <executions>
- <execution>
- <id>shade-paimon</id>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <artifactSet>
- <includes combine.children="append">
-
<include>org.apache.paimon:paimon-bundle</include>
- <include>com.google.guava:guava</include>
-
<include>org.xerial.snappy:snappy-java</include>
- <include>org.slf4j:slf4j-api</include>
-
<include>org.apache.logging.log4j:log4j-api</include>
-
<include>org.apache.logging.log4j:log4j-core</include>
-
<include>org.apache.logging.log4j:log4j-slf4j-impl</include>
-
<include>org.apache.logging.log4j:log4j-1.2-api</include>
-
<include>org.apache.commons:commons-lang3</include>
- </includes>
- </artifactSet>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.5.5</version>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/paimon.xml</descriptor>
- </descriptors>
- </configuration>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
deleted file mode 100644
index fe22488..0000000
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.paimon.trino;
-
-import io.trino.spi.connector.ConnectorTransactionHandle;
-
-/** An empty transaction handle. */
-public enum TrinoTransactionHandle implements ConnectorTransactionHandle {
- INSTANCE
-}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
deleted file mode 100644
index b37ebe8..0000000
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
- *
- */
-
-package org.apache.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileStatus;
-import org.apache.paimon.fs.Path;
-
-/** File status for directory. */
-public class TrinoDirectoryFileStatus implements FileStatus {
-
- private final Path path;
-
- public TrinoDirectoryFileStatus(Path path) {
- this.path = path;
- }
-
- @Override
- public long getLen() {
- // can't get len by trino file system
- return -1;
- }
-
- @Override
- public boolean isDir() {
- return true;
- }
-
- @Override
- public Path getPath() {
- return path;
- }
-
- @Override
- public long getModificationTime() {
- // can't get modification time by trino file system
- return -1;
- }
-}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
deleted file mode 100644
index e891cfa..0000000
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
- *
- */
-
-package org.apache.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileIO;
-import org.apache.paimon.fs.FileIOLoader;
-import org.apache.paimon.fs.Path;
-
-import io.trino.filesystem.TrinoFileSystem;
-
-/** Trino file io loader for paimon. */
-public class TrinoFileIOLoader implements FileIOLoader {
-
- private final TrinoFileSystem trinoFileSystem;
-
- public TrinoFileIOLoader(TrinoFileSystem trinoFileSystem) {
- this.trinoFileSystem = trinoFileSystem;
- }
-
- @Override
- public String getScheme() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public FileIO load(Path path) {
- return new TrinoFileIO(trinoFileSystem, path);
- }
-}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
b/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
deleted file mode 100644
index a3fdacf..0000000
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
- *
- */
-
-package org.apache.paimon.trino.fileio;
-
-import org.apache.paimon.fs.FileStatus;
-import org.apache.paimon.fs.Path;
-
-/** File status for trino file. */
-public class TrinoFileStatus implements FileStatus {
-
- private final long len;
- private final Path path;
- private final long modificationTmie;
-
- public TrinoFileStatus(long len, Path path, long modificationTmie) {
- this.len = len;
- this.path = path;
- this.modificationTmie = modificationTmie;
- }
-
- @Override
- public long getLen() {
- return len;
- }
-
- @Override
- public boolean isDir() {
- return false;
- }
-
- @Override
- public Path getPath() {
- return path;
- }
-
- @Override
- public long getModificationTime() {
- return modificationTmie;
- }
-}
diff --git a/pom.xml b/pom.xml
index d137d6f..20693a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,33 +21,14 @@ under the License.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <modules>
- <module>paimon-trino-440</module>
- </modules>
-
<parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>23</version>
+ <groupId>org.apache.paimon</groupId>
+ <artifactId>paimon-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
</parent>
- <groupId>org.apache.paimon</groupId>
- <artifactId>paimon-trino</artifactId>
- <name>Paimon : Trino</name>
- <version>1.0-SNAPSHOT</version>
-
- <packaging>pom</packaging>
-
- <url>https://paimon.apache.org</url>
- <inceptionYear>2023</inceptionYear>
-
- <licenses>
- <license>
- <name>The Apache Software License, Version 2.0</name>
- <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
+ <artifactId>paimon-trino-${trino.version}</artifactId>
+ <name>Paimon : Trino : ${trino.version}</name>
<scm>
<url>https://github.com/apache/paimon-trino</url>
@@ -57,9 +38,15 @@ under the License.
<properties>
<paimon.version>1.0-SNAPSHOT</paimon.version>
- <target.java.version>11</target.java.version>
+ <target.java.version>21</target.java.version>
+ <jdk.test.version>21</jdk.test.version>
+ <trino.version>440</trino.version>
+ <airlift.version>241</airlift.version>
+ <slice.version>2.2</slice.version>
+
<maven.toolchains.plugin.version>3.1.0</maven.toolchains.plugin.version>
+ <hadoop.apache.version>3.2.0-18</hadoop.apache.version>
<junit5.version>5.8.1</junit5.version>
- <slf4j.version>2.0.7</slf4j.version>
+ <slf4j.version>2.0.13</slf4j.version>
<guava.version>31.1-jre</guava.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<findbugs.version>1.3.9</findbugs.version>
@@ -67,25 +54,6 @@ under the License.
<maven.compiler.version>3.10.1</maven.compiler.version>
<spotless.version>2.43.0</spotless.version>
<spotless.delimiter>package</spotless.delimiter>
- <spotless.license.header>
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
- * See the License for the specific language governing permissions
and
- * limitations under the License.
- */
- </spotless.license.header>
</properties>
<dependencies>
@@ -106,15 +74,98 @@ under the License.
</dependency>
<dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter</artifactId>
- <version>${junit5.version}</version>
+ <groupId>io.trino.hadoop</groupId>
+ <artifactId>hadoop-apache</artifactId>
+ <version>${hadoop.apache.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-plugin-toolkit</artifactId>
+ <version>${trino.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-spi</artifactId>
+ <version>${trino.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.openjdk.jol</groupId>
+ <artifactId>jol-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-hdfs</artifactId>
+ <version>${trino.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-hive</artifactId>
+ <version>${trino.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.airlift</groupId>
+ <artifactId>bootstrap</artifactId>
+ <version>${airlift.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.airlift</groupId>
+ <artifactId>configuration</artifactId>
+ <version>${airlift.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.airlift</groupId>
+ <artifactId>slice</artifactId>
+ <version>${slice.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- for testing -->
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-client</artifactId>
+ <version>${trino.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-main</artifactId>
+ <version>${trino.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>io.trino</groupId>
+ <artifactId>trino-testing</artifactId>
+ <version>${trino.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- log and util-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
@@ -147,7 +198,6 @@ under the License.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>${maven.compiler.version}</version>
</plugin>
<plugin>
@@ -164,119 +214,40 @@ under the License.
<java>
<googleJavaFormat>
<version>1.17.0</version>
+ <style>AOSP</style>
</googleJavaFormat>
- </java>
- </configuration>
- </plugin>
+ <!-- \# refers to the static imports -->
+ <importOrder>
+
<order>org.apache.paimon,org.apache.paimon.shaded,,javax,java,scala,\#</order>
+ </importOrder>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
- <configuration>
- <source>${target.java.version}</source>
- <target>${target.java.version}</target>
- <!-- The semantics of this option are reversed, see
MCOMPILER-209. -->
-
<useIncrementalCompilation>false</useIncrementalCompilation>
- <compilerArgs>
- <!-- Prevents recompilation due to missing
package-info.class, see MCOMPILER-205 -->
- <arg>-Xpkginfo:always</arg>
- </compilerArgs>
+ <removeUnusedImports/>
+ </java>
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.15</version>
- <inherited>false</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>3.2.1</version>
<executions>
<execution>
- <phase>verify</phase>
+ <id>attach-sources</id>
<goals>
- <goal>check</goal>
+ <goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
- <configuration>
- <excludeSubProjects>false</excludeSubProjects>
- <numUnapprovedLicenses>0</numUnapprovedLicenses>
- <licenses>
- <!-- Enforce this license:
- Licensed to the Apache Software Foundation (ASF)
under one
- or more contributor license agreements. See the
NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses
this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in
compliance
- with the License. You may obtain a copy of the
License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in
writing,
- software distributed under the License is
distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
ANY
- KIND, either express or implied. See the License
for the
- specific language governing permissions and
limitations
- under the License.
- -->
- <license
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>AL2</licenseFamilyCategory>
- <licenseFamilyName>Apache License
2.0</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Licensed to the Apache Software
Foundation (ASF) under one</pattern>
- </patterns>
- </license>
- </licenses>
- <licenseFamilies>
- <licenseFamily
implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>Apache License 2.0</familyName>
- </licenseFamily>
- </licenseFamilies>
- <excludes>
- <!-- Additional files like .gitignore etc.-->
- <exclude>**/.*/**</exclude>
- <exclude>**/*.prefs</exclude>
- <exclude>**/*.log</exclude>
- <!-- Administrative files in the main trunk. -->
- <exclude>**/README.md</exclude>
- <exclude>**/CODE_OF_CONDUCT.md</exclude>
- <exclude>.github/**</exclude>
- <!-- IDE files. -->
- <exclude>**/*.iml</exclude>
- <exclude>**/.idea/**</exclude>
- <!-- Generated content -->
- <exclude>**/target/**</exclude>
- <exclude>docs/static/font-awesome/**</exclude>
- <exclude>docs/resources/**</exclude>
- <exclude>docs/public/**</exclude>
- <exclude>docs/themes/book/**</exclude>
- <exclude>docs/assets/github.css</exclude>
- <exclude>docs/static/js/anchor.min.js</exclude>
- <exclude>docs/layouts/shortcodes/generated/**</exclude>
- <exclude>**/*.svg</exclude>
- <exclude>**/dependency-reduced-pom.xml</exclude>
- <!-- Bundled license files -->
- <exclude>**/LICENSE*</exclude>
- <!-- artifacts created during release process -->
- <exclude>release/**</exclude>
- <!-- antlr grammar files -->
- <exclude>paimon-common/src/main/antlr4/**</exclude>
- <!-- Test files -->
-
<exclude>paimon-common/src/test/resources/codesplit/**</exclude>
- </excludes>
- </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>3.2.1</version>
+ <artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
- <id>attach-sources</id>
<goals>
- <goal>jar-no-fork</goal>
+ <goal>test-jar</goal>
</goals>
</execution>
</executions>
@@ -284,259 +255,84 @@ under the License.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
+ <artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
- <id>enforce-maven</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <requireMavenVersion>
- <!-- enforce at least mvn version 3.1.1
(see FLINK-12447) -->
- <version>[3.1.1,)</version>
- </requireMavenVersion>
- <!-- <requireJavaVersion>
- <version>${target.java.version}</version>
- </requireJavaVersion>-->
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>ban-unsafe-snakeyaml</id>
+ <id>shade-paimon</id>
+ <phase>package</phase>
<goals>
- <goal>enforce</goal>
+ <goal>shade</goal>
</goals>
<configuration>
- <rules>
- <bannedDependencies>
- <excludes>
-
<exclude>org.yaml:snakeyaml:(,1.26]</exclude>
- </excludes>
- <includes>
- <!-- Snakeyaml is pulled in by many
modules without using it in production,
- so there's no benefit in us
investing time into bumping these. -->
-
<include>org.yaml:snakeyaml:(,1.26]:*:test</include>
- </includes>
- </bannedDependencies>
- </rules>
+ <artifactSet>
+ <includes combine.children="append">
+
<include>org.apache.paimon:paimon-bundle</include>
+ <include>com.google.guava:guava</include>
+
<include>org.xerial.snappy:snappy-java</include>
+ <include>org.slf4j:slf4j-api</include>
+
<include>org.apache.logging.log4j:log4j-api</include>
+
<include>org.apache.logging.log4j:log4j-core</include>
+
<include>org.apache.logging.log4j:log4j-slf4j-impl</include>
+
<include>org.apache.logging.log4j:log4j-1.2-api</include>
+
<include>org.apache.commons:commons-lang3</include>
+ </includes>
+ </artifactSet>
</configuration>
</execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.5.5</version>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/paimon.xml</descriptor>
+ </descriptors>
+ </configuration>
+ <executions>
<execution>
- <id>ban-unsafe-jackson</id>
+ <phase>package</phase>
<goals>
- <goal>enforce</goal>
+ <goal>attached</goal>
</goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
-
<exclude>com.fasterxml.jackson*:*:(,2.7.0]</exclude>
- </excludes>
- </bannedDependencies>
- </rules>
- </configuration>
</execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.commonjava.maven.plugins</groupId>
+ <artifactId>directory-maven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
<execution>
- <id>forbid-log4j-1</id>
+ <id>directories</id>
<goals>
- <goal>enforce</goal>
+ <goal>directory-of</goal>
</goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>log4j:log4j</exclude>
-
<exclude>org.slf4j:slf4j-log4j12</exclude>
- </excludes>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>dependency-convergence</id>
- <!-- disabled by default as it interacts badly with
shade-plugin -->
<phase>none</phase>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <dependencyConvergence/>
- </rules>
- </configuration>
</execution>
</executions>
</plugin>
</plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.7</version>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
- <configuration>
- <source>${target.java.version}</source>
- <target>${target.java.version}</target>
- <!-- The semantics of this option are reversed, see
MCOMPILER-209. -->
-
<useIncrementalCompilation>false</useIncrementalCompilation>
- <compilerArgs>
- <!-- Prevents recompilation due to missing
package-info.class, see MCOMPILER-205 -->
- <arg>-Xpkginfo:always</arg>
- </compilerArgs>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.17</version>
- <dependencies>
- <dependency>
- <groupId>com.puppycrawl.tools</groupId>
- <artifactId>checkstyle</artifactId>
- <!-- Note: match version with
docs/flinkDev/ide_setup.md -->
- <version>8.14</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <id>validate</id>
- <phase>validate</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
-
<suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation>
-
<includeTestSourceDirectory>true</includeTestSourceDirectory>
-
<configLocation>/tools/maven/checkstyle.xml</configLocation>
- <logViolationsToConsole>true</logViolationsToConsole>
- <failOnViolation>true</failOnViolation>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>com.diffplug.spotless</groupId>
- <artifactId>spotless-maven-plugin</artifactId>
- <version>${spotless.version}</version>
- <configuration>
- <java>
- <googleJavaFormat>
- <version>1.7</version>
- <style>AOSP</style>
- </googleJavaFormat>
-
- <!-- \# refers to the static imports -->
- <importOrder>
-
<order>org.apache.paimon,org.apache.paimon.shaded,,javax,java,scala,\#</order>
- </importOrder>
-
- <removeUnusedImports/>
- </java>
- </configuration>
- <executions>
- <execution>
- <id>spotless-check</id>
- <phase>validate</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.9.1</version><!--$NO-MVN-MAN-VER$-->
- <configuration>
- <quiet>true</quiet>
- <detectOfflineLinks>false</detectOfflineLinks>
- <additionalJOptions combine.children="append">
-
<additionalJOption>-Xdoclint:none</additionalJOption>
- </additionalJOptions>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>3.0.0-M1</version>
- </plugin>
-
- <!-- Pin the version of the maven shade plugin -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>3.4.1</version>
- </plugin>
-
- <!-- configure scala style -->
- <plugin>
- <groupId>org.scalastyle</groupId>
- <artifactId>scalastyle-maven-plugin</artifactId>
- <version>1.0.0</version>
- <executions>
- <execution>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <verbose>false</verbose>
- <failOnViolation>true</failOnViolation>
-
<includeTestSourceDirectory>true</includeTestSourceDirectory>
- <failOnWarning>false</failOnWarning>
-
<sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
-
<testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
-
<outputFile>${project.basedir}/target/scalastyle-output.xml</outputFile>
- <inputEncoding>UTF-8</inputEncoding>
- <outputEncoding>UTF-8</outputEncoding>
- </configuration>
- </plugin>
-
- <plugin>
- <!-- Inherited from Apache parent, but not actually used.
Disable to reduce noise. -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-descriptor</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-remote-resources-plugin</artifactId>
- <version>1.7.0</version>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <resourceBundles>
-
<resourceBundle>org.apache.apache.resources:apache-incubator-disclaimer-resource-bundle:1.5</resourceBundle>
- </resourceBundles>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </pluginManagement>
</build>
+ <profiles>
+ <profile>
+ <id>apache-build</id>
+ <repositories>
+ <repository>
+ <id>apache-releases</id>
+ <name>apache releases</name>
+
<url>https://repository.apache.org/content/repositories/releases/</url>
+ </repository>
+ <repository>
+ <id>apache-snapshots</id>
+ <name>apache snapshots</name>
+
<url>https://repository.apache.org/content/repositories/snapshots/</url>
+ </repository>
+ </repositories>
+ </profile>
+ </profiles>
</project>
diff --git a/paimon-trino-440/src/main/assembly/paimon.xml
b/src/main/assembly/paimon.xml
similarity index 100%
rename from paimon-trino-440/src/main/assembly/paimon.xml
rename to src/main/assembly/paimon.xml
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
b/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
rename to src/main/java/org/apache/paimon/trino/ClassLoaderUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
b/src/main/java/org/apache/paimon/trino/DecimalUtils.java
similarity index 100%
copy from
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
copy to src/main/java/org/apache/paimon/trino/DecimalUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
b/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
rename to src/main/java/org/apache/paimon/trino/DirectTrinoPageSource.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/EncodingUtils.java
b/src/main/java/org/apache/paimon/trino/EncodingUtils.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/EncodingUtils.java
rename to src/main/java/org/apache/paimon/trino/EncodingUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/FieldNameUtils.java
b/src/main/java/org/apache/paimon/trino/FieldNameUtils.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/FieldNameUtils.java
rename to src/main/java/org/apache/paimon/trino/FieldNameUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
b/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
rename to
src/main/java/org/apache/paimon/trino/FixedBucketTableShuffleFunction.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
b/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoColumnHandle.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnector.java
b/src/main/java/org/apache/paimon/trino/TrinoConnector.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnector.java
rename to src/main/java/org/apache/paimon/trino/TrinoConnector.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
b/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
rename to src/main/java/org/apache/paimon/trino/TrinoConnectorFactory.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
b/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
rename to src/main/java/org/apache/paimon/trino/TrinoFilterConverter.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
b/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
rename to src/main/java/org/apache/paimon/trino/TrinoFilterExtractor.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
b/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
rename to src/main/java/org/apache/paimon/trino/TrinoMergePageSourceWrapper.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
b/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
rename to src/main/java/org/apache/paimon/trino/TrinoMergeSink.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
b/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
similarity index 100%
copy from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
copy to src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadata.java
b/src/main/java/org/apache/paimon/trino/TrinoMetadata.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadata.java
rename to src/main/java/org/apache/paimon/trino/TrinoMetadata.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
b/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
rename to src/main/java/org/apache/paimon/trino/TrinoMetadataFactory.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoModule.java
b/src/main/java/org/apache/paimon/trino/TrinoModule.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoModule.java
rename to src/main/java/org/apache/paimon/trino/TrinoModule.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
b/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
rename to
src/main/java/org/apache/paimon/trino/TrinoNodePartitioningProvider.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
b/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
similarity index 58%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
index 250366c..7710eba 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoOrcDataSource.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino;
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSink.java
b/src/main/java/org/apache/paimon/trino/TrinoPageSink.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSink.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSink.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
b/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSinkProvider.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSource.java
b/src/main/java/org/apache/paimon/trino/TrinoPageSource.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSource.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
b/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSourceProvider.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
b/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
similarity index 77%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
rename to src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
index 2b03285..e0c0b81 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoPageSourceWrapper.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino;
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
b/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoPartitioningHandle.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
b/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
similarity index 100%
copy from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
copy to src/main/java/org/apache/paimon/trino/TrinoPlugin.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoRow.java
b/src/main/java/org/apache/paimon/trino/TrinoRow.java
similarity index 100%
rename from paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoRow.java
rename to src/main/java/org/apache/paimon/trino/TrinoRow.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
b/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
rename to src/main/java/org/apache/paimon/trino/TrinoSessionProperties.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplit.java
b/src/main/java/org/apache/paimon/trino/TrinoSplit.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplit.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplit.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
b/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplitManager.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
b/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
rename to src/main/java/org/apache/paimon/trino/TrinoSplitSource.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
b/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableHandle.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
b/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableOptionUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
b/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
rename to src/main/java/org/apache/paimon/trino/TrinoTableOptions.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
b/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
similarity index 78%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
index 467b03c..91e1830 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/DecimalUtils.java
+++ b/src/main/java/org/apache/paimon/trino/TrinoTransactionHandle.java
@@ -18,14 +18,9 @@
package org.apache.paimon.trino;
-import io.trino.spi.type.Int128;
+import io.trino.spi.connector.ConnectorTransactionHandle;
-import java.math.BigInteger;
-
-/** Utils for decimal. */
-public class DecimalUtils {
-
- public static BigInteger toBigInteger(Object value) {
- return ((Int128) value).toBigInteger();
- }
+/** An empty transaction handle. */
+public enum TrinoTransactionHandle implements ConnectorTransactionHandle {
+ INSTANCE
}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
b/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
similarity index 100%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
rename to src/main/java/org/apache/paimon/trino/TrinoTypeUtils.java
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
b/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
similarity index 89%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
rename to src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
index f5153b9..debafbc 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
+++ b/src/main/java/org/apache/paimon/trino/catalog/TrinoCatalog.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino.catalog;
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
b/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
similarity index 61%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
rename to
src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
index e342eb3..300d9a5 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
+++
b/src/main/java/org/apache/paimon/trino/fileio/PositionOutputStreamWrapper.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino.fileio;
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
b/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
similarity index 55%
copy from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
copy to
src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
index 901d6fa..90304be 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoDirectoryFileStatus.java
@@ -16,26 +16,39 @@
* limitations under the License.
*/
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.connector.ConnectorMergeTableHandle;
-import io.trino.spi.connector.ConnectorTableHandle;
+import org.apache.paimon.fs.FileStatus;
+import org.apache.paimon.fs.Path;
-/** Trino {@link ConnectorMergeTableHandle}. */
-public class TrinoMergeTableHandle implements ConnectorMergeTableHandle {
+/** File status for directory. */
+public class TrinoDirectoryFileStatus implements FileStatus {
- private final TrinoTableHandle tableHandle;
+ private final Path path;
- @JsonCreator
- public TrinoMergeTableHandle(@JsonProperty("tableHandle") TrinoTableHandle
tableHandle) {
- this.tableHandle = tableHandle;
+ public TrinoDirectoryFileStatus(Path path) {
+ this.path = path;
}
@Override
- @JsonProperty
- public ConnectorTableHandle getTableHandle() {
- return tableHandle;
+ public long getLen() {
+ // can't get len by trino file system
+ return -1;
+ }
+
+ @Override
+ public boolean isDir() {
+ return true;
+ }
+
+ @Override
+ public Path getPath() {
+ return path;
+ }
+
+ @Override
+ public long getModificationTime() {
+ // can't get modification time by trino file system
+ return -1;
}
}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
similarity index 88%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
index 48d1f68..da6d911 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIO.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino.fileio;
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
similarity index 55%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
index 8e6c39c..aba6597 100644
--- a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoPlugin.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileIOLoader.java
@@ -16,17 +16,30 @@
* limitations under the License.
*/
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
-import io.trino.spi.Plugin;
-import io.trino.spi.connector.ConnectorFactory;
+import org.apache.paimon.fs.FileIO;
+import org.apache.paimon.fs.FileIOLoader;
+import org.apache.paimon.fs.Path;
-import java.util.Collections;
+import io.trino.filesystem.TrinoFileSystem;
+
+/** Trino file io loader for paimon. */
+public class TrinoFileIOLoader implements FileIOLoader {
+
+ private final TrinoFileSystem trinoFileSystem;
+
+ public TrinoFileIOLoader(TrinoFileSystem trinoFileSystem) {
+ this.trinoFileSystem = trinoFileSystem;
+ }
+
+ @Override
+ public String getScheme() {
+ throw new UnsupportedOperationException();
+ }
-/** Trino {@link Plugin}. */
-public class TrinoPlugin implements Plugin {
@Override
- public Iterable<ConnectorFactory> getConnectorFactories() {
- return Collections.singletonList(new TrinoConnectorFactory());
+ public FileIO load(Path path) {
+ return new TrinoFileIO(trinoFileSystem, path);
}
}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
similarity index 52%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
rename to src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
index 901d6fa..8de780b 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/TrinoMergeTableHandle.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoFileStatus.java
@@ -16,26 +16,41 @@
* limitations under the License.
*/
-package org.apache.paimon.trino;
+package org.apache.paimon.trino.fileio;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.connector.ConnectorMergeTableHandle;
-import io.trino.spi.connector.ConnectorTableHandle;
+import org.apache.paimon.fs.FileStatus;
+import org.apache.paimon.fs.Path;
-/** Trino {@link ConnectorMergeTableHandle}. */
-public class TrinoMergeTableHandle implements ConnectorMergeTableHandle {
+/** File status for trino file. */
+public class TrinoFileStatus implements FileStatus {
- private final TrinoTableHandle tableHandle;
+ private final long len;
+ private final Path path;
+ private final long modificationTmie;
- @JsonCreator
- public TrinoMergeTableHandle(@JsonProperty("tableHandle") TrinoTableHandle
tableHandle) {
- this.tableHandle = tableHandle;
+ public TrinoFileStatus(long len, Path path, long modificationTmie) {
+ this.len = len;
+ this.path = path;
+ this.modificationTmie = modificationTmie;
}
@Override
- @JsonProperty
- public ConnectorTableHandle getTableHandle() {
- return tableHandle;
+ public long getLen() {
+ return len;
+ }
+
+ @Override
+ public boolean isDir() {
+ return false;
+ }
+
+ @Override
+ public Path getPath() {
+ return path;
+ }
+
+ @Override
+ public long getModificationTime() {
+ return modificationTmie;
}
}
diff --git
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
b/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
similarity index 74%
rename from
paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
rename to
src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
index 292ae2e..b7de679 100644
---
a/paimon-trino-440/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
+++ b/src/main/java/org/apache/paimon/trino/fileio/TrinoInputStreamWrapper.java
@@ -1,21 +1,19 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * * Licensed to the Apache Software Foundation (ASF) under one
- * * or more contributor license agreements. See the NOTICE file
- * * distributed with this work for additional information
- * * regarding copyright ownership. The ASF licenses this file
- * * to you under the Apache License, Version 2.0 (the
- * * "License"); you may not use this file except in compliance
- * * with the License. You may obtain a copy of the License at
- * *
- * * http://www.apache.org/licenses/LICENSE-2.0
- * *
- * * Unless required by applicable law or agreed to in writing, software
- * * distributed under the License is distributed on an "AS IS" BASIS,
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.paimon.trino.fileio;
diff --git
a/paimon-trino-440/src/main/resources/META-INF/services/io.trino.spi.Plugin
b/src/main/resources/META-INF/services/io.trino.spi.Plugin
similarity index 100%
rename from
paimon-trino-440/src/main/resources/META-INF/services/io.trino.spi.Plugin
rename to src/main/resources/META-INF/services/io.trino.spi.Plugin
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
b/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
similarity index 100%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
rename to src/test/java/org/apache/paimon/trino/SimpleTableTestHelper.java
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
b/src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
similarity index 98%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
index 686d9cb..e4d7408 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoColumnHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoColumnHandleTest.java
@@ -32,7 +32,7 @@ import static
io.trino.type.InternalTypeManager.TESTING_TYPE_MANAGER;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoColumnHandle}. */
-public class TestTrinoColumnHandle {
+public class TrinoColumnHandleTest {
@Test
public void testTrinoColumnHandle() {
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
b/src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
similarity index 97%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
rename to src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
index 0241e60..7ab4f58 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoConnectorFactory.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoConnectorFactoryTest.java
@@ -31,7 +31,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoConnectorFactory}. */
-public class TestTrinoConnectorFactory {
+public class TrinoConnectorFactoryTest {
@TempDir java.nio.file.Path tempFile;
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
b/src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
similarity index 99%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
rename to src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
index f6ff250..a6e67d0 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoDistributedQuery.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoDistributedQueryTest.java
@@ -24,7 +24,7 @@ import io.trino.testing.AbstractDistributedEngineOnlyQueries;
import io.trino.testing.QueryRunner;
/** The test of TrinoDistributedQuery. */
-public class TestTrinoDistributedQuery extends
AbstractDistributedEngineOnlyQueries {
+public class TrinoDistributedQueryTest extends
AbstractDistributedEngineOnlyQueries {
@Override
protected QueryRunner createQueryRunner() throws Exception {
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
b/src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
similarity index 99%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
rename to src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
index d75a1c8..4f1c4f0 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterConverter.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoFilterConverterTest.java
@@ -7,7 +7,7 @@
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -48,7 +48,7 @@ import static
io.trino.spi.type.TimestampWithTimeZoneType.createTimestampWithTim
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoFilterConverter}. */
-public class TestTrinoFilterConverter {
+public class TrinoFilterConverterTest {
@Test
public void testAll() {
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
b/src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
similarity index 98%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
rename to src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
index 186750b..9b86f30 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoFilterExtractor.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoFilterExtractorTest.java
@@ -21,7 +21,7 @@ package org.apache.paimon.trino;
import org.junit.jupiter.api.Test;
/** The test of TestTrinoFilterExtractor. */
-public class TestTrinoFilterExtractor {
+public class TrinoFilterExtractorTest {
@Test
public void testExtractTrinoColumnHandleForExpressionFilter() {
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
b/src/test/java/org/apache/paimon/trino/TrinoITCase.java
similarity index 99%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
rename to src/test/java/org/apache/paimon/trino/TrinoITCase.java
index 538b592..1d460c4 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoITCase.java
@@ -70,7 +70,7 @@ import static org.apache.paimon.data.BinaryString.fromString;
import static org.assertj.core.api.Assertions.assertThat;
/** ITCase for trino connector. */
-public class TestTrinoITCase extends AbstractTestQueryFramework {
+public class TrinoITCase extends AbstractTestQueryFramework {
private static final String CATALOG = "paimon";
private static final String DB = "default";
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
b/src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
similarity index 97%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
index 7d97c7c..a358a42 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPartitioningHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoPartitioningHandleTest.java
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoPartitioningHandle}. */
-public class TestTrinoPartitioningHandle {
+public class TrinoPartitioningHandleTest {
private final JsonCodec<TrinoPartitioningHandle> codec =
JsonCodec.jsonCodec(TrinoPartitioningHandle.class);
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java
b/src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
similarity index 98%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java
rename to src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
index 38709d9..b37d090 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoPlugin.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoPluginTest.java
@@ -34,7 +34,7 @@ import static
org.apache.paimon.shade.guava30.com.google.common.collect.Iterable
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoPlugin}. */
-public class TestTrinoPlugin {
+public class TrinoPluginTest {
@Test
public void testCreatePrestoConnector() throws IOException {
String warehouse =
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
b/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
similarity index 100%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
rename to src/test/java/org/apache/paimon/trino/TrinoQueryRunner.java
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java
b/src/test/java/org/apache/paimon/trino/TrinoRowTest.java
similarity index 99%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java
rename to src/test/java/org/apache/paimon/trino/TrinoRowTest.java
index 580a93d..3bd4535 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoRow.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoRowTest.java
@@ -48,7 +48,7 @@ import static
io.trino.type.DateTimes.MICROSECONDS_PER_MILLISECOND;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
/** Test for {@link TrinoRow}. */
-public class TestTrinoRow {
+public class TrinoRowTest {
@Test
void test() {
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java
b/src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
similarity index 98%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java
rename to src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
index bb433d5..f7bcb32 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoSplit.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoSplitTest.java
@@ -26,7 +26,7 @@ import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoSplit}. */
-public class TestTrinoSplit {
+public class TrinoSplitTest {
private final JsonCodec<TrinoSplit> codec =
JsonCodec.jsonCodec(TrinoSplit.class);
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
b/src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
similarity index 98%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
rename to src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
index a5fe539..9737d7f 100644
---
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoTableHandle.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoTableHandleTest.java
@@ -29,7 +29,7 @@ import java.util.OptionalLong;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoTableHandle}. */
-public class TestTrinoTableHandle {
+public class TrinoTableHandleTest {
private final JsonCodec<TrinoTableHandle> codec =
JsonCodec.jsonCodec(TrinoTableHandle.class);
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
b/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
similarity index 100%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
rename to src/test/java/org/apache/paimon/trino/TrinoTestUtils.java
diff --git
a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java
b/src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
similarity index 99%
rename from
paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java
rename to src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
index 476b1bb..f2a5de0 100644
--- a/paimon-trino-440/src/test/java/org/apache/paimon/trino/TestTrinoType.java
+++ b/src/test/java/org/apache/paimon/trino/TrinoTypeTest.java
@@ -7,7 +7,7 @@
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -53,7 +53,7 @@ import java.util.Objects;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link TrinoTypeUtils}. */
-public class TestTrinoType {
+public class TrinoTypeTest {
@Test
public void testFromPaimonType() {
diff --git a/paimon-trino-440/src/test/resources/log4j2-test.properties
b/src/test/resources/log4j2-test.properties
similarity index 100%
rename from paimon-trino-440/src/test/resources/log4j2-test.properties
rename to src/test/resources/log4j2-test.properties