>From Hussain Towaileb <[email protected]>:

Hussain Towaileb has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20803?usp=email )


Change subject: [ASTERIXDB-3634][EXT]: Add support to listing all catalogs
......................................................................

[ASTERIXDB-3634][EXT]: Add support to listing all catalogs

Ext-ref: MB-63115
Change-Id: Id414947895593742deffb23814c6b6b0feb48255
---
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
M asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
6 files changed, 28 insertions(+), 0 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/03/20803/1

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 f604f66..7172afe 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
@@ -346,6 +346,7 @@
     ICEBERG_SNAPSHOT_ID_NOT_FOUND(1238),
     INVALID_ICEBERG_SNAPSHOT_VALUE(1239),
     NO_VALID_CREDENTIALS_PROVIDED_FOR_BIGLAKE_METASTORE_CATALOG(1240),
+    COLLECTION_IS_NOT_AN_ICEBERG_TABLE_COLLECTION(1241),

     // 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 16c5c99..ed83cdb 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -348,6 +348,7 @@
 1238 = Iceberg snapshot '%1$s' not found
 1239 = Invalid Iceberg snapshot value: '%1$s'
 1240 = No valid credentials provided to access Biglake Metastore catalog.
+1241 = 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 5539a2f..f7d0378 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
@@ -1372,6 +1372,15 @@
     }

     @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);
         // first look in the context to see if this transaction created the
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 24c6d34..e1c1f6e 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
@@ -3160,6 +3160,19 @@
     }

     @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 {
             ITupleReference searchKey = createTuple(catalogName);
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 8995165..acd3fe8 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 @@

     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 66a91a1..4c1426a 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 @@
      */
     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;

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20803?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Id414947895593742deffb23814c6b6b0feb48255
Gerrit-Change-Number: 20803
Gerrit-PatchSet: 1
Gerrit-Owner: Hussain Towaileb <[email protected]>

Reply via email to