>From Ali Alsuliman <[email protected]>:

Ali Alsuliman has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17867 )

Change subject: [ASTERIXDB-3259][MTD] Add metadata API to get the databases
......................................................................

[ASTERIXDB-3259][MTD] Add metadata API to get the databases

- user model changes: no
- storage format changes: no
- interface changes: yes

Details:
Add metadata API to get the databases.

Change-Id: Ia3767125e349d42bccabfc43e3f9fdb4506cc199
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17867
Integration-Tests: Jenkins <[email protected]>
Tested-by: Ali Alsuliman <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
Reviewed-by: Murtadha Hubail <[email protected]>
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
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
5 files changed, 51 insertions(+), 3 deletions(-)

Approvals:
  Murtadha Hubail: Looks good to me, approved
  Ali Alsuliman: Looks good to me, but someone else must approve; Verified
  Jenkins: Verified




diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index f404ca5..a792267 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -2015,6 +2015,7 @@
             }

             // #. prepare jobs which will drop corresponding libraries
+            //TODO(DB): library database
             List<Library> libraries = 
MetadataManager.INSTANCE.getDatabaseLibraries(mdTxnCtx, databaseName);
             for (Library library : libraries) {
                 
jobsToExecute.add(ExternalLibraryJobUtils.buildDropLibraryJobSpec(library.getDataverseName(),
@@ -2214,7 +2215,7 @@
             List<Library> libraries =
                     MetadataManager.INSTANCE.getDataverseLibraries(mdTxnCtx, 
databaseName, dataverseName);
             for (Library library : libraries) {
-                //TODO(DB):
+                //TODO(DB): library database
                 
jobsToExecute.add(ExternalLibraryJobUtils.buildDropLibraryJobSpec(dataverseName,
 library.getName(),
                         metadataProvider));
             }
@@ -2310,12 +2311,12 @@
     }

     protected void validateDatabaseStateBeforeDrop(MetadataProvider 
metadataProvider, Database database,
-            SourceLocation sourceLoc) throws AlgebricksException {
+            SourceLocation sourceLoc) throws AlgebricksException, 
HyracksDataException {
         // may be overridden by product extensions for additional checks 
before dropping the database
     }

     protected void validateDataverseStateBeforeDrop(MetadataProvider 
metadataProvider, Dataverse dataverse,
-            SourceLocation sourceLoc) throws AlgebricksException {
+            SourceLocation sourceLoc) throws AlgebricksException, 
HyracksDataException {
         // may be overridden by product extensions for additional checks 
before dropping the dataverse
     }

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 ed3474d..2c71084 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
@@ -256,6 +256,15 @@
     }

     @Override
+    public List<Database> getDatabases(MetadataTransactionContext ctx) throws 
AlgebricksException {
+        try {
+            return metadataNode.getDatabases(ctx.getTxnId());
+        } catch (RemoteException e) {
+            throw new 
MetadataException(ErrorCode.REMOTE_EXCEPTION_WHEN_CALLING_METADATA_NODE, e);
+        }
+    }
+
+    @Override
     public List<Dataverse> getDataverses(MetadataTransactionContext ctx) 
throws AlgebricksException {
         try {
             return metadataNode.getDataverses(ctx.getTxnId());
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 5383ac9..0571eff 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
@@ -1115,6 +1115,19 @@
     }

     @Override
+    public List<Database> getDatabases(TxnId txnId) throws 
AlgebricksException, RemoteException {
+        try {
+            DatabaseTupleTranslator tupleReaderWriter = 
tupleTranslatorProvider.getDatabaseTupleTranslator(false);
+            IValueExtractor<Database> valueExtractor = new 
MetadataEntityValueExtractor<>(tupleReaderWriter);
+            List<Database> results = new ArrayList<>();
+            searchIndex(txnId, 
mdIndexesProvider.getDatabaseEntity().getIndex(), null, valueExtractor, 
results);
+            return results;
+        } catch (HyracksDataException e) {
+            throw new AlgebricksException(e);
+        }
+    }
+
+    @Override
     public List<Dataverse> getDataverses(TxnId txnId) throws 
AlgebricksException {
         try {
             DataverseTupleTranslator tupleReaderWriter = 
tupleTranslatorProvider.getDataverseTupleTranslator(false);
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 f3cc811..d5e0157 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
@@ -108,6 +108,8 @@
      */
     void addDataverse(MetadataTransactionContext ctx, Dataverse dataverse) 
throws AlgebricksException;

+    List<Database> getDatabases(MetadataTransactionContext ctx) throws 
AlgebricksException;
+
     /**
      * Retrieves all dataverses
      *
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 a4f2ca7..0d753d8 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
@@ -130,6 +130,8 @@
     Dataverse getDataverse(TxnId txnId, String database, DataverseName 
dataverseName)
             throws AlgebricksException, RemoteException;

+    List<Database> getDatabases(TxnId txnId) throws AlgebricksException, 
RemoteException;
+
     /**
      * Retrieves all dataverses, acquiring local locks on behalf of the given
      * transaction id.

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

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ia3767125e349d42bccabfc43e3f9fdb4506cc199
Gerrit-Change-Number: 17867
Gerrit-PatchSet: 2
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-CC: Till Westmann <[email protected]>
Gerrit-MessageType: merged

Reply via email to