From 08f5d42bba1f784b64d8b593677d1152bc7c31f2 Mon Sep 17 00:00:00 2001 From: zzzk1 Date: Thu, 27 Feb 2025 09:42:45 +0800 Subject: [PATCH] fix --- .../relational/mapper/CatalogMetaMapper.java | 14 +++++++----- .../mapper/CatalogMetaSQLProviderFactory.java | 12 ++++++---- .../base/CatalogMetaBaseSQLProvider.java | 22 ++++++++++++++----- .../service/CatalogMetaService.java | 8 +++++-- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaMapper.java b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaMapper.java index 009bbf40c3f..6c43ca1604a 100644 --- a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaMapper.java +++ b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaMapper.java @@ -45,11 +45,15 @@ public interface CatalogMetaMapper { @SelectProvider( type = CatalogMetaSQLProviderFactory.class, - method = "listCatalogPOsByCatalogName") - List listCatalogPOsByCatalogName(@Param("catalogName") String catalogName); - - @SelectProvider(type = CatalogMetaSQLProviderFactory.class, method = "listCatalogPOsBySchemaName") - List listCatalogPOsBySchemaName(@Param("schemaName") String schemaName); + method = "listCatalogPOsByMetalakeAndCatalogName") + List listCatalogPOsByMetalakeAndCatalogName( + @Param("metalakeName") String metalakeName, @Param("catalogName") String catalogName); + + @SelectProvider(type = CatalogMetaSQLProviderFactory.class, method = "listCatalogPOs") + List listCatalogPOs( + @Param("metalakeName") String metalakeName, + @Param("catalogName") String catalogName, + @Param("schemaName") String schemaName); @SelectProvider(type = CatalogMetaSQLProviderFactory.class, method = "listCatalogPOsByMetalakeId") List listCatalogPOsByMetalakeId(@Param("metalakeId") Long metalakeId); diff --git a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaSQLProviderFactory.java b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaSQLProviderFactory.java index 141b1f537c2..e09cef5fbda 100644 --- a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaSQLProviderFactory.java +++ b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/CatalogMetaSQLProviderFactory.java @@ -57,12 +57,16 @@ public static String listCatalogPOsByMetalakeName(@Param("metalakeName") String return getProvider().listCatalogPOsByMetalakeName(metalakeName); } - public static String listCatalogPOsByCatalogName(@Param("catalogName") String catalogName) { - return getProvider().listCatalogPOsByCatalogName(catalogName); + public static String listCatalogPOsByMetalakeAndCatalogName( + @Param("metalakeName") String metalakeName, @Param("catalogName") String catalogName) { + return getProvider().listCatalogPOsByMetalakeAndCatalogName(metalakeName, catalogName); } - public static String listCatalogPOsBySchemaName(@Param("schemaName") String schemaName) { - return getProvider().listCatalogPOsBySchemaName(schemaName); + public static String listCatalogPOs( + @Param("metalakeName") String metalakeName, + @Param("catalogName") String catalogName, + @Param("schemaName") String schemaName) { + return getProvider().listCatalogPOs(metalakeName, catalogName, schemaName); } public static String listCatalogPOsByMetalakeId(@Param("metalakeId") Long metalakeId) { diff --git a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/provider/base/CatalogMetaBaseSQLProvider.java b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/provider/base/CatalogMetaBaseSQLProvider.java index 4c6830ee4fa..fb68882473a 100644 --- a/core/src/main/java/org/apache/gravitino/storage/relational/mapper/provider/base/CatalogMetaBaseSQLProvider.java +++ b/core/src/main/java/org/apache/gravitino/storage/relational/mapper/provider/base/CatalogMetaBaseSQLProvider.java @@ -43,7 +43,8 @@ public String listCatalogPOsByMetalakeName(@Param("metalakeName") String metalak + " AND mm.deleted_at = 0 AND cm.deleted_at = 0"; } - public String listCatalogPOsByCatalogName(@Param("catalogName") String catalogName) { + public String listCatalogPOsByMetalakeAndCatalogName( + @Param("metalakeName") String metalakeName, @Param("catalogName") String catalogName) { return "SELECT cm.catalog_id as catalogId, cm.catalog_name as catalogName," + " cm.metalake_id as metalakeId, cm.type, cm.provider," + " cm.catalog_comment as catalogComment, cm.properties, cm.audit_info as auditInfo," @@ -54,11 +55,15 @@ public String listCatalogPOsByCatalogName(@Param("catalogName") String catalogNa + " cm JOIN " + MetalakeMetaMapper.TABLE_NAME + " mm ON cm.metalake_id = mm.metalake_id" - + " WHERE cm.catalog_name = #{catalogName}" + + " WHERE mm.metalake_name = #{metalakeName}" + + " AND cm.catalog_name = #{catalogName}" + " AND mm.deleted_at = 0 AND cm.deleted_at = 0"; } - public String listCatalogPOsBySchemaName(@Param("schemaName") String schemaName) { + public String listCatalogPOs( + @Param("metalakeName") String metalakeName, + @Param("catalogName") String catalogName, + @Param("schemaName") String schemaName) { return "SELECT cm.catalog_id as catalogId, cm.catalog_name as catalogName," + " cm.metalake_id as metalakeId, cm.type, cm.provider," + " cm.catalog_comment as catalogComment, cm.properties, cm.audit_info as auditInfo," @@ -68,9 +73,14 @@ public String listCatalogPOsBySchemaName(@Param("schemaName") String schemaName) + TABLE_NAME + " cm JOIN " + SchemaMetaMapper.TABLE_NAME - + " mm ON cm.metalake_id = sm.metalake_id" - + " WHERE sm.schema_name = #{schemaName}" - + " AND cm.deleted_at = 0 AND sm.deleted_at = 0"; + + " sm ON cm.catalog_id = sm.catalog_id" + + " JOIN " + + MetalakeMetaMapper.TABLE_NAME + + " mm ON cm.metalake_id = mm.metalake_id" + + " WHERE mm.metalakeName = #{metalakeName}" + + " AND cm.catalog_name = #{catalogName}" + + " AND sm.schema_name = #{schemaName}" + + " AND cm.deleted_at = 0 AND sm.deleted_at = 0 AND mm.deleted_at = 0"; } public String listCatalogPOsByMetalakeId(@Param("metalakeId") Long metalakeId) { diff --git a/core/src/main/java/org/apache/gravitino/storage/relational/service/CatalogMetaService.java b/core/src/main/java/org/apache/gravitino/storage/relational/service/CatalogMetaService.java index b1571d22014..f08a4db0992 100644 --- a/core/src/main/java/org/apache/gravitino/storage/relational/service/CatalogMetaService.java +++ b/core/src/main/java/org/apache/gravitino/storage/relational/service/CatalogMetaService.java @@ -131,14 +131,18 @@ public List listCatalogsByNamespace(Namespace namespace) { catalogPOS = SessionUtils.getWithoutCommit( CatalogMetaMapper.class, - mapper -> mapper.listCatalogPOsByCatalogName(namespace.level(1))); + mapper -> + mapper.listCatalogPOsByMetalakeAndCatalogName( + namespace.level(0), namespace.level(1))); } if (namespace.levels().length >= 3) { catalogPOS = SessionUtils.getWithoutCommit( CatalogMetaMapper.class, - mapper -> mapper.listCatalogPOsBySchemaName(namespace.level(2))); + mapper -> + mapper.listCatalogPOs( + namespace.level(0), namespace.level(1), namespace.level(2))); } return POConverters.fromCatalogPOs(catalogPOS, namespace);