>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]>