>From Ali Alsuliman <[email protected]>:
Ali Alsuliman has uploaded this change for review. (
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
---
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, 46 insertions(+), 3 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/67/17867/1
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: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-MessageType: newchange