This is an automated email from the ASF dual-hosted git repository.
jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new 3f454c678 [AMORO-1744] Rename name with arctic identifier in
amoro-mixed-format-trino module (#2838)
3f454c678 is described below
commit 3f454c678565c5a17d0c55494178aee86be60fce
Author: ZhouJinsong <[email protected]>
AuthorDate: Fri May 17 10:57:58 2024 +0800
[AMORO-1744] Rename name with arctic identifier in amoro-mixed-format-trino
module (#2838)
* Rename name with arctic identifier in amoro-mixed-format-trino module
* Rollback not needed changes
---
.../trino/parquet/reader/ColumnReaderFactory.java | 2 +-
.../parquet/reader/TimestampColumnReader.java | 2 +-
.../{ArcticErrorCode.java => AmoroErrorCode.java} | 6 +--
.../amoro/trino/ArcticHadoopAuthentication.java | 41 -------------------
....java => DefaultMixedFormatCatalogFactory.java} | 27 ++++++-------
...Factory.java => MixedFormatCatalogFactory.java} | 8 ++--
...a => MixedFormatCatalogSupportTableSuffix.java} | 34 ++++++++--------
.../{ArcticConfig.java => MixedFormatConfig.java} | 16 ++++----
...ticConnector.java => MixedFormatConnector.java} | 15 +++----
...ctory.java => MixedFormatConnectorFactory.java} | 17 +++-----
...data.java => MixedFormatConnectorMetadata.java} | 26 ++++++------
....java => MixedFormatConnectorSplitManager.java} | 6 +--
...ion.java => MixedFormatHdfsAuthentication.java} | 16 ++++----
...tion.java => MixedFormatHdfsConfiguration.java} | 10 ++---
...actory.java => MixedFormatMetadataFactory.java} | 30 +++++++-------
.../{ArcticModule.java => MixedFormatModule.java} | 29 +++++++-------
...der.java => MixedFormatPageSourceProvider.java} | 6 +--
.../{ArcticPlugin.java => MixedFormatPlugin.java} | 6 +--
...ties.java => MixedFormatSessionProperties.java} | 40 +++++++++----------
...ger.java => MixedFormatTransactionManager.java} | 18 ++++-----
...noCatalog.java => MixedFormatTrinoCatalog.java} | 26 ++++++------
...ry.java => MixedFormatTrinoCatalogFactory.java} | 13 +++---
.../amoro/trino/delete/DummyFileScanTask.java | 2 +-
.../apache/amoro/trino/delete/TrinoDeleteFile.java | 2 +-
.../org/apache/amoro/trino/delete/TrinoRow.java | 2 +-
.../amoro/trino/keyed/KeyedConnectorMetadata.java | 46 +++++++++++-----------
.../trino/keyed/KeyedConnectorPageSource.java | 16 ++++----
.../trino/keyed/KeyedConnectorSplitManager.java | 33 ++++++----------
.../amoro/trino/keyed/KeyedPageSourceProvider.java | 4 +-
.../amoro/trino/unkeyed/IcebergMetadata.java | 2 +-
.../amoro/trino/unkeyed/IcebergPageSource.java | 2 +-
.../trino/unkeyed/IcebergPageSourceProvider.java | 2 +-
.../apache/amoro/trino/unkeyed/IcebergSplit.java | 2 +-
.../amoro/trino/unkeyed/IcebergSplitManager.java | 10 ++---
.../amoro/trino/unkeyed/IcebergSplitSource.java | 2 +-
.../amoro/trino/unkeyed/TrinoDeleteFilter.java | 2 +-
.../META-INF/services/io.trino.spi.Plugin | 20 +---------
...ueryRunner.java => MixedFormatQueryRunner.java} | 20 +++++-----
.../apache/amoro/trino/mixed/TestHiveTable.java | 20 +++++-----
...ArcticPrimaryTable.java => TestKeyedTable.java} | 27 +++++++------
docs/engines/trino.md | 14 +++----
41 files changed, 273 insertions(+), 349 deletions(-)
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/ColumnReaderFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/ColumnReaderFactory.java
index 05dca75a9..e1e13e500 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/ColumnReaderFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/ColumnReaderFactory.java
@@ -81,7 +81,7 @@ import org.joda.time.DateTimeZone;
import java.util.Optional;
-/** Copy from trino-parquet ColumnReaderFactory and do some change to adapt
Arctic */
+/** Copy from trino-parquet ColumnReaderFactory and do some change to adapt
mixed-format table */
public final class ColumnReaderFactory {
private ColumnReaderFactory() {}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/TimestampColumnReader.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/TimestampColumnReader.java
index 759b00762..4df65237e 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/TimestampColumnReader.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/io/trino/parquet/reader/TimestampColumnReader.java
@@ -29,7 +29,7 @@ import io.trino.spi.type.TimestampWithTimeZoneType;
import io.trino.spi.type.Type;
import org.joda.time.DateTimeZone;
-/** Copy from trino-parquet TimestampColumnReader and do some change to adapt
Arctic */
+/** Copy from trino-parquet TimestampColumnReader and do some change to adapt
mixed-format table */
public class TimestampColumnReader extends PrimitiveColumnReader {
private final DateTimeZone timeZone;
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticErrorCode.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/AmoroErrorCode.java
similarity index 89%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticErrorCode.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/AmoroErrorCode.java
index c4b0476cc..f48fcb9ea 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticErrorCode.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/AmoroErrorCode.java
@@ -25,12 +25,12 @@ import io.trino.spi.ErrorCodeSupplier;
import io.trino.spi.ErrorType;
/** Error code */
-public enum ArcticErrorCode implements ErrorCodeSupplier {
- ARCTIC_BAD_DATA(4, EXTERNAL);
+public enum AmoroErrorCode implements ErrorCodeSupplier {
+ AMORO_BAD_DATA(4, EXTERNAL);
private final ErrorCode errorCode;
- ArcticErrorCode(int code, ErrorType type) {
+ AmoroErrorCode(int code, ErrorType type) {
errorCode = new ErrorCode(code + 0x0504_0000, name(), type);
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHadoopAuthentication.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHadoopAuthentication.java
deleted file mode 100644
index e1709d475..000000000
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHadoopAuthentication.java
+++ /dev/null
@@ -1,41 +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.amoro.trino;
-
-import com.google.inject.Inject;
-import org.apache.amoro.table.TableMetaStore;
-import io.trino.hdfs.authentication.HadoopAuthentication;
-import org.apache.hadoop.security.UserGroupInformation;
-
-/** Arctic Hadoop Authentication using TableMetaStore */
-public class ArcticHadoopAuthentication implements HadoopAuthentication {
-
- private final ArcticCatalogFactory arcticCatalogFactory;
-
- @Inject
- public ArcticHadoopAuthentication(ArcticCatalogFactory arcticCatalogFactory)
{
- this.arcticCatalogFactory = arcticCatalogFactory;
- }
-
- @Override
- public UserGroupInformation getUserGroupInformation() {
- TableMetaStore tableMetaStore = arcticCatalogFactory.getTableMetastore();
- return tableMetaStore.getUGI();
- }
-}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultArcticCatalogFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultMixedFormatCatalogFactory.java
similarity index 71%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultArcticCatalogFactory.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultMixedFormatCatalogFactory.java
index 77562f1cd..e491fcd0e 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultArcticCatalogFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/DefaultMixedFormatCatalogFactory.java
@@ -30,32 +30,31 @@ import javax.inject.Inject;
import java.util.Collections;
/** A factory to generate {@link MixedFormatCatalog} */
-public class DefaultArcticCatalogFactory implements ArcticCatalogFactory {
+public class DefaultMixedFormatCatalogFactory implements
MixedFormatCatalogFactory {
- private final ArcticConfig arcticConfig;
-
- private volatile MixedFormatCatalog arcticCatalog;
+ private final MixedFormatConfig mixedFormatConfig;
+ private volatile MixedFormatCatalog mixedFormatCatalog;
private volatile TableMetaStore tableMetaStore;
@Inject
- public DefaultArcticCatalogFactory(ArcticConfig arcticConfig) {
- this.arcticConfig = arcticConfig;
+ public DefaultMixedFormatCatalogFactory(MixedFormatConfig mixedFormatConfig)
{
+ this.mixedFormatConfig = mixedFormatConfig;
}
- public MixedFormatCatalog getArcticCatalog() {
- if (arcticCatalog == null) {
+ public MixedFormatCatalog getMixedFormatCatalog() {
+ if (mixedFormatCatalog == null) {
synchronized (this) {
- if (arcticCatalog == null) {
+ if (mixedFormatCatalog == null) {
try (ThreadContextClassLoader ignored =
new ThreadContextClassLoader(this.getClass().getClassLoader())) {
- this.arcticCatalog =
- new ArcticCatalogSupportTableSuffix(
- CatalogLoader.load(arcticConfig.getCatalogUrl(),
Collections.emptyMap()));
+ this.mixedFormatCatalog =
+ new MixedFormatCatalogSupportTableSuffix(
+ CatalogLoader.load(mixedFormatConfig.getCatalogUrl(),
Collections.emptyMap()));
}
}
}
}
- return arcticCatalog;
+ return mixedFormatCatalog;
}
@Override
@@ -65,7 +64,7 @@ public class DefaultArcticCatalogFactory implements
ArcticCatalogFactory {
if (this.tableMetaStore == null) {
try (ThreadContextClassLoader ignored =
new ThreadContextClassLoader(this.getClass().getClassLoader())) {
- CatalogMeta meta =
CatalogLoader.loadMeta(arcticConfig.getCatalogUrl());
+ CatalogMeta meta =
CatalogLoader.loadMeta(mixedFormatConfig.getCatalogUrl());
this.tableMetaStore = MixedCatalogUtil.buildMetaStore(meta);
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogFactory.java
similarity index 82%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogFactory.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogFactory.java
index 930e84351..f3f2d0a59 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogFactory.java
@@ -21,11 +21,11 @@ package org.apache.amoro.trino;
import org.apache.amoro.mixed.MixedFormatCatalog;
import org.apache.amoro.table.TableMetaStore;
-/** A interface of factory to generate ArcticCatalog */
-public interface ArcticCatalogFactory {
+/** Interface of factory to generate {@link MixedFormatCatalog} */
+public interface MixedFormatCatalogFactory {
- /** generate ArcticCatalog */
- MixedFormatCatalog getArcticCatalog();
+ /** generate {@link MixedFormatCatalog} */
+ MixedFormatCatalog getMixedFormatCatalog();
TableMetaStore getTableMetastore();
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogSupportTableSuffix.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogSupportTableSuffix.java
similarity index 90%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogSupportTableSuffix.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogSupportTableSuffix.java
index 7d2803577..c9228c013 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticCatalogSupportTableSuffix.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatCatalogSupportTableSuffix.java
@@ -69,42 +69,42 @@ import java.util.stream.Collectors;
* A wrapper of {@link MixedFormatCatalog} to resolve sub table, such as
* "tableName#change","tableName#base"
*/
-public class ArcticCatalogSupportTableSuffix implements MixedFormatCatalog {
+public class MixedFormatCatalogSupportTableSuffix implements
MixedFormatCatalog {
- private final MixedFormatCatalog arcticCatalog;
+ private final MixedFormatCatalog mixedFormatCatalog;
- public ArcticCatalogSupportTableSuffix(MixedFormatCatalog arcticCatalog) {
- this.arcticCatalog = arcticCatalog;
+ public MixedFormatCatalogSupportTableSuffix(MixedFormatCatalog
mixedFormatCatalog) {
+ this.mixedFormatCatalog = mixedFormatCatalog;
}
@Override
public String name() {
- return arcticCatalog.name();
+ return mixedFormatCatalog.name();
}
@Override
public void initialize(String name, Map<String, String> properties,
TableMetaStore metaStore) {
- arcticCatalog.initialize(name, properties, metaStore);
+ mixedFormatCatalog.initialize(name, properties, metaStore);
}
@Override
public List<String> listDatabases() {
- return arcticCatalog.listDatabases();
+ return mixedFormatCatalog.listDatabases();
}
@Override
public void createDatabase(String databaseName) {
- arcticCatalog.createDatabase(databaseName);
+ mixedFormatCatalog.createDatabase(databaseName);
}
@Override
public void dropDatabase(String databaseName) {
- arcticCatalog.dropDatabase(databaseName);
+ mixedFormatCatalog.dropDatabase(databaseName);
}
@Override
public List<TableIdentifier> listTables(String database) {
- return arcticCatalog.listTables(database);
+ return mixedFormatCatalog.listTables(database);
}
@Override
@@ -116,7 +116,7 @@ public class ArcticCatalogSupportTableSuffix implements
MixedFormatCatalog {
tableIdentifier.getCatalog(),
tableIdentifier.getDatabase(),
tableNameResolve.getTableName());
- MixedTable mixedTable = arcticCatalog.loadTable(newTableIdentifier);
+ MixedTable mixedTable = mixedFormatCatalog.loadTable(newTableIdentifier);
if (mixedTable.isUnkeyedTable()) {
throw new IllegalArgumentException(
"table "
@@ -131,32 +131,32 @@ public class ArcticCatalogSupportTableSuffix implements
MixedFormatCatalog {
return new ChangeTableWithExternalSchemas((BasicUnkeyedTable)
keyedTable.changeTable());
}
}
- return arcticCatalog.loadTable(tableIdentifier);
+ return mixedFormatCatalog.loadTable(tableIdentifier);
}
@Override
public void renameTable(TableIdentifier from, String newTableName) {
- arcticCatalog.renameTable(from, newTableName);
+ mixedFormatCatalog.renameTable(from, newTableName);
}
@Override
public boolean dropTable(TableIdentifier tableIdentifier, boolean purge) {
- return arcticCatalog.dropTable(tableIdentifier, purge);
+ return mixedFormatCatalog.dropTable(tableIdentifier, purge);
}
@Override
public TableBuilder newTableBuilder(TableIdentifier identifier, Schema
schema) {
- return arcticCatalog.newTableBuilder(identifier, schema);
+ return mixedFormatCatalog.newTableBuilder(identifier, schema);
}
@Override
public TableBlockerManager getTableBlockerManager(TableIdentifier
tableIdentifier) {
- return arcticCatalog.getTableBlockerManager(tableIdentifier);
+ return mixedFormatCatalog.getTableBlockerManager(tableIdentifier);
}
@Override
public Map<String, String> properties() {
- return arcticCatalog.properties();
+ return mixedFormatCatalog.properties();
}
private static class ChangeTableWithExternalSchemas implements ChangeTable,
HasTableOperations {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConfig.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConfig.java
similarity index 85%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConfig.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConfig.java
index 1697726d9..b3953f025 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConfig.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConfig.java
@@ -21,8 +21,8 @@ package org.apache.amoro.trino;
import io.airlift.configuration.Config;
import io.airlift.configuration.ConfigDescription;
-/** Arctic config */
-public class ArcticConfig {
+/** Mixed-format configurations */
+public class MixedFormatConfig {
private String catalogUrl;
private boolean hdfsImpersonationEnabled;
private boolean tableStatisticsEnabled = true;
@@ -51,28 +51,28 @@ public class ArcticConfig {
return enableSplitTaskByDeleteRatio;
}
- @Config("arctic.url")
+ @Config("amoro.url")
public void setCatalogUrl(String catalogUrl) {
this.catalogUrl = catalogUrl;
}
- @Config("arctic.hdfs.impersonation.enabled")
+ @Config("mixed-format.hdfs.impersonation.enabled")
public void setHdfsImpersonationEnabled(boolean enabled) {
this.hdfsImpersonationEnabled = enabled;
}
- @Config("arctic.table-statistics-enable")
- @ConfigDescription("Enable use of table statistics to Arctic table")
+ @Config("mixed-format.table-statistics-enable")
+ @ConfigDescription("Enable use of table statistics to mixed-format table")
public void setTableStatisticsEnabled(boolean tableStatisticsEnabled) {
this.tableStatisticsEnabled = tableStatisticsEnabled;
}
- @Config("arctic.enable-split-task-by-delete-ratio")
+ @Config("mixed-format.enable-split-task-by-delete-ratio")
public void setEnableSplitTaskByDeleteRatio(boolean
enableSplitTaskByDeleteRatio) {
this.enableSplitTaskByDeleteRatio = enableSplitTaskByDeleteRatio;
}
- @Config("arctic.split-task-by-delete-ratio")
+ @Config("mixed-format.split-task-by-delete-ratio")
public void setSplitTaskByDeleteRatio(double splitTaskByDeleteRatio) {
this.splitTaskByDeleteRatio = splitTaskByDeleteRatio;
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnector.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnector.java
similarity index 95%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnector.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnector.java
index 07eaaf63e..fdad9154d 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnector.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnector.java
@@ -45,8 +45,6 @@ import io.trino.spi.session.PropertyMetadata;
import io.trino.spi.transaction.IsolationLevel;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.inject.Inject;
@@ -54,13 +52,10 @@ import java.util.List;
import java.util.Optional;
import java.util.Set;
-/** A Connector of arctic to Trino */
-public class ArcticConnector implements Connector {
-
- private static final Logger log =
LoggerFactory.getLogger(ArcticConnector.class);
-
+/** A Connector of mixed-format table to Trino */
+public class MixedFormatConnector implements Connector {
private final LifeCycleManager lifeCycleManager;
- private final ArcticTransactionManager transactionManager;
+ private final MixedFormatTransactionManager transactionManager;
private final ConnectorSplitManager splitManager;
private final ConnectorPageSourceProvider pageSourceProvider;
private final ConnectorPageSinkProvider pageSinkProvider;
@@ -73,9 +68,9 @@ public class ArcticConnector implements Connector {
private final Set<TableProcedureMetadata> tableProcedures;
@Inject
- public ArcticConnector(
+ public MixedFormatConnector(
LifeCycleManager lifeCycleManager,
- ArcticTransactionManager transactionManager,
+ MixedFormatTransactionManager transactionManager,
ConnectorSplitManager splitManager,
ConnectorPageSourceProvider pageSourceProvider,
ConnectorPageSinkProvider pageSinkProvider,
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorFactory.java
similarity index 93%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorFactory.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorFactory.java
index 5af7db5a4..0d96085b6 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorFactory.java
@@ -56,8 +56,6 @@ import io.trino.spi.connector.ConnectorSplitManager;
import io.trino.spi.connector.TableProcedureMetadata;
import io.trino.spi.procedure.Procedure;
import io.trino.spi.type.TypeManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.weakref.jmx.guice.MBeanModule;
import java.util.Map;
@@ -65,13 +63,10 @@ import java.util.Optional;
import java.util.Set;
/** Factory to generate {@link Connector} */
-public class ArcticConnectorFactory implements ConnectorFactory {
-
- private static final Logger LOG =
LoggerFactory.getLogger(ArcticConnectorFactory.class);
-
+public class MixedFormatConnectorFactory implements ConnectorFactory {
@Override
public String getName() {
- return "arctic";
+ return "mixed-format";
}
@Override
@@ -86,7 +81,7 @@ public class ArcticConnectorFactory implements
ConnectorFactory {
new ConnectorObjectNameGeneratorModule(
"io.trino.plugin.iceberg", "trino.plugin.iceberg"),
new JsonModule(),
- new ArcticModule(context.getTypeManager()),
+ new MixedFormatModule(context.getTypeManager()),
new IcebergSecurityModule(),
new MBeanServerModule(),
binder -> {
@@ -108,8 +103,8 @@ public class ArcticConnectorFactory implements
ConnectorFactory {
app.doNotInitializeLogging().setRequiredConfigurationProperties(config).initialize();
LifeCycleManager lifeCycleManager =
injector.getInstance(LifeCycleManager.class);
- ArcticTransactionManager transactionManager =
- injector.getInstance(ArcticTransactionManager.class);
+ MixedFormatTransactionManager transactionManager =
+ injector.getInstance(MixedFormatTransactionManager.class);
ConnectorSplitManager splitManager =
injector.getInstance(ConnectorSplitManager.class);
ConnectorPageSourceProvider connectorPageSource =
injector.getInstance(ConnectorPageSourceProvider.class);
@@ -128,7 +123,7 @@ public class ArcticConnectorFactory implements
ConnectorFactory {
Optional<ConnectorAccessControl> accessControl =
injector.getInstance(Key.get(new
TypeLiteral<Optional<ConnectorAccessControl>>() {}));
- return new ArcticConnector(
+ return new MixedFormatConnector(
lifeCycleManager,
transactionManager,
new ClassLoaderSafeConnectorSplitManager(splitManager, classLoader),
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorMetadata.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorMetadata.java
similarity index 94%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorMetadata.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorMetadata.java
index ee6bf843f..4c72bd030 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorMetadata.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorMetadata.java
@@ -70,32 +70,32 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
- * {@link ArcticConnectorMetadata} is a Union {@link ConnectorMetadata}
contain {@link
+ * {@link MixedFormatConnectorMetadata} is a Union {@link ConnectorMetadata}
contain {@link
* KeyedConnectorMetadata} and {@link IcebergMetadata}. This is final {@link
ConnectorMetadata}
* provided to Trino
*/
-public class ArcticConnectorMetadata implements ConnectorMetadata {
+public class MixedFormatConnectorMetadata implements ConnectorMetadata {
private final KeyedConnectorMetadata keyedConnectorMetadata;
private final IcebergMetadata icebergMetadata;
- private final MixedFormatCatalog arcticCatalog;
+ private final MixedFormatCatalog mixedFormatCatalog;
private final Map<SchemaTableName, MixedTable> tableCache = new
ConcurrentHashMap<>();
- public ArcticConnectorMetadata(
+ public MixedFormatConnectorMetadata(
KeyedConnectorMetadata keyedConnectorMetadata,
IcebergMetadata icebergMetadata,
- MixedFormatCatalog arcticCatalog) {
+ MixedFormatCatalog mixedFormatCatalog) {
this.keyedConnectorMetadata = keyedConnectorMetadata;
this.icebergMetadata = icebergMetadata;
- this.arcticCatalog = arcticCatalog;
+ this.mixedFormatCatalog = mixedFormatCatalog;
}
@Override
public List<String> listSchemaNames(ConnectorSession session) {
- return arcticCatalog.listDatabases().stream()
+ return mixedFormatCatalog.listDatabases().stream()
.map(s -> s.toLowerCase(Locale.ROOT))
.collect(Collectors.toList());
}
@@ -104,7 +104,7 @@ public class ArcticConnectorMetadata implements
ConnectorMetadata {
public ConnectorTableHandle getTableHandle(ConnectorSession session,
SchemaTableName tableName) {
MixedTable mixedTable;
try {
- mixedTable = getArcticTable(tableName);
+ mixedTable = getMixedTable(tableName);
} catch (NoSuchTableException e) {
return null;
}
@@ -142,7 +142,7 @@ public class ArcticConnectorMetadata implements
ConnectorMetadata {
@Override
public List<SchemaTableName> listTables(ConnectorSession session,
Optional<String> schemaName) {
return listNamespaces(session, schemaName).stream()
- .flatMap(s -> arcticCatalog.listTables(s).stream())
+ .flatMap(s -> mixedFormatCatalog.listTables(s).stream())
.map(s -> new SchemaTableName(s.getDatabase(), s.getTableName()))
.collect(Collectors.toList());
}
@@ -174,7 +174,7 @@ public class ArcticConnectorMetadata implements
ConnectorMetadata {
MixedTable mixedTable;
try {
mixedTable =
- getArcticTable(new SchemaTableName(prefix.getSchema().get(),
prefix.getTable().get()));
+ getMixedTable(new SchemaTableName(prefix.getSchema().get(),
prefix.getTable().get()));
} catch (NoSuchTableException e) {
List<TableColumnsMetadata> schemaTableNames = ImmutableList.of();
return schemaTableNames.iterator();
@@ -453,14 +453,14 @@ public class ArcticConnectorMetadata implements
ConnectorMetadata {
// TODO: cleanup open transaction
}
- public MixedTable getArcticTable(SchemaTableName schemaTableName) {
+ public MixedTable getMixedTable(SchemaTableName schemaTableName) {
return tableCache.computeIfAbsent(
- schemaTableName, ignore ->
arcticCatalog.loadTable(getTableIdentifier(schemaTableName)));
+ schemaTableName, ignore ->
mixedFormatCatalog.loadTable(getTableIdentifier(schemaTableName)));
}
private TableIdentifier getTableIdentifier(SchemaTableName schemaTableName) {
return TableIdentifier.of(
- arcticCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName());
+ mixedFormatCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName());
}
private List<String> listNamespaces(ConnectorSession session,
Optional<String> namespace) {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorSplitManager.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorSplitManager.java
similarity index 91%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorSplitManager.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorSplitManager.java
index 8b32f40ff..3215fb9d8 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticConnectorSplitManager.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorSplitManager.java
@@ -32,18 +32,18 @@ import io.trino.spi.connector.DynamicFilter;
import javax.inject.Inject;
/**
- * {@link ArcticConnectorSplitManager} is a Union {@link
ConnectorSplitManager} contain {@link
+ * {@link MixedFormatConnectorSplitManager} is a Union {@link
ConnectorSplitManager} contain {@link
* KeyedConnectorSplitManager} and {@link IcebergSplitManager}. This is final
{@link
* ConnectorSplitManager} provided to Trino
*/
-public class ArcticConnectorSplitManager implements ConnectorSplitManager {
+public class MixedFormatConnectorSplitManager implements ConnectorSplitManager
{
private final KeyedConnectorSplitManager keyedConnectorSplitManager;
private final IcebergSplitManager icebergSplitManager;
@Inject
- public ArcticConnectorSplitManager(
+ public MixedFormatConnectorSplitManager(
KeyedConnectorSplitManager keyedConnectorSplitManager,
IcebergSplitManager icebergSplitManager) {
this.keyedConnectorSplitManager = keyedConnectorSplitManager;
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsAuthentication.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsAuthentication.java
similarity index 76%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsAuthentication.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsAuthentication.java
index efc3ba3c8..8090ea66d 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsAuthentication.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsAuthentication.java
@@ -26,24 +26,24 @@ import io.trino.spi.security.ConnectorIdentity;
import javax.inject.Inject;
-/** Arctic HDFS Authentication using TableMetaStore */
-public class ArcticHdfsAuthentication implements HdfsAuthentication {
+/** HDFS Authentication using TableMetaStore */
+public class MixedFormatHdfsAuthentication implements HdfsAuthentication {
private final TableMetaStore tableMetaStore;
- private final ArcticConfig arcticConfig;
+ private final MixedFormatConfig mixedFormatConfig;
@Inject
- public ArcticHdfsAuthentication(
- ArcticCatalogFactory arcticCatalogFactory, ArcticConfig arcticConfig) {
- this.tableMetaStore = arcticCatalogFactory.getTableMetastore();
- this.arcticConfig = arcticConfig;
+ public MixedFormatHdfsAuthentication(
+ MixedFormatCatalogFactory mixedFormatCatalogFactory,
MixedFormatConfig mixedFormatConfig) {
+ this.tableMetaStore = mixedFormatCatalogFactory.getTableMetastore();
+ this.mixedFormatConfig = mixedFormatConfig;
}
@Override
public <R, E extends Exception> R doAs(
ConnectorIdentity identity, GenericExceptionAction<R, E> action) throws
E {
- boolean hdfsImpersonationEnabled =
arcticConfig.getHdfsImpersonationEnabled();
+ boolean hdfsImpersonationEnabled =
mixedFormatConfig.getHdfsImpersonationEnabled();
try (ThreadContextClassLoader ignored =
new ThreadContextClassLoader(this.getClass().getClassLoader())) {
if (hdfsImpersonationEnabled && identity.getUser() != null) {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsConfiguration.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsConfiguration.java
similarity index 78%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsConfiguration.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsConfiguration.java
index b44eb73d3..e6f9f6281 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticHdfsConfiguration.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatHdfsConfiguration.java
@@ -28,20 +28,20 @@ import javax.inject.Inject;
import java.net.URI;
/** Factory to generate Configuration of Hadoop */
-public class ArcticHdfsConfiguration implements HdfsConfiguration {
+public class MixedFormatHdfsConfiguration implements HdfsConfiguration {
- private final ArcticCatalogFactory arcticCatalogFactory;
+ private final MixedFormatCatalogFactory mixedFormatCatalogFactory;
@Inject
- public ArcticHdfsConfiguration(ArcticCatalogFactory arcticCatalogFactory) {
- this.arcticCatalogFactory = arcticCatalogFactory;
+ public MixedFormatHdfsConfiguration(MixedFormatCatalogFactory
mixedFormatCatalogFactory) {
+ this.mixedFormatCatalogFactory = mixedFormatCatalogFactory;
}
@Override
public Configuration getConfiguration(HdfsContext context, URI uri) {
try (ThreadContextClassLoader ignored =
new ThreadContextClassLoader(this.getClass().getClassLoader())) {
- return arcticCatalogFactory.getTableMetastore().getConfiguration();
+ return mixedFormatCatalogFactory.getTableMetastore().getConfiguration();
}
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticMetadataFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatMetadataFactory.java
similarity index 72%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticMetadataFactory.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatMetadataFactory.java
index 79808e1cf..31cb81cff 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticMetadataFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatMetadataFactory.java
@@ -31,43 +31,43 @@ import io.trino.spi.type.TypeManager;
import javax.inject.Inject;
-/** A factory to generate {@link ArcticConnectorMetadata} */
-public class ArcticMetadataFactory {
+/** A factory to generate {@link MixedFormatConnectorMetadata} */
+public class MixedFormatMetadataFactory {
private final TypeManager typeManager;
private final JsonCodec<CommitTaskData> commitTaskCodec;
private final TrinoFileSystemFactory fileSystemFactory;
private final TableStatisticsWriter tableStatisticsWriter;
- private final ArcticCatalogFactory arcticCatalogFactory;
- private final TrinoCatalogFactory arcticTrinoCatalogFactory;
+ private final MixedFormatCatalogFactory mixedFormatCatalogFactory;
+ private final TrinoCatalogFactory trinoCatalogFactory;
@Inject
- public ArcticMetadataFactory(
+ public MixedFormatMetadataFactory(
TypeManager typeManager,
JsonCodec<CommitTaskData> commitTaskCodec,
TrinoFileSystemFactory fileSystemFactory,
TableStatisticsWriter tableStatisticsWriter,
- ArcticCatalogFactory arcticCatalogFactory,
- TrinoCatalogFactory arcticTrinoCatalogFactory) {
+ MixedFormatCatalogFactory mixedFormatCatalogFactory,
+ TrinoCatalogFactory trinoCatalogFactory) {
this.typeManager = requireNonNull(typeManager, "typeManager is null");
this.commitTaskCodec = requireNonNull(commitTaskCodec, "commitTaskCodec is
null");
this.fileSystemFactory = requireNonNull(fileSystemFactory,
"fileSystemFactory is null");
this.tableStatisticsWriter =
requireNonNull(tableStatisticsWriter, "tableStatisticsWriter is null");
- this.arcticCatalogFactory = arcticCatalogFactory;
- this.arcticTrinoCatalogFactory = arcticTrinoCatalogFactory;
+ this.mixedFormatCatalogFactory = mixedFormatCatalogFactory;
+ this.trinoCatalogFactory = trinoCatalogFactory;
}
- public ArcticConnectorMetadata create() {
+ public MixedFormatConnectorMetadata create() {
IcebergMetadata icebergMetadata =
new IcebergMetadata(
typeManager,
commitTaskCodec,
- arcticTrinoCatalogFactory.create(null),
+ trinoCatalogFactory.create(null),
fileSystemFactory,
tableStatisticsWriter);
- KeyedConnectorMetadata arcticConnectorMetadata =
- new KeyedConnectorMetadata(arcticCatalogFactory.getArcticCatalog(),
typeManager);
- return new ArcticConnectorMetadata(
- arcticConnectorMetadata, icebergMetadata,
arcticCatalogFactory.getArcticCatalog());
+ KeyedConnectorMetadata keyedConnectorMetadata =
+ new
KeyedConnectorMetadata(mixedFormatCatalogFactory.getMixedFormatCatalog(),
typeManager);
+ return new MixedFormatConnectorMetadata(
+ keyedConnectorMetadata, icebergMetadata,
mixedFormatCatalogFactory.getMixedFormatCatalog());
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticModule.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatModule.java
similarity index 87%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticModule.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatModule.java
index 9a5c47b44..e26eecb3c 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticModule.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatModule.java
@@ -27,7 +27,6 @@ import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;
-import org.apache.amoro.trino.unkeyed.ArcticTrinoCatalogFactory;
import org.apache.amoro.trino.unkeyed.IcebergPageSourceProvider;
import org.apache.amoro.trino.unkeyed.IcebergSplitManager;
import org.apache.amoro.trino.keyed.KeyedConnectorSplitManager;
@@ -67,12 +66,12 @@ import io.trino.spi.procedure.Procedure;
import io.trino.spi.type.TypeManager;
import org.weakref.jmx.guice.ExportBinder;
-/** Arctic module of Trino */
-public class ArcticModule implements Module {
+/** Mixed-format table module of Trino */
+public class MixedFormatModule implements Module {
private final TypeManager typeManager;
- public ArcticModule(TypeManager typeManager) {
+ public MixedFormatModule(TypeManager typeManager) {
this.typeManager = typeManager;
}
@@ -80,25 +79,25 @@ public class ArcticModule implements Module {
public void configure(Binder binder) {
binder.bind(TypeManager.class).toInstance(typeManager);
- configBinder(binder).bindConfig(ArcticConfig.class);
+ configBinder(binder).bindConfig(MixedFormatConfig.class);
binder.bind(IcebergSessionProperties.class).in(Scopes.SINGLETON);
binder.bind(KeyedConnectorSplitManager.class).in(Scopes.SINGLETON);
binder.bind(KeyedPageSourceProvider.class).in(Scopes.SINGLETON);
binder
- .bind(ArcticCatalogFactory.class)
- .to(DefaultArcticCatalogFactory.class)
+ .bind(MixedFormatCatalogFactory.class)
+ .to(DefaultMixedFormatCatalogFactory.class)
.in(Scopes.SINGLETON);
-
binder.bind(TrinoCatalogFactory.class).to(ArcticTrinoCatalogFactory.class).in(Scopes.SINGLETON);
- binder.bind(ArcticTransactionManager.class).in(Scopes.SINGLETON);
- binder.bind(ArcticMetadataFactory.class).in(Scopes.SINGLETON);
+
binder.bind(TrinoCatalogFactory.class).to(MixedFormatTrinoCatalogFactory.class).in(Scopes.SINGLETON);
+ binder.bind(MixedFormatTransactionManager.class).in(Scopes.SINGLETON);
+ binder.bind(MixedFormatMetadataFactory.class).in(Scopes.SINGLETON);
binder.bind(TableStatisticsWriter.class).in(Scopes.SINGLETON);
binder
.bind(ConnectorSplitManager.class)
- .to(ArcticConnectorSplitManager.class)
+ .to(MixedFormatConnectorSplitManager.class)
.in(Scopes.SINGLETON);
binder
.bind(ConnectorPageSourceProvider.class)
- .to(ArcticPageSourceProvider.class)
+ .to(MixedFormatPageSourceProvider.class)
.in(Scopes.SINGLETON);
configBinder(binder).bindConfig(HiveMetastoreConfig.class);
@@ -106,7 +105,7 @@ public class ArcticModule implements Module {
newSetBinder(binder, SessionPropertiesProvider.class)
.addBinding()
- .to(ArcticSessionProperties.class)
+ .to(MixedFormatSessionProperties.class)
.in(Scopes.SINGLETON);
binder.bind(IcebergTableProperties.class).in(Scopes.SINGLETON);
@@ -155,8 +154,8 @@ public class ArcticModule implements Module {
// hdfs
ConfigBinder.configBinder(binder).bindConfig(HdfsConfig.class);
-
binder.bind(HdfsConfiguration.class).to(ArcticHdfsConfiguration.class).in(Scopes.SINGLETON);
-
binder.bind(HdfsAuthentication.class).to(ArcticHdfsAuthentication.class).in(Scopes.SINGLETON);
+
binder.bind(HdfsConfiguration.class).to(MixedFormatHdfsConfiguration.class).in(Scopes.SINGLETON);
+
binder.bind(HdfsAuthentication.class).to(MixedFormatHdfsAuthentication.class).in(Scopes.SINGLETON);
binder.bind(HdfsEnvironment.class).in(Scopes.SINGLETON);
binder.bind(NamenodeStats.class).in(Scopes.SINGLETON);
ExportBinder.newExporter(binder).export(NamenodeStats.class).withGeneratedName();
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPageSourceProvider.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPageSourceProvider.java
similarity index 91%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPageSourceProvider.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPageSourceProvider.java
index 9ecec817a..b3c95e72d 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPageSourceProvider.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPageSourceProvider.java
@@ -35,18 +35,18 @@ import javax.inject.Inject;
import java.util.List;
/**
- * {@link ArcticPageSourceProvider} is a Union {@link
ConnectorPageSourceProvider} contain {@link
+ * {@link MixedFormatPageSourceProvider} is a Union {@link
ConnectorPageSourceProvider} contain {@link
* KeyedPageSourceProvider} and {@link IcebergPageSourceProvider}. This is
final {@link
* ConnectorPageSourceProvider} provided to Trino
*/
-public class ArcticPageSourceProvider implements ConnectorPageSourceProvider {
+public class MixedFormatPageSourceProvider implements
ConnectorPageSourceProvider {
private final KeyedPageSourceProvider keyedPageSourceProvider;
private final IcebergPageSourceProvider icebergPageSourceProvider;
@Inject
- public ArcticPageSourceProvider(
+ public MixedFormatPageSourceProvider(
KeyedPageSourceProvider keyedPageSourceProvider,
IcebergPageSourceProvider icebergPageSourceProvider) {
this.keyedPageSourceProvider = keyedPageSourceProvider;
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPlugin.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPlugin.java
similarity index 86%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPlugin.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPlugin.java
index efde6d70e..0aed7135a 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticPlugin.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatPlugin.java
@@ -22,11 +22,11 @@ import io.trino.spi.Plugin;
import io.trino.spi.connector.ConnectorFactory;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
-/** Arctic Plugin Impl of {@link Plugin} */
-public class ArcticPlugin implements Plugin {
+/** Mixed-format implementation of {@link Plugin} */
+public class MixedFormatPlugin implements Plugin {
@Override
public Iterable<ConnectorFactory> getConnectorFactories() {
- return ImmutableList.of(new ArcticConnectorFactory());
+ return ImmutableList.of(new MixedFormatConnectorFactory());
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticSessionProperties.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatSessionProperties.java
similarity index 61%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticSessionProperties.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatSessionProperties.java
index a9dde7e06..479dcaf57 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticSessionProperties.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatSessionProperties.java
@@ -31,40 +31,40 @@ import javax.inject.Inject;
import java.util.List;
-/** Arctic supporting session properties */
-public final class ArcticSessionProperties implements
SessionPropertiesProvider {
+/** Session properties provider for mixed-format table. */
+public final class MixedFormatSessionProperties implements
SessionPropertiesProvider {
- private static final String ARCTIC_STATISTICS_ENABLED =
"arctic_table_statistics_enabled";
+ private static final String MIXED_STATISTICS_ENABLED =
"mixed_table_statistics_enabled";
- private static final String ARCTIC_SPLIT_TASK_BY_DELETE_RATIO =
- "arctic_split_task_by_delete_ratio";
- private static final String ARCTIC_ENABLE_SPLIT_TASK_BY_DELETE_RATIO =
- "arctic_enable_split_task_by_delete_ratio";
+ private static final String MIXED_SPLIT_TASK_BY_DELETE_RATIO =
+ "mixed_split_task_by_delete_ratio";
+ private static final String MIXED_ENABLE_SPLIT_TASK_BY_DELETE_RATIO =
+ "mixed_enable_split_task_by_delete_ratio";
private final List<PropertyMetadata<?>> sessionProperties;
@Inject
- public ArcticSessionProperties(
- ArcticConfig arcticConfig, IcebergSessionProperties
icebergSessionProperties) {
+ public MixedFormatSessionProperties(
+ MixedFormatConfig mixedFormatConfig, IcebergSessionProperties
icebergSessionProperties) {
sessionProperties =
ImmutableList.<PropertyMetadata<?>>builder()
.addAll(icebergSessionProperties.getSessionProperties())
.add(
booleanProperty(
- ARCTIC_STATISTICS_ENABLED,
- "Expose table statistics for Arctic table",
- arcticConfig.isTableStatisticsEnabled(),
+ MIXED_STATISTICS_ENABLED,
+ "Expose table statistics for mixed-format table",
+ mixedFormatConfig.isTableStatisticsEnabled(),
false))
.add(
doubleProperty(
- ARCTIC_SPLIT_TASK_BY_DELETE_RATIO,
+ MIXED_SPLIT_TASK_BY_DELETE_RATIO,
"If task delete ratio less than this value will be split
to more task",
- arcticConfig.getSplitTaskByDeleteRatio(),
+ mixedFormatConfig.getSplitTaskByDeleteRatio(),
false))
.add(
booleanProperty(
- ARCTIC_ENABLE_SPLIT_TASK_BY_DELETE_RATIO,
+ MIXED_ENABLE_SPLIT_TASK_BY_DELETE_RATIO,
"Enable task split by ratio",
- arcticConfig.isEnableSplitTaskByDeleteRatio(),
+ mixedFormatConfig.isEnableSplitTaskByDeleteRatio(),
false))
.build();
}
@@ -74,15 +74,15 @@ public final class ArcticSessionProperties implements
SessionPropertiesProvider
return sessionProperties;
}
- public static boolean isArcticStatisticsEnabled(ConnectorSession session) {
- return session.getProperty(ARCTIC_STATISTICS_ENABLED, Boolean.class);
+ public static boolean isMixedTableStatisticsEnabled(ConnectorSession
session) {
+ return session.getProperty(MIXED_STATISTICS_ENABLED, Boolean.class);
}
public static boolean enableSplitTaskByDeleteRatio(ConnectorSession session)
{
- return session.getProperty(ARCTIC_ENABLE_SPLIT_TASK_BY_DELETE_RATIO,
Boolean.class);
+ return session.getProperty(MIXED_ENABLE_SPLIT_TASK_BY_DELETE_RATIO,
Boolean.class);
}
public static double splitTaskByDeleteRatio(ConnectorSession session) {
- return session.getProperty(ARCTIC_SPLIT_TASK_BY_DELETE_RATIO,
Double.class);
+ return session.getProperty(MIXED_SPLIT_TASK_BY_DELETE_RATIO, Double.class);
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticTransactionManager.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTransactionManager.java
similarity index 82%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticTransactionManager.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTransactionManager.java
index 8a2124c15..1e52f7f97 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/ArcticTransactionManager.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTransactionManager.java
@@ -32,19 +32,19 @@ import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-/** This is used to guarantee one transaction to one {@link
ArcticConnectorMetadata} */
-public class ArcticTransactionManager {
- private final ArcticMetadataFactory metadataFactory;
+/** This is used to guarantee one transaction to one {@link
MixedFormatConnectorMetadata} */
+public class MixedFormatTransactionManager {
+ private final MixedFormatMetadataFactory metadataFactory;
private final ClassLoader classLoader;
private final ConcurrentMap<ConnectorTransactionHandle, MemoizedMetadata>
transactions =
new ConcurrentHashMap<>();
@Inject
- public ArcticTransactionManager(ArcticMetadataFactory metadataFactory) {
+ public MixedFormatTransactionManager(MixedFormatMetadataFactory
metadataFactory) {
this(metadataFactory, Thread.currentThread().getContextClassLoader());
}
- public ArcticTransactionManager(ArcticMetadataFactory metadataFactory,
ClassLoader classLoader) {
+ public MixedFormatTransactionManager(MixedFormatMetadataFactory
metadataFactory, ClassLoader classLoader) {
this.metadataFactory = requireNonNull(metadataFactory, "metadataFactory is
null");
this.classLoader = requireNonNull(classLoader, "classLoader is null");
}
@@ -55,7 +55,7 @@ public class ArcticTransactionManager {
checkState(previousValue == null);
}
- public ArcticConnectorMetadata get(ConnectorTransactionHandle
transactionHandle) {
+ public MixedFormatConnectorMetadata get(ConnectorTransactionHandle
transactionHandle) {
return transactions.get(transactionHandle).get();
}
@@ -79,13 +79,13 @@ public class ArcticTransactionManager {
private class MemoizedMetadata {
@GuardedBy("this")
- private ArcticConnectorMetadata metadata;
+ private MixedFormatConnectorMetadata metadata;
- public synchronized Optional<ArcticConnectorMetadata> optionalGet() {
+ public synchronized Optional<MixedFormatConnectorMetadata> optionalGet() {
return Optional.ofNullable(metadata);
}
- public synchronized ArcticConnectorMetadata get() {
+ public synchronized MixedFormatConnectorMetadata get() {
if (metadata == null) {
try (ThreadContextClassLoader ignored = new
ThreadContextClassLoader(classLoader)) {
metadata = metadataFactory.create();
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalog.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalog.java
similarity index 92%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalog.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalog.java
index af7bf5a75..48e4cae3c 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalog.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalog.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.amoro.trino.unkeyed;
+package org.apache.amoro.trino;
import static io.trino.plugin.hive.util.HiveUtil.isHiveSystemSchema;
import static io.trino.spi.StandardErrorCode.NOT_SUPPORTED;
@@ -47,13 +47,13 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
-/** A TrinoCatalog for Arctic, this is in order to reuse iceberg code */
-public class ArcticTrinoCatalog implements TrinoCatalog {
+/** A trino catalog for mixed-format table. */
+public class MixedFormatTrinoCatalog implements TrinoCatalog {
- private final MixedFormatCatalog arcticCatalog;
+ private final MixedFormatCatalog mixedFormatCatalog;
- public ArcticTrinoCatalog(MixedFormatCatalog arcticCatalog) {
- this.arcticCatalog = arcticCatalog;
+ public MixedFormatTrinoCatalog(MixedFormatCatalog mixedFormatCatalog) {
+ this.mixedFormatCatalog = mixedFormatCatalog;
}
@Override
@@ -71,7 +71,7 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
@Override
public List<String> listNamespaces(ConnectorSession session) {
- return arcticCatalog.listDatabases();
+ return mixedFormatCatalog.listDatabases();
}
private List<String> listNamespaces(ConnectorSession session,
Optional<String> namespace) {
@@ -123,7 +123,7 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
@Override
public List<SchemaTableName> listTables(ConnectorSession session,
Optional<String> namespace) {
return listNamespaces(session, namespace).stream()
- .flatMap(s -> arcticCatalog.listTables(s).stream())
+ .flatMap(s -> mixedFormatCatalog.listTables(s).stream())
.map(s -> new SchemaTableName(s.getDatabase(), s.getTableName()))
.collect(Collectors.toList());
}
@@ -136,7 +136,7 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
PartitionSpec partitionSpec,
String location,
Map<String, String> properties) {
- return arcticCatalog
+ return mixedFormatCatalog
.newTableBuilder(getTableIdentifier(schemaTableName), schema)
.withPartitionSpec(partitionSpec)
.withProperties(properties)
@@ -154,9 +154,9 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
@Override
public void dropTable(ConnectorSession session, SchemaTableName
schemaTableName) {
- arcticCatalog.dropTable(
+ mixedFormatCatalog.dropTable(
TableIdentifier.of(
- arcticCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName()),
+ mixedFormatCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName()),
true);
}
@@ -167,7 +167,7 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
@Override
public Table loadTable(ConnectorSession session, SchemaTableName
schemaTableName) {
- MixedTable mixedTable =
arcticCatalog.loadTable(getTableIdentifier(schemaTableName));
+ MixedTable mixedTable =
mixedFormatCatalog.loadTable(getTableIdentifier(schemaTableName));
if (mixedTable instanceof Table) {
return (Table) mixedTable;
}
@@ -298,6 +298,6 @@ public class ArcticTrinoCatalog implements TrinoCatalog {
private TableIdentifier getTableIdentifier(SchemaTableName schemaTableName) {
return TableIdentifier.of(
- arcticCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName());
+ mixedFormatCatalog.name(), schemaTableName.getSchemaName(),
schemaTableName.getTableName());
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalogFactory.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalogFactory.java
similarity index 72%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalogFactory.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalogFactory.java
index ddd288067..e7f88adf8 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/ArcticTrinoCatalogFactory.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/MixedFormatTrinoCatalogFactory.java
@@ -16,9 +16,8 @@
* limitations under the License.
*/
-package org.apache.amoro.trino.unkeyed;
+package org.apache.amoro.trino;
-import org.apache.amoro.trino.ArcticCatalogFactory;
import io.trino.plugin.iceberg.catalog.TrinoCatalog;
import io.trino.plugin.iceberg.catalog.TrinoCatalogFactory;
import io.trino.spi.security.ConnectorIdentity;
@@ -26,17 +25,17 @@ import io.trino.spi.security.ConnectorIdentity;
import javax.inject.Inject;
/** Factory to generate TrinoCatalog */
-public class ArcticTrinoCatalogFactory implements TrinoCatalogFactory {
+public class MixedFormatTrinoCatalogFactory implements TrinoCatalogFactory {
- private final ArcticCatalogFactory arcticCatalogFactory;
+ private final MixedFormatCatalogFactory mixedFormatCatalogFactory;
@Inject
- public ArcticTrinoCatalogFactory(ArcticCatalogFactory arcticCatalogFactory) {
- this.arcticCatalogFactory = arcticCatalogFactory;
+ public MixedFormatTrinoCatalogFactory(MixedFormatCatalogFactory
mixedFormatCatalogFactory) {
+ this.mixedFormatCatalogFactory = mixedFormatCatalogFactory;
}
@Override
public TrinoCatalog create(ConnectorIdentity identity) {
- return new ArcticTrinoCatalog(arcticCatalogFactory.getArcticCatalog());
+ return new
MixedFormatTrinoCatalog(mixedFormatCatalogFactory.getMixedFormatCatalog());
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/DummyFileScanTask.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/DummyFileScanTask.java
index 540856585..a68a4e38d 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/DummyFileScanTask.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/DummyFileScanTask.java
@@ -35,7 +35,7 @@ import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
-/** Copy from trino-iceberg DummyFileScanTask and do some change to adapt
Arctic */
+/** Copy from trino-iceberg DummyFileScanTask and do some change to adapt
mixed-format table */
public class DummyFileScanTask implements FileScanTask {
private final DataFile file;
private final List<DeleteFile> deletes;
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoDeleteFile.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoDeleteFile.java
index f89a29a45..90ef8d4ab 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoDeleteFile.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoDeleteFile.java
@@ -42,7 +42,7 @@ import java.util.List;
import java.util.Map;
import java.util.function.ToLongFunction;
-/** Copy from trino-iceberg TrinoDeleteFile and do some change to adapt Arctic
*/
+/** Copy from trino-iceberg TrinoDeleteFile and do some change to adapt
mixed-format table */
public class TrinoDeleteFile implements DeleteFile {
private static final long INSTANCE_SIZE =
ClassLayout.parseClass(TrinoDeleteFile.class).instanceSize();
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoRow.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoRow.java
index 48c2f666c..e94516dbb 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoRow.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/delete/TrinoRow.java
@@ -29,7 +29,7 @@ import
org.apache.iceberg.relocated.com.google.common.collect.AbstractIterator;
import javax.annotation.Nullable;
-/** Copy from trino-iceberg TrinoRow and do some change to adapt Arctic */
+/** Copy from trino-iceberg TrinoRow and do some change to adapt mixed-format
table */
public class TrinoRow implements StructLike {
private final Type[] types;
private final Page page;
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorMetadata.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorMetadata.java
index cb5db9f38..e0456f0d0 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorMetadata.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorMetadata.java
@@ -34,7 +34,7 @@ import org.apache.amoro.mixed.MixedFormatCatalog;
import org.apache.amoro.table.MixedTable;
import org.apache.amoro.table.KeyedTable;
import org.apache.amoro.table.TableIdentifier;
-import org.apache.amoro.trino.ArcticSessionProperties;
+import org.apache.amoro.trino.MixedFormatSessionProperties;
import org.apache.amoro.trino.util.ObjectSerializerUtil;
import io.trino.plugin.hive.HiveApplyProjectionUtil;
import io.trino.plugin.iceberg.ColumnIdentity;
@@ -91,7 +91,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
private static final Logger log =
LoggerFactory.getLogger(KeyedConnectorMetadata.class);
- private final MixedFormatCatalog arcticCatalog;
+ private final MixedFormatCatalog mixedFormatCatalog;
private final TypeManager typeManager;
@@ -101,14 +101,14 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
private final Map<IcebergTableHandle, TableStatistics> tableStatisticsCache =
new ConcurrentHashMap<>();
- public KeyedConnectorMetadata(MixedFormatCatalog arcticCatalog, TypeManager
typeManager) {
- this.arcticCatalog = arcticCatalog;
+ public KeyedConnectorMetadata(MixedFormatCatalog mixedFormatCatalog,
TypeManager typeManager) {
+ this.mixedFormatCatalog = mixedFormatCatalog;
this.typeManager = typeManager;
}
@Override
public List<String> listSchemaNames(ConnectorSession session) {
- return arcticCatalog.listDatabases().stream()
+ return mixedFormatCatalog.listDatabases().stream()
.map(s -> s.toLowerCase(Locale.ROOT))
.collect(Collectors.toList());
}
@@ -116,12 +116,12 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
@Override
public ConnectorTableHandle getTableHandle(ConnectorSession session,
SchemaTableName tableName) {
- KeyedTable arcticTable = getArcticTable(tableName).asKeyedTable();
- if (arcticTable == null) {
+ KeyedTable keyedTable = getMixedTable(tableName).asKeyedTable();
+ if (keyedTable == null) {
return null;
}
- TableIdentifier tableIdentifier = arcticTable.id();
- Map<String, String> tableProperties = arcticTable.properties();
+ TableIdentifier tableIdentifier = keyedTable.id();
+ Map<String, String> tableProperties = keyedTable.properties();
String nameMappingJson =
tableProperties.get(TableProperties.DEFAULT_NAME_MAPPING);
IcebergTableHandle icebergTableHandle =
new IcebergTableHandle(
@@ -129,14 +129,14 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
tableIdentifier.getTableName(),
TableType.DATA,
Optional.empty(),
- SchemaParser.toJson(arcticTable.schema()),
- Optional.of(arcticTable.spec()).map(PartitionSpecParser::toJson),
+ SchemaParser.toJson(keyedTable.schema()),
+ Optional.of(keyedTable.spec()).map(PartitionSpecParser::toJson),
2,
TupleDomain.all(),
TupleDomain.all(),
ImmutableSet.of(),
Optional.ofNullable(nameMappingJson),
- arcticTable.location(),
+ keyedTable.location(),
tableProperties,
NO_RETRIES,
ImmutableList.of(),
@@ -144,7 +144,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
Optional.empty());
return new KeyedTableHandle(
- icebergTableHandle,
ObjectSerializerUtil.write(arcticTable.primaryKeySpec()));
+ icebergTableHandle,
ObjectSerializerUtil.write(keyedTable.primaryKeySpec()));
}
@Override
@@ -155,7 +155,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
SchemaTableName schemaTableName =
new SchemaTableName(icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName());
MixedTable mixedTable =
- getArcticTable(
+ getMixedTable(
new SchemaTableName(
icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName()));
if (mixedTable == null) {
@@ -173,7 +173,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
SchemaTableName schemaTableName =
new SchemaTableName(icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName());
MixedTable mixedTable =
- getArcticTable(
+ getMixedTable(
new SchemaTableName(
icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName()));
if (mixedTable == null) {
@@ -222,7 +222,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
ImmutableMap.Builder<SchemaTableName, List<ColumnMetadata>> columns =
ImmutableMap.builder();
for (SchemaTableName schemaTableName : schemaTableNames) {
try {
- MixedTable mixedTable = getArcticTable(schemaTableName);
+ MixedTable mixedTable = getMixedTable(schemaTableName);
List<ColumnMetadata> columnMetadata = getColumnMetadata(mixedTable);
columns.put(schemaTableName, columnMetadata);
} catch (TableNotFoundException | NotFoundException e) {
@@ -237,7 +237,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
@Override
public List<SchemaTableName> listTables(ConnectorSession session,
Optional<String> schemaName) {
return listNamespaces(session, schemaName).stream()
- .flatMap(s -> arcticCatalog.listTables(s).stream())
+ .flatMap(s -> mixedFormatCatalog.listTables(s).stream())
.map(s -> new SchemaTableName(s.getDatabase(), s.getTableName()))
.collect(Collectors.toList());
}
@@ -248,7 +248,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
KeyedTableHandle table = (KeyedTableHandle) handle;
IcebergTableHandle icebergTableHandle = table.getIcebergTableHandle();
MixedTable mixedTable =
- getArcticTable(
+ getMixedTable(
new SchemaTableName(
icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName()));
@@ -406,7 +406,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
@Override
public TableStatistics getTableStatistics(
ConnectorSession session, ConnectorTableHandle tableHandle) {
- if (!ArcticSessionProperties.isArcticStatisticsEnabled(session)) {
+ if (!MixedFormatSessionProperties.isMixedTableStatisticsEnabled(session)) {
return TableStatistics.empty();
}
@@ -440,7 +440,7 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
originalHandle.getMaxScannedFileSize()),
handle -> {
MixedTable mixedTable =
- getArcticTable(
+ getMixedTable(
new SchemaTableName(
originalHandle.getSchemaName(),
originalHandle.getTableName()));
TableStatistics baseTableStatistics =
@@ -508,13 +508,13 @@ public class KeyedConnectorMetadata implements
ConnectorMetadata {
Optional.empty());
}
- public MixedTable getArcticTable(SchemaTableName schemaTableName) {
+ public MixedTable getMixedTable(SchemaTableName schemaTableName) {
concurrentHashMap.computeIfAbsent(
schemaTableName,
ignore ->
- arcticCatalog.loadTable(
+ mixedFormatCatalog.loadTable(
TableIdentifier.of(
- arcticCatalog.name(),
+ mixedFormatCatalog.name(),
schemaTableName.getSchemaName(),
schemaTableName.getTableName())));
return concurrentHashMap.get(schemaTableName);
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorPageSource.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorPageSource.java
index 88992177b..ae601ee14 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorPageSource.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorPageSource.java
@@ -46,7 +46,7 @@ import
org.apache.amoro.hive.io.reader.AdaptHiveMixedDeleteFilter;
import org.apache.iceberg.io.CloseableIterable;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
import org.joda.time.DateTimeZone;
-import org.apache.amoro.trino.ArcticErrorCode;
+import org.apache.amoro.trino.AmoroErrorCode;
import java.io.IOException;
import java.util.HashMap;
@@ -70,7 +70,7 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
private final List<IcebergColumnHandle> requiredColumns;
private final DynamicFilter dynamicFilter;
private final TypeManager typeManager;
- private final AdaptHiveMixedDeleteFilter<TrinoRow> arcticDeleteFilter;
+ private final AdaptHiveMixedDeleteFilter<TrinoRow> mixedDeleteFilter;
private final List<ColumnHandle> requireColumnsDummy;
private final Type[] requireColumnTypes;
@@ -92,7 +92,7 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
KeyedTableHandle table,
DynamicFilter dynamicFilter,
TypeManager typeManager,
- AdaptHiveMixedDeleteFilter<TrinoRow> arcticDeleteFilter) {
+ AdaptHiveMixedDeleteFilter<TrinoRow> mixedDeleteFilter) {
this.expectedColumns = expectedColumns;
this.icebergPageSourceProvider = icebergPageSourceProvider;
this.transaction = transaction;
@@ -102,7 +102,7 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
this.requiredColumns = requiredColumns;
this.dynamicFilter = dynamicFilter;
this.typeManager = typeManager;
- this.arcticDeleteFilter = arcticDeleteFilter;
+ this.mixedDeleteFilter = mixedDeleteFilter;
this.requireColumnsDummy =
requiredColumns.stream().map(ColumnHandle.class::cast).collect(Collectors.toList());
@@ -164,11 +164,11 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
return null;
}
- if (arcticDeleteFilter != null) {
+ if (mixedDeleteFilter != null) {
int positionCount = page.getPositionCount();
int[] positionsToKeep = new int[positionCount];
try (CloseableIterable<TrinoRow> filteredRows =
- arcticDeleteFilter.filter(
+ mixedDeleteFilter.filter(
CloseableIterable.withNoopClose(
TrinoRow.fromPage(requireColumnTypes, page,
positionCount)))) {
int positionsToKeepCount = 0;
@@ -189,7 +189,7 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
} catch (Exception e) {
closeWithSuppression(e);
throwIfInstanceOf(e, TrinoException.class);
- throw new TrinoException(ArcticErrorCode.ARCTIC_BAD_DATA, e);
+ throw new TrinoException(AmoroErrorCode.AMORO_BAD_DATA, e);
}
}
@@ -258,7 +258,7 @@ public class KeyedConnectorPageSource implements
ConnectorPageSource {
idToConstant.put(MetadataColumns.FILE_OFFSET_FILED_ID,
Optional.of(Long.MAX_VALUE + ""));
}
-
arcticDeleteFilter.setCurrentDataPath(mixedFileScanTask.file().path().toString());
+
mixedDeleteFilter.setCurrentDataPath(mixedFileScanTask.file().path().toString());
return icebergPageSourceProvider.createPageSource(
transaction,
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorSplitManager.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorSplitManager.java
index c05847aec..c7cd14abf 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorSplitManager.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedConnectorSplitManager.java
@@ -25,8 +25,8 @@ import org.apache.amoro.scan.CombinedScanTask;
import org.apache.amoro.scan.KeyedTableScan;
import org.apache.amoro.scan.KeyedTableScanTask;
import org.apache.amoro.table.KeyedTable;
-import org.apache.amoro.trino.ArcticSessionProperties;
-import org.apache.amoro.trino.ArcticTransactionManager;
+import org.apache.amoro.trino.MixedFormatSessionProperties;
+import org.apache.amoro.trino.MixedFormatTransactionManager;
import org.apache.amoro.trino.util.MetricUtil;
import org.apache.amoro.trino.util.ObjectSerializerUtil;
import io.trino.plugin.iceberg.IcebergTableHandle;
@@ -44,8 +44,6 @@ import io.trino.spi.connector.SchemaTableName;
import io.trino.spi.connector.TableNotFoundException;
import org.apache.iceberg.PartitionSpecParser;
import org.apache.iceberg.io.CloseableIterable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.inject.Inject;
@@ -55,16 +53,11 @@ import java.util.stream.Collectors;
/** ConnectorSplitManager for Keyed Table */
public class KeyedConnectorSplitManager implements ConnectorSplitManager {
-
- public static final int ARCTIC_DOMAIN_COMPACTION_THRESHOLD = 1000;
-
- private static final Logger LOG =
LoggerFactory.getLogger(KeyedConnectorSplitManager.class);
-
- private final ArcticTransactionManager arcticTransactionManager;
+ private final MixedFormatTransactionManager mixedFormatTransactionManager;
@Inject
- public KeyedConnectorSplitManager(ArcticTransactionManager
arcticTransactionManager) {
- this.arcticTransactionManager = arcticTransactionManager;
+ public KeyedConnectorSplitManager(MixedFormatTransactionManager
mixedFormatTransactionManager) {
+ this.mixedFormatTransactionManager = mixedFormatTransactionManager;
}
@Override
@@ -76,20 +69,20 @@ public class KeyedConnectorSplitManager implements
ConnectorSplitManager {
Constraint constraint) {
KeyedTableHandle keyedTableHandle = (KeyedTableHandle) handle;
IcebergTableHandle icebergTableHandle =
keyedTableHandle.getIcebergTableHandle();
- KeyedTable arcticTable =
- (arcticTransactionManager.get(transaction))
- .getArcticTable(
+ KeyedTable keyedTable =
+ (mixedFormatTransactionManager.get(transaction))
+ .getMixedTable(
new SchemaTableName(
icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName()))
.asKeyedTable();
- if (arcticTable == null) {
+ if (keyedTable == null) {
throw new TableNotFoundException(
new SchemaTableName(
icebergTableHandle.getSchemaName(),
icebergTableHandle.getTableName()));
}
KeyedTableScan tableScan =
- arcticTable
+ keyedTable
.newScan()
.filter(
toIcebergExpression(
@@ -97,12 +90,12 @@ public class KeyedConnectorSplitManager implements
ConnectorSplitManager {
.getEnforcedPredicate()
.intersect(icebergTableHandle.getUnenforcedPredicate())));
- if (ArcticSessionProperties.enableSplitTaskByDeleteRatio(session)) {
+ if (MixedFormatSessionProperties.enableSplitTaskByDeleteRatio(session)) {
tableScan.enableSplitTaskByDeleteRatio(
- ArcticSessionProperties.splitTaskByDeleteRatio(session));
+ MixedFormatSessionProperties.splitTaskByDeleteRatio(session));
}
- ClassLoader pluginClassloader = arcticTable.getClass().getClassLoader();
+ ClassLoader pluginClassloader = keyedTable.getClass().getClassLoader();
try (ThreadContextClassLoader ignored = new
ThreadContextClassLoader(pluginClassloader)) {
// Optimization
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedPageSourceProvider.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedPageSourceProvider.java
index 244aa1108..8d9131c36 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedPageSourceProvider.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/keyed/KeyedPageSourceProvider.java
@@ -96,7 +96,7 @@ public class KeyedPageSourceProvider implements
ConnectorPageSourceProvider {
.filter(column -> !columns.contains(column))
.forEach(requiredColumnsBuilder::add);
List<IcebergColumnHandle> requiredColumns = requiredColumnsBuilder.build();
- AdaptHiveMixedDeleteFilter<TrinoRow> arcticDeleteFilter =
+ AdaptHiveMixedDeleteFilter<TrinoRow> mixedDeleteFilter =
new KeyedDeleteFilter(
keyedTableScanTask,
tableSchema,
@@ -114,6 +114,6 @@ public class KeyedPageSourceProvider implements
ConnectorPageSourceProvider {
keyedTableHandle,
dynamicFilter,
typeManager,
- arcticDeleteFilter);
+ mixedDeleteFilter);
}
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java
index 2571ffb37..d1e123106 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java
@@ -274,7 +274,7 @@ import java.util.regex.Pattern;
import java.util.stream.Stream;
/**
- * Iceberg original metadata has some problems for arctic, such as iceberg
version, table type. So
+ * Iceberg original metadata has some problems for mixed-format table, such as
iceberg version, table type. So
* copy from IcebergMetadata and made some change
*/
public class IcebergMetadata implements ConnectorMetadata {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSource.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSource.java
index a301f6729..86d8ecd0b 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSource.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSource.java
@@ -45,7 +45,7 @@ import java.util.OptionalLong;
import java.util.function.Supplier;
/**
- * Iceberg original IcebergPageSource has some problems for arctic, such as
iceberg version, table
+ * Iceberg original IcebergPageSource has some problems for mixed-format
table, such as iceberg version, table
* type.
*/
public class IcebergPageSource implements ConnectorPageSource {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSourceProvider.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSourceProvider.java
index 96fdcd9a7..aba01ffcc 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSourceProvider.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSourceProvider.java
@@ -304,7 +304,7 @@ public class IcebergPageSourceProvider implements
ConnectorPageSourceProvider {
PartitionData partitionData =
PartitionData.fromJson(split.getPartitionDataJson(),
partitionColumnTypes);
Map<Integer, Optional<String>> partitionKeys =
getPartitionKeys(partitionData, partitionSpec);
- // for arctic
+ // for mixed-format table
if (idToConstant != null) {
partitionKeys =
ImmutableMap.<Integer, Optional<String>>builder()
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplit.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplit.java
index f7979cfd9..8ccd30fcb 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplit.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplit.java
@@ -37,7 +37,7 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.List;
/**
- * Iceberg original IcebergSplit has some problems for arctic, such as iceberg
version, table type.
+ * Iceberg original IcebergSplit has some problems for mixed-format table,
such as iceberg version, table type.
*/
public class IcebergSplit implements ConnectorSplit {
private static final int INSTANCE_SIZE =
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitManager.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitManager.java
index 2e1d5460a..a49a34564 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitManager.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitManager.java
@@ -22,7 +22,7 @@ import static
io.trino.plugin.iceberg.IcebergSessionProperties.getDynamicFilteri
import static
io.trino.plugin.iceberg.IcebergSessionProperties.getMinimumAssignedSplitWeight;
import static java.util.Objects.requireNonNull;
-import org.apache.amoro.trino.ArcticTransactionManager;
+import org.apache.amoro.trino.MixedFormatTransactionManager;
import org.apache.amoro.trino.TableNameResolve;
import io.airlift.units.Duration;
import io.trino.filesystem.TrinoFileSystemFactory;
@@ -44,18 +44,18 @@ import
org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
import javax.inject.Inject;
/**
- * Iceberg original IcebergSplitManager has some problems for arctic, such as
iceberg version, table
+ * Iceberg original IcebergSplitManager has some problems for mixed-format
table, such as iceberg version, table
* type.
*/
public class IcebergSplitManager implements ConnectorSplitManager {
- private final ArcticTransactionManager transactionManager;
+ private final MixedFormatTransactionManager transactionManager;
private final TypeManager typeManager;
private final TrinoFileSystemFactory fileSystemFactory;
@Inject
public IcebergSplitManager(
- ArcticTransactionManager transactionManager,
+ MixedFormatTransactionManager transactionManager,
TypeManager typeManager,
TrinoFileSystemFactory fileSystemFactory) {
this.transactionManager = requireNonNull(transactionManager,
"transactionManager is null");
@@ -82,7 +82,7 @@ public class IcebergSplitManager implements
ConnectorSplitManager {
Table icebergTable =
transactionManager
.get(transaction)
- .getArcticTable(table.getSchemaTableName())
+ .getMixedTable(table.getSchemaTableName())
.asUnkeyedTable();
Duration dynamicFilteringWaitTimeout =
getDynamicFilteringWaitTimeout(session);
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitSource.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitSource.java
index 367f96161..40c56533d 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitSource.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitSource.java
@@ -102,7 +102,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
/**
- * Iceberg original IcebergSplitSource has some problems for arctic, such as
iceberg version, table
+ * Iceberg original IcebergSplitSource has some problems for mixed-format
table, such as iceberg version, table
* type.
*/
public class IcebergSplitSource implements ConnectorSplitSource {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/TrinoDeleteFilter.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/TrinoDeleteFilter.java
index 8f6ff6fef..01ac5ef38 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/TrinoDeleteFilter.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/java/org/apache/amoro/trino/unkeyed/TrinoDeleteFilter.java
@@ -38,7 +38,7 @@ import java.util.Optional;
import java.util.Set;
/**
- * Iceberg original TrinoDeleteFilter has some problems for arctic, such as
iceberg version, table
+ * Iceberg original TrinoDeleteFilter has some problems for mixed-format
table, such as iceberg version, table
* type.
*/
public class TrinoDeleteFilter extends DeleteFilter<TrinoRow> {
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/resources/META-INF/services/io.trino.spi.Plugin
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/resources/META-INF/services/io.trino.spi.Plugin
index fc65a7f28..828bb0b48 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/main/resources/META-INF/services/io.trino.spi.Plugin
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/main/resources/META-INF/services/io.trino.spi.Plugin
@@ -1,21 +1,3 @@
-#
-# 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.
-#
-
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -34,4 +16,4 @@
# limitations under the License.
#
-org.apache.amoro.trino.ArcticPlugin
\ No newline at end of file
+org.apache.amoro.trino.MixedFormatPlugin
\ No newline at end of file
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/ArcticQueryRunner.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/MixedFormatQueryRunner.java
similarity index 82%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/ArcticQueryRunner.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/MixedFormatQueryRunner.java
index c03ad03ce..850b0a477 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/ArcticQueryRunner.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/MixedFormatQueryRunner.java
@@ -25,7 +25,7 @@ import static java.util.Objects.requireNonNull;
import io.airlift.log.Logger;
import io.trino.plugin.tpch.TpchPlugin;
import io.trino.testing.DistributedQueryRunner;
-import org.apache.amoro.trino.ArcticPlugin;
+import org.apache.amoro.trino.MixedFormatPlugin;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
import java.io.File;
@@ -33,12 +33,12 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
-public final class ArcticQueryRunner {
- private static final Logger log = Logger.get(ArcticQueryRunner.class);
+public final class MixedFormatQueryRunner {
+ public static final String MIXED_FORMAT_CATALOG =
"test_mixed_format_catalog";
- public static final String ARCTIC_CATALOG = "arctic";
+ public static final String MIXED_FORMAT_CATALOG_PREFIX =
MIXED_FORMAT_CATALOG + ".";
- private ArcticQueryRunner() {}
+ private MixedFormatQueryRunner() {}
public static Builder builder() {
return new Builder();
@@ -49,7 +49,7 @@ public final class ArcticQueryRunner {
private ImmutableMap.Builder<String, String> icebergProperties =
ImmutableMap.builder();
protected Builder() {
-
super(testSessionBuilder().setCatalog(ARCTIC_CATALOG).setSchema("tpch").build());
+
super(testSessionBuilder().setCatalog(MIXED_FORMAT_CATALOG).setSchema("tpch").build());
}
public Builder setMetastoreDirectory(File metastoreDirectory) {
@@ -76,10 +76,10 @@ public final class ArcticQueryRunner {
queryRunner.installPlugin(new TpchPlugin());
queryRunner.createCatalog("tpch", "tpch");
- queryRunner.installPlugin(new ArcticPlugin());
+ queryRunner.installPlugin(new MixedFormatPlugin());
Map<String, String> icebergProperties =
new HashMap<>(this.icebergProperties.buildOrThrow());
- queryRunner.createCatalog(ARCTIC_CATALOG, "arctic", icebergProperties);
+ queryRunner.createCatalog(MIXED_FORMAT_CATALOG, "mixed-format",
icebergProperties);
return queryRunner;
} catch (Exception e) {
closeAllSuppress(e, queryRunner);
@@ -91,11 +91,11 @@ public final class ArcticQueryRunner {
public static void main(String[] args) throws Exception {
DistributedQueryRunner queryRunner = null;
queryRunner =
- ArcticQueryRunner.builder()
+ MixedFormatQueryRunner.builder()
.setExtraProperties(ImmutableMap.of("http-server.http.port",
"8080"))
.build();
Thread.sleep(10);
- Logger log = Logger.get(ArcticQueryRunner.class);
+ Logger log = Logger.get(MixedFormatQueryRunner.class);
log.info("======== SERVER STARTED ========");
log.info("\n====\n%s\n====", queryRunner.getCoordinator().getBaseUrl());
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestHiveTable.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestHiveTable.java
index 80f45a0be..23d1a9b81 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestHiveTable.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestHiveTable.java
@@ -66,13 +66,13 @@ import java.util.stream.Collectors;
public class TestHiveTable extends TestHiveTableBaseForTrino {
private final String TEST_HIVE_TABLE_FULL_NAME =
- "arctic." + HIVE_TABLE_ID.getDatabase() + "." +
HIVE_TABLE_ID.getTableName();
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX +
HIVE_TABLE_ID.getDatabase() + "." + HIVE_TABLE_ID.getTableName();
private final String TEST_HIVE_PK_TABLE_FULL_NAME =
- "arctic." + HIVE_PK_TABLE_ID.getDatabase() + "." +
HIVE_PK_TABLE_ID.getTableName();
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX +
HIVE_PK_TABLE_ID.getDatabase() + "." + HIVE_PK_TABLE_ID.getTableName();
private final String TEST_HIVE_PK_TABLE_FULL_NAME_BASE =
- "arctic."
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX
+ HIVE_PK_TABLE_ID.getDatabase()
+ "."
+ "\""
@@ -80,19 +80,19 @@ public class TestHiveTable extends
TestHiveTableBaseForTrino {
+ "#base\"";
private final String TEST_UN_PARTITION_HIVE_TABLE_FULL_NAME =
- "arctic."
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX
+ UN_PARTITION_HIVE_TABLE_ID.getDatabase()
+ "."
+ UN_PARTITION_HIVE_TABLE_ID.getTableName();
private final String TEST_UN_PARTITION_HIVE_PK_TABLE_FULL_NAME =
- "arctic."
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX
+ UN_PARTITION_HIVE_PK_TABLE_ID.getDatabase()
+ "."
+ UN_PARTITION_HIVE_PK_TABLE_ID.getTableName();
private final String TEST_UN_PARTITION_HIVE_PK_TABLE_FULL_NAME_BASE =
- "arctic."
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX
+ UN_PARTITION_HIVE_PK_TABLE_ID.getDatabase()
+ "."
+ "\""
@@ -106,10 +106,10 @@ public class TestHiveTable extends
TestHiveTableBaseForTrino {
TableIdentifier.of(TEST_CATALOG_NAME, HIVE_DB_NAME,
"test_pk_hive_table_parquet");
private final String TEST_HIVE_PK_TABLE_ORC_FULL_NAME =
- "arctic." + HIVE_PK_TABLE_ID.getDatabase() + "." +
HIVE_PK_TABLE_ORC_ID.getTableName();
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX +
HIVE_PK_TABLE_ID.getDatabase() + "." + HIVE_PK_TABLE_ORC_ID.getTableName();
private final String TEST_HIVE_PK_TABLE_PARQUET_FULL_NAME =
- "arctic." + HIVE_PK_TABLE_ID.getDatabase() + "." +
HIVE_PK_TABLE_PARQUET_ID.getTableName();
+ MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX +
HIVE_PK_TABLE_ID.getDatabase() + "." + HIVE_PK_TABLE_PARQUET_ID.getTableName();
private KeyedHiveTable testKeyedHiveTableOrc;
private KeyedHiveTable testKeyedHiveTableParquet;
@@ -147,11 +147,11 @@ public class TestHiveTable extends
TestHiveTableBaseForTrino {
startMetastore();
setupTables();
initData();
- return ArcticQueryRunner.builder()
+ return MixedFormatQueryRunner.builder()
.setExtraProperties(ImmutableMap.of("http-server.http.port", "8080"))
.setIcebergProperties(
ImmutableMap.of(
- "arctic.url",
+ "amoro.url",
String.format("thrift://localhost:%s/%s", AMS.port(),
TEST_CATALOG_NAME)))
.build();
}
diff --git
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestBaseArcticPrimaryTable.java
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestKeyedTable.java
similarity index 77%
rename from
amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestBaseArcticPrimaryTable.java
rename to
amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestKeyedTable.java
index b9d20e0f1..bae95073f 100644
---
a/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestBaseArcticPrimaryTable.java
+++
b/amoro-mixed-format/amoro-mixed-format-trino/src/test/java/org/apache/amoro/trino/mixed/TestKeyedTable.java
@@ -29,24 +29,26 @@ import
org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
-public class TestBaseArcticPrimaryTable extends
TableTestBaseWithInitDataForTrino {
+public class TestKeyedTable extends TableTestBaseWithInitDataForTrino {
- public static final String PK_TABLE_FULL_NAME =
"arctic.test_db.test_pk_table";
+ private static final String CATALOG_DATABASE_NAME =
MixedFormatQueryRunner.MIXED_FORMAT_CATALOG_PREFIX + "test_db.";
+ private static final String PK_TABLE_FULL_NAME = CATALOG_DATABASE_NAME +
"test_pk_table";
+ private static final String PK_TABLE_BASE_NAME = CATALOG_DATABASE_NAME +
"\"test_pk_table#base\"";
+ private static final String PK_TABLE_CHANGE_NAME = CATALOG_DATABASE_NAME +
"\"test_pk_table#change\"";
@Override
protected QueryRunner createQueryRunner() throws Exception {
CatalogTestHelper testCatalog =
TestedCatalogs.hadoopCatalog(TableFormat.MIXED_ICEBERG);
setupCatalog(testCatalog);
- // setupAMS();
setupTables();
initData();
- return ArcticQueryRunner.builder()
+ return MixedFormatQueryRunner.builder()
.setIcebergProperties(
ImmutableMap.of(
- "arctic.url",
+ "amoro.url",
String.format("thrift://localhost:%s/%s", AMS.port(),
TEST_CATALOG_NAME),
- "arctic.enable-split-task-by-delete-ratio",
+ "mixed-format.enable-split-task-by-delete-ratio",
"true"))
.build();
}
@@ -80,26 +82,27 @@ public class TestBaseArcticPrimaryTable extends
TableTestBaseWithInitDataForTrin
@Test
public void baseQuery() {
- assertQuery("select id from " + "arctic.test_db.\"test_pk_table#base\"",
"VALUES 1, 2, 3");
+ assertQuery("select id from " + PK_TABLE_BASE_NAME, "VALUES 1, 2, 3");
}
@Test
public void baseQueryWhenTableNameContainCatalogAndDataBase() {
assertQuery(
- "select id from " +
"arctic.test_db.\"arctic.test_db.test_pk_table#base\"",
+ "select id from " + CATALOG_DATABASE_NAME +
"\"test_mixed_format_catalog.test_db.test_pk_table#base\"",
"VALUES 1, 2, 3");
}
@Test
public void baseQueryWhenTableNameContainDataBase() {
assertQuery(
- "select id from " + "arctic.test_db.\"test_db.test_pk_table#base\"",
"VALUES 1, 2, 3");
+ "select id from " + CATALOG_DATABASE_NAME +
"\"test_db.test_pk_table#base\"",
+ "VALUES 1, 2, 3");
}
@Test
public void changeQuery() {
assertQuery(
- "select * from " + "arctic.test_db.\"test_pk_table#change\"",
+ "select * from " + PK_TABLE_CHANGE_NAME,
"VALUES (6,'mack',TIMESTAMP '2022-01-01 12:00:00.000000'
,3,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01 12:00:00.000000',2,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01
12:00:00.000000',4,1,'DELETE')");
@@ -108,7 +111,7 @@ public class TestBaseArcticPrimaryTable extends
TableTestBaseWithInitDataForTrin
@Test
public void changeQueryWhenTableNameContainCatalogAndDataBase() {
assertQuery(
- "select * from " +
"arctic.test_db.\"arctic.test_db.test_pk_table#change\"",
+ "select * from " + CATALOG_DATABASE_NAME +
"\"test_mixed_format_catalog.test_db.test_pk_table#change\"",
"VALUES (6,'mack',TIMESTAMP '2022-01-01 12:00:00.000000'
,3,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01 12:00:00.000000',2,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01
12:00:00.000000',4,1,'DELETE')");
@@ -117,7 +120,7 @@ public class TestBaseArcticPrimaryTable extends
TableTestBaseWithInitDataForTrin
@Test
public void changeQueryWhenTableNameContainDataBase() {
assertQuery(
- "select * from " + "arctic.test_db.\"test_db.test_pk_table#change\"",
+ "select * from " + CATALOG_DATABASE_NAME +
"\"test_db.test_pk_table#change\"",
"VALUES (6,'mack',TIMESTAMP '2022-01-01 12:00:00.000000'
,3,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01 12:00:00.000000',2,1,'INSERT'),"
+ "(5,'mary',TIMESTAMP '2022-01-01
12:00:00.000000',4,1,'DELETE')");
diff --git a/docs/engines/trino.md b/docs/engines/trino.md
index e1acc56f6..77c0695f7 100644
--- a/docs/engines/trino.md
+++ b/docs/engines/trino.md
@@ -22,11 +22,11 @@ please refer to the documentation at [Paimon Trino user
manual](https://paimon.a
### Install
- Create the {trino_home}/plugin/amoro directory in the Trino installation
package,
- and extract the contents of the amoro-trino package
amoro-mixed-trino-xx.tar.gz to the {trino_home}/plugin/amoro directory.
+ and extract the contents of the amoro-trino package
amoro-mixed-format-trino-xx.tar.gz to the {trino_home}/plugin/amoro directory.
- Configure the Catalog configuration file for Amoro in the
{trino_home}/etc/catalog directory, for example:
```tex
-connector.name=arctic
-arctic.url=thrift://{ip}:{port}/{catalogName}
+connector.name=mixed-format
+amoro.url=thrift://{ip}:{port}/{catalogName}
```
- Configure the JVM configuration file for Trino in the {trino_home}/etc
directory named `jvm.config` :
```tex
@@ -97,11 +97,11 @@ By default, when Trino queries Amoro, it uses the Hadoop
user configured in the
To use Trino's user to access the Hadoop cluster, you need enable Hadoop
impersonation by adding the arctic.hdfs.impersonation.enabled=true parameter in
the Amoro catalog configuration file located in the {trino_home}/etc/catalog
directory, as follows.
```tex
-connector.name=arctic
-arctic.url=thrift://{ip}:{port}/{catalogName}
-arctic.hdfs.impersonation.enabled=true
+connector.name=mixed-format
+amoro.url=thrift://{ip}:{port}/{catalogName}
+mixed-format.hdfs.impersonation.enabled=true
```
-`arctic.hdfs.impersonation.enabled` default false
+`mixed-format.hdfs.impersonation.enabled` default false
{{< hint info >}}
To use Hadoop impersonation, you need to enable the proxy feature for the
Hadoop user configured in the [catalog
creation](../managing-catalogs/#create-catalog) in the Hadoop cluster
beforehand,