This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new d3612e6cd [core] Get table name and full table name from identifier
(#3686)
d3612e6cd is described below
commit d3612e6cd3738eb06a0e0d19e495f457e01b5c83
Author: Zouxxyy <[email protected]>
AuthorDate: Fri Jul 5 21:49:57 2024 +0800
[core] Get table name and full table name from identifier (#3686)
---
.../java/org/apache/paimon/catalog/AbstractCatalog.java | 1 +
.../apache/paimon/privilege/PrivilegedFileStoreTable.java | 10 ++++++++++
.../org/apache/paimon/table/AbstractFileStoreTable.java | 15 +++++++++++++++
.../org/apache/paimon/table/AppendOnlyFileStoreTable.java | 3 +--
.../java/org/apache/paimon/table/CatalogEnvironment.java | 13 +++++++++++++
.../main/java/org/apache/paimon/table/FileStoreTable.java | 11 -----------
.../org/apache/paimon/table/FileStoreTableFactory.java | 15 ++-------------
.../org/apache/paimon/table/PrimaryKeyFileStoreTable.java | 3 +--
.../test/java/org/apache/paimon/TestAppendFileStore.java | 3 +--
.../src/test/java/org/apache/paimon/TestFileStore.java | 3 +--
.../org/apache/paimon/table/sink/TableCommitTest.java | 5 ++---
.../ContinuousAppendAndCompactFollowUpScannerTest.java | 7 +------
.../paimon/table/source/snapshot/ScannerTestBase.java | 7 +------
.../paimon/table/source/snapshot/SnapshotReaderTest.java | 7 +------
.../java/org/apache/paimon/flink/sink/FlinkSinkTest.java | 3 +--
.../paimon/spark/sql/DDLWithHiveCatalogTestBase.scala | 6 ++++++
16 files changed, 57 insertions(+), 55 deletions(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
b/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
index 3001faf3b..0c6d19e28 100644
--- a/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
+++ b/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
@@ -350,6 +350,7 @@ public abstract class AbstractCatalog implements Catalog {
getDataTableLocation(identifier),
tableSchema,
new CatalogEnvironment(
+ identifier,
Lock.factory(
lockFactory().orElse(null),
lockContext().orElse(null), identifier),
metastoreClientFactory(identifier).orElse(null),
diff --git
a/paimon-core/src/main/java/org/apache/paimon/privilege/PrivilegedFileStoreTable.java
b/paimon-core/src/main/java/org/apache/paimon/privilege/PrivilegedFileStoreTable.java
index d33e73b8f..8d77ad612 100644
---
a/paimon-core/src/main/java/org/apache/paimon/privilege/PrivilegedFileStoreTable.java
+++
b/paimon-core/src/main/java/org/apache/paimon/privilege/PrivilegedFileStoreTable.java
@@ -61,6 +61,16 @@ public class PrivilegedFileStoreTable implements
FileStoreTable {
this.identifier = identifier;
}
+ @Override
+ public String name() {
+ return wrapped.name();
+ }
+
+ @Override
+ public String fullName() {
+ return wrapped.fullName();
+ }
+
@Override
public SnapshotReader newSnapshotReader() {
privilegeChecker.assertCanSelect(identifier);
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java
b/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java
index 10bc386ca..d735642a6 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java
@@ -20,6 +20,7 @@ package org.apache.paimon.table;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
+import org.apache.paimon.catalog.Identifier;
import org.apache.paimon.consumer.ConsumerManager;
import org.apache.paimon.fs.FileIO;
import org.apache.paimon.fs.Path;
@@ -103,6 +104,20 @@ abstract class AbstractFileStoreTable implements
FileStoreTable {
this.catalogEnvironment = catalogEnvironment;
}
+ @Override
+ public String name() {
+ Identifier identifier = catalogEnvironment.identifier();
+ return identifier == null ? location().getName() :
identifier.getObjectName();
+ }
+
+ @Override
+ public String fullName() {
+ Identifier identifier = catalogEnvironment.identifier();
+ return identifier == null
+ ? SchemaManager.fromPath(location().toUri().toString(),
true).getFullName()
+ : identifier.getFullName();
+ }
+
@Override
public Optional<Statistics> statistics() {
// todo: support time travel
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/AppendOnlyFileStoreTable.java
b/paimon-core/src/main/java/org/apache/paimon/table/AppendOnlyFileStoreTable.java
index f45865d01..0c389e408 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/AppendOnlyFileStoreTable.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/AppendOnlyFileStoreTable.java
@@ -27,7 +27,6 @@ import org.apache.paimon.manifest.ManifestCacheFilter;
import org.apache.paimon.operation.AppendOnlyFileStoreScan;
import org.apache.paimon.operation.AppendOnlyFileStoreWrite;
import org.apache.paimon.operation.FileStoreScan;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.operation.RawFileSplitRead;
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.reader.RecordReader;
@@ -54,7 +53,7 @@ class AppendOnlyFileStoreTable extends AbstractFileStoreTable
{
private transient AppendOnlyFileStore lazyStore;
AppendOnlyFileStoreTable(FileIO fileIO, Path path, TableSchema
tableSchema) {
- this(fileIO, path, tableSchema, new
CatalogEnvironment(Lock.emptyFactory(), null, null));
+ this(fileIO, path, tableSchema, CatalogEnvironment.empty());
}
AppendOnlyFileStoreTable(
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/CatalogEnvironment.java
b/paimon-core/src/main/java/org/apache/paimon/table/CatalogEnvironment.java
index 7a3fbc37b..ebaff1266 100644
--- a/paimon-core/src/main/java/org/apache/paimon/table/CatalogEnvironment.java
+++ b/paimon-core/src/main/java/org/apache/paimon/table/CatalogEnvironment.java
@@ -18,6 +18,7 @@
package org.apache.paimon.table;
+import org.apache.paimon.catalog.Identifier;
import org.apache.paimon.lineage.LineageMetaFactory;
import org.apache.paimon.metastore.MetastoreClient;
import org.apache.paimon.operation.Lock;
@@ -34,19 +35,31 @@ public class CatalogEnvironment implements Serializable {
private static final long serialVersionUID = 1L;
+ @Nullable private final Identifier identifier;
private final Lock.Factory lockFactory;
@Nullable private final MetastoreClient.Factory metastoreClientFactory;
@Nullable private final LineageMetaFactory lineageMetaFactory;
public CatalogEnvironment(
+ @Nullable Identifier identifier,
Lock.Factory lockFactory,
@Nullable MetastoreClient.Factory metastoreClientFactory,
@Nullable LineageMetaFactory lineageMetaFactory) {
+ this.identifier = identifier;
this.lockFactory = lockFactory;
this.metastoreClientFactory = metastoreClientFactory;
this.lineageMetaFactory = lineageMetaFactory;
}
+ public static CatalogEnvironment empty() {
+ return new CatalogEnvironment(null, Lock.emptyFactory(), null, null);
+ }
+
+ @Nullable
+ public Identifier identifier() {
+ return identifier;
+ }
+
public Lock.Factory lockFactory() {
return lockFactory;
}
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTable.java
b/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTable.java
index 7c791bd47..68f053178 100644
--- a/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTable.java
+++ b/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTable.java
@@ -22,7 +22,6 @@ import org.apache.paimon.FileStore;
import org.apache.paimon.data.InternalRow;
import org.apache.paimon.io.DataFileMeta;
import org.apache.paimon.manifest.ManifestCacheFilter;
-import org.apache.paimon.schema.SchemaManager;
import org.apache.paimon.schema.TableSchema;
import org.apache.paimon.stats.SimpleStats;
import org.apache.paimon.table.query.LocalTableQuery;
@@ -41,16 +40,6 @@ import java.util.Optional;
*/
public interface FileStoreTable extends DataTable {
- @Override
- default String name() {
- return location().getName();
- }
-
- @Override
- default String fullName() {
- return SchemaManager.fromPath(location().toUri().toString(),
true).getFullName();
- }
-
@Override
default RowType rowType() {
return schema().logicalRowType();
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTableFactory.java
b/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTableFactory.java
index e941a89e0..e124fbb27 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTableFactory.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/FileStoreTableFactory.java
@@ -22,7 +22,6 @@ import org.apache.paimon.CoreOptions;
import org.apache.paimon.catalog.CatalogContext;
import org.apache.paimon.fs.FileIO;
import org.apache.paimon.fs.Path;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.schema.SchemaManager;
import org.apache.paimon.schema.TableSchema;
@@ -63,21 +62,11 @@ public class FileStoreTableFactory {
"Schema file not found in
location "
+ tablePath
+ ". Please create
table first."));
- return create(
- fileIO,
- tablePath,
- tableSchema,
- options,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ return create(fileIO, tablePath, tableSchema, options,
CatalogEnvironment.empty());
}
public static FileStoreTable create(FileIO fileIO, Path tablePath,
TableSchema tableSchema) {
- return create(
- fileIO,
- tablePath,
- tableSchema,
- new Options(),
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ return create(fileIO, tablePath, tableSchema, new Options(),
CatalogEnvironment.empty());
}
public static FileStoreTable create(
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/PrimaryKeyFileStoreTable.java
b/paimon-core/src/main/java/org/apache/paimon/table/PrimaryKeyFileStoreTable.java
index 8c6925d73..0393b0d6e 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/PrimaryKeyFileStoreTable.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/PrimaryKeyFileStoreTable.java
@@ -28,7 +28,6 @@ import
org.apache.paimon.mergetree.compact.LookupMergeFunction;
import org.apache.paimon.mergetree.compact.MergeFunctionFactory;
import org.apache.paimon.operation.FileStoreScan;
import org.apache.paimon.operation.KeyValueFileStoreScan;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.schema.KeyValueFieldsExtractor;
@@ -56,7 +55,7 @@ class PrimaryKeyFileStoreTable extends AbstractFileStoreTable
{
private transient KeyValueFileStore lazyStore;
PrimaryKeyFileStoreTable(FileIO fileIO, Path path, TableSchema
tableSchema) {
- this(fileIO, path, tableSchema, new
CatalogEnvironment(Lock.emptyFactory(), null, null));
+ this(fileIO, path, tableSchema, CatalogEnvironment.empty());
}
PrimaryKeyFileStoreTable(
diff --git
a/paimon-core/src/test/java/org/apache/paimon/TestAppendFileStore.java
b/paimon-core/src/test/java/org/apache/paimon/TestAppendFileStore.java
index 6ca3b3a91..d01210e47 100644
--- a/paimon-core/src/test/java/org/apache/paimon/TestAppendFileStore.java
+++ b/paimon-core/src/test/java/org/apache/paimon/TestAppendFileStore.java
@@ -32,7 +32,6 @@ import org.apache.paimon.io.DataIncrement;
import org.apache.paimon.io.IndexIncrement;
import org.apache.paimon.manifest.ManifestCommittable;
import org.apache.paimon.operation.FileStoreCommitImpl;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.schema.Schema;
import org.apache.paimon.schema.SchemaManager;
import org.apache.paimon.schema.SchemaUtils;
@@ -80,7 +79,7 @@ public class TestAppendFileStore extends AppendOnlyFileStore {
bucketType,
rowType,
tableName,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ CatalogEnvironment.empty());
this.fileIO = fileIO;
this.commitUser = UUID.randomUUID().toString();
diff --git a/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
b/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
index 2b0c66380..6a73a120e 100644
--- a/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
+++ b/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
@@ -39,7 +39,6 @@ import org.apache.paimon.operation.AbstractFileStoreWrite;
import org.apache.paimon.operation.FileStoreCommit;
import org.apache.paimon.operation.FileStoreCommitImpl;
import org.apache.paimon.operation.FileStoreScan;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.operation.SplitRead;
import org.apache.paimon.options.ExpireConfig;
import org.apache.paimon.options.MemorySize;
@@ -133,7 +132,7 @@ public class TestFileStore extends KeyValueFileStore {
keyValueFieldsExtractor,
mfFactory,
(new Path(root)).getName(),
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ CatalogEnvironment.empty());
this.root = root;
this.fileIO = FileIOFinder.find(new Path(root));
this.keySerializer = new InternalRowSerializer(keyType);
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/sink/TableCommitTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/sink/TableCommitTest.java
index d9aa14ce6..34abc25b1 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/sink/TableCommitTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/sink/TableCommitTest.java
@@ -24,7 +24,6 @@ import org.apache.paimon.fs.Path;
import org.apache.paimon.fs.local.LocalFileIO;
import org.apache.paimon.io.DataFilePathFactory;
import org.apache.paimon.manifest.ManifestCommittable;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.schema.Schema;
import org.apache.paimon.schema.SchemaManager;
@@ -125,7 +124,7 @@ public class TableCommitTest {
new FailingFileIO(),
new Path(path),
tableSchema,
- new CatalogEnvironment(Lock.emptyFactory(), null,
null));
+ CatalogEnvironment.empty());
String commitUser = UUID.randomUUID().toString();
StreamTableWrite write = table.newWrite(commitUser);
@@ -212,7 +211,7 @@ public class TableCommitTest {
LocalFileIO.create(),
new Path(path),
tableSchema,
- new CatalogEnvironment(Lock.emptyFactory(), null,
null));
+ CatalogEnvironment.empty());
String commitUser = UUID.randomUUID().toString();
StreamTableWrite write = table.newWrite(commitUser);
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ContinuousAppendAndCompactFollowUpScannerTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ContinuousAppendAndCompactFollowUpScannerTest.java
index 4d3c3fd90..c32e4fad0 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ContinuousAppendAndCompactFollowUpScannerTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ContinuousAppendAndCompactFollowUpScannerTest.java
@@ -21,7 +21,6 @@ package org.apache.paimon.table.source.snapshot;
import org.apache.paimon.Snapshot;
import org.apache.paimon.data.InternalRow;
import org.apache.paimon.io.DataFileMetaSerializer;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.schema.Schema;
import org.apache.paimon.schema.SchemaManager;
@@ -145,10 +144,6 @@ public class ContinuousAppendAndCompactFollowUpScannerTest
extends ScannerTestBa
conf.toMap(),
""));
return FileStoreTableFactory.create(
- fileIO,
- tablePath,
- tableSchema,
- conf,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ fileIO, tablePath, tableSchema, conf,
CatalogEnvironment.empty());
}
}
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ScannerTestBase.java
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ScannerTestBase.java
index bb237f2d1..defbe24ec 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ScannerTestBase.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/ScannerTestBase.java
@@ -27,7 +27,6 @@ import org.apache.paimon.fs.FileIO;
import org.apache.paimon.fs.FileIOFinder;
import org.apache.paimon.fs.Path;
import org.apache.paimon.mergetree.compact.ConcatRecordReader;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.reader.RecordReader;
import org.apache.paimon.reader.RecordReaderIterator;
@@ -168,11 +167,7 @@ public abstract class ScannerTestBase {
conf.toMap(),
""));
return FileStoreTableFactory.create(
- fileIO,
- tablePath,
- tableSchema,
- conf,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ fileIO, tablePath, tableSchema, conf,
CatalogEnvironment.empty());
}
protected List<Split> toSplits(List<DataSplit> dataSplits) {
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/SnapshotReaderTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/SnapshotReaderTest.java
index 9cee8a246..02a170c36 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/SnapshotReaderTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/source/snapshot/SnapshotReaderTest.java
@@ -27,7 +27,6 @@ import org.apache.paimon.fs.FileIO;
import org.apache.paimon.fs.FileIOFinder;
import org.apache.paimon.fs.Path;
import org.apache.paimon.io.DataFileMeta;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.schema.Schema;
import org.apache.paimon.schema.SchemaChange;
@@ -369,10 +368,6 @@ public class SnapshotReaderTest {
options.toMap(),
""));
return FileStoreTableFactory.create(
- fileIO,
- tablePath,
- tableSchema,
- options,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ fileIO, tablePath, tableSchema, options,
CatalogEnvironment.empty());
}
}
diff --git
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/sink/FlinkSinkTest.java
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/sink/FlinkSinkTest.java
index 2a1022dce..84246d00a 100644
---
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/sink/FlinkSinkTest.java
+++
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/sink/FlinkSinkTest.java
@@ -24,7 +24,6 @@ import org.apache.paimon.data.InternalRow;
import org.apache.paimon.fs.FileIOFinder;
import org.apache.paimon.fs.local.LocalFileIO;
import org.apache.paimon.operation.KeyValueFileStoreWrite;
-import org.apache.paimon.operation.Lock;
import org.apache.paimon.options.Options;
import org.apache.paimon.schema.Schema;
import org.apache.paimon.schema.SchemaManager;
@@ -132,6 +131,6 @@ public class FlinkSinkTest {
tablePath,
tableSchema,
options,
- new CatalogEnvironment(Lock.emptyFactory(), null, null));
+ CatalogEnvironment.empty());
}
}
diff --git
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
index 6769d81c6..a371f3e31 100644
---
a/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
+++
b/paimon-spark/paimon-spark-common/src/test/scala/org/apache/paimon/spark/sql/DDLWithHiveCatalogTestBase.scala
@@ -19,6 +19,7 @@
package org.apache.paimon.spark.sql
import org.apache.paimon.spark.PaimonHiveTestBase
+import org.apache.paimon.table.FileStoreTable
import org.apache.spark.sql.{Row, SparkSession}
import org.junit.jupiter.api.Assertions
@@ -47,6 +48,11 @@ abstract class DDLWithHiveCatalogTestBase extends
PaimonHiveTestBase {
Assertions.assertEquals(
getTableLocation("paimon_db.paimon_tbl"),
s"${dBLocation.getCanonicalPath}/paimon_tbl")
+
+ val fileStoreTable = getPaimonScan("SELECT * FROM
paimon_db.paimon_tbl").table
+ .asInstanceOf[FileStoreTable]
+ Assertions.assertEquals("paimon_tbl", fileStoreTable.name())
+ Assertions.assertEquals("paimon_db.paimon_tbl",
fileStoreTable.fullName())
}
}
}