This is an automated email from the ASF dual-hosted git repository.

preetham02 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 6711af9c56 [ASTERIXDB-3634][EXT]: Add support to listing all catalogs
6711af9c56 is described below

commit 6711af9c5610ce1ea7667c0799eac623776545b7
Author: Hussain Towaileb <[email protected]>
AuthorDate: Thu Jan 15 20:43:40 2026 +0300

    [ASTERIXDB-3634][EXT]: Add support to listing all catalogs
    
    Ext-ref: MB-63115
    Change-Id: Id414947895593742deffb23814c6b6b0feb48255
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20803
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Michael Blow <[email protected]>
---
 .../org/apache/asterix/common/exceptions/ErrorCode.java     |  1 +
 .../src/main/resources/asx_errormsg/en.properties           |  1 +
 .../java/org/apache/asterix/metadata/MetadataManager.java   |  9 +++++++++
 .../main/java/org/apache/asterix/metadata/MetadataNode.java | 13 +++++++++++++
 .../org/apache/asterix/metadata/api/IMetadataManager.java   |  2 ++
 .../java/org/apache/asterix/metadata/api/IMetadataNode.java |  2 ++
 6 files changed, 28 insertions(+)

diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
index d52fe0799b..dd8d358b21 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
@@ -347,6 +347,7 @@ public enum ErrorCode implements IError {
     INVALID_ICEBERG_SNAPSHOT_VALUE(1239),
     NO_VALID_CREDENTIALS_PROVIDED_FOR_BIGLAKE_METASTORE_CATALOG(1240),
     INVALID_FRAME_BASED_MEMORY_BUDGET(1241),
+    COLLECTION_IS_NOT_AN_ICEBERG_TABLE_COLLECTION(1242),
 
     // Feed errors
     DATAFLOW_ILLEGAL_STATE(3001),
diff --git 
a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties 
b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
index 4b0fd2bd41..fe1e4ababe 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -349,6 +349,7 @@
 1239 = Invalid Iceberg snapshot value: '%1$s'
 1240 = No valid credentials provided to access Biglake Metastore catalog.
 1241 = Invalid `%1$s` "%2$s" for frame size=%3$s. value should be >= %4$s * 
frame size: `%1$s` "%5$s" in %6$s
+1242 = Collection '%1$s' is not an Iceberg table external collection.
 
 # Feed Errors
 3001 = Illegal state.
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
index 5539a2f0cb..f7d0378ef6 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
@@ -1371,6 +1371,15 @@ public abstract class MetadataManager implements 
IMetadataManager {
         ctx.addCatalog(catalog);
     }
 
+    @Override
+    public List<Catalog> getCatalogs(MetadataTransactionContext ctx) throws 
AlgebricksException {
+        try {
+            return metadataNode.getCatalogs(ctx.getTxnId());
+        } catch (RemoteException e) {
+            throw new 
MetadataException(ErrorCode.REMOTE_EXCEPTION_WHEN_CALLING_METADATA_NODE, e);
+        }
+    }
+
     @Override
     public Catalog getCatalog(MetadataTransactionContext ctx, String 
catalogName) throws AlgebricksException {
         Objects.requireNonNull(catalogName);
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
index 24c6d348a2..e1c1f6e8cd 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
@@ -3159,6 +3159,19 @@ public class MetadataNode implements IMetadataNode {
         }
     }
 
+    @Override
+    public List<Catalog> getCatalogs(TxnId txnId) throws AlgebricksException, 
RemoteException {
+        try {
+            CatalogTupleTranslator tupleReaderWriter = 
tupleTranslatorProvider.getCatalogTupleTranslator(false);
+            IValueExtractor<Catalog> valueExtractor = new 
MetadataEntityValueExtractor<>(tupleReaderWriter);
+            List<Catalog> results = new ArrayList<>();
+            searchIndex(txnId, 
mdIndexesProvider.getCatalogEntity().getIndex(), null, valueExtractor, results);
+            return results;
+        } catch (HyracksDataException e) {
+            throw new AsterixException(METADATA_ERROR, e, e.getMessage());
+        }
+    }
+
     @Override
     public Catalog getCatalog(TxnId txnId, String catalogName) throws 
AlgebricksException, RemoteException {
         try {
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
index 8995165a18..acd3fe8df5 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
@@ -928,6 +928,8 @@ public interface IMetadataManager extends 
IMetadataBootstrap {
 
     void addCatalog(MetadataTransactionContext ctx, Catalog catalog) throws 
AlgebricksException;
 
+    List<Catalog> getCatalogs(MetadataTransactionContext ctx) throws 
AlgebricksException;
+
     Catalog getCatalog(MetadataTransactionContext ctx, String catalogName) 
throws AlgebricksException;
 
     void dropCatalog(MetadataTransactionContext ctx, String catalogName) 
throws AlgebricksException;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
index 66a91a163d..4c1426af23 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
@@ -1037,6 +1037,8 @@ public interface IMetadataNode extends Remote, 
Serializable {
      */
     void addCatalog(TxnId txnId, Catalog catalog) throws AlgebricksException, 
RemoteException;
 
+    List<Catalog> getCatalogs(TxnId txnId) throws AlgebricksException, 
RemoteException;
+
     Catalog getCatalog(TxnId txnId, String catalogName) throws 
AlgebricksException, RemoteException;
 
     void dropCatalog(TxnId txnId, String catalogName) throws 
AlgebricksException, RemoteException;

Reply via email to