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;