>From Michael Blow <[email protected]>: Michael Blow has submitted this change. ( 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 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]> --- 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(-) Approvals: Michael Blow: Looks good to me, approved Jenkins: Verified; Verified 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 d52fe07..dd8d358 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 @@ 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 4b0fd2b..fe1e4ab 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 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: merged Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: Id414947895593742deffb23814c6b6b0feb48255 Gerrit-Change-Number: 20803 Gerrit-PatchSet: 4 Gerrit-Owner: Hussain Towaileb <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Hussain Towaileb <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]>
