This is an automated email from the ASF dual-hosted git repository.
leaves12138 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 1b57cea5b8 [rest] Preserve custom catalog for dependency reads (#8912)
1b57cea5b8 is described below
commit 1b57cea5b88e38fcab1a472fddedc71b87cc1872
Author: YeJunHao <[email protected]>
AuthorDate: Wed Jul 29 23:50:17 2026 +0800
[rest] Preserve custom catalog for dependency reads (#8912)
---
.../java/org/apache/paimon/table/CatalogEnvironment.java | 4 +++-
.../org/apache/paimon/table/CatalogEnvironmentTest.java | 13 +++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
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 5f75b7d0e5..66979ba811 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
@@ -232,7 +232,9 @@ public class CatalogEnvironment implements Serializable {
}
Options dependencyOptions = new Options(options.toMap());
- dependencyOptions.set(METASTORE, RESTCatalogFactory.IDENTIFIER);
+ if (!dependencyOptions.contains(METASTORE)) {
+ dependencyOptions.set(METASTORE, RESTCatalogFactory.IDENTIFIER);
+ }
dependencyOptions.set(
READ_VIA_OPTION,
RESTUtil.encodeString(JsonSerdeUtil.toFlatJson(identifier)));
return CatalogContext.create(
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/CatalogEnvironmentTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/CatalogEnvironmentTest.java
index 77cc90788e..011975188c 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/CatalogEnvironmentTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/CatalogEnvironmentTest.java
@@ -103,6 +103,19 @@ class CatalogEnvironmentTest {
assertThat(environment.dependencyReadContext()).isNotSameAs(context);
}
+ @Test
+ void testDependencyReadContextPreservesCustomRestMetastore() {
+ Options options = new Options();
+ options.set(METASTORE, "custom-rest");
+ CatalogContext context = CatalogContext.create(options);
+ CatalogEnvironment environment =
restEnvironment(Identifier.create("db", "table"), context);
+
+ CatalogContext dependencyContext = environment.dependencyReadContext();
+
+ assertThat(dependencyContext).isNotSameAs(context);
+
assertThat(dependencyContext.options().get(METASTORE)).isEqualTo("custom-rest");
+ }
+
@Test
void testAppendTableUsesDependencyReadContext() {
CatalogEnvironment environment = mock(CatalogEnvironment.class);