>From Ali Alsuliman <[email protected]>:
Ali Alsuliman has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17801 )
Change subject: [ASTERIXDB-3259][MTD] Add 'database' to
DatasetFullyQualifiedName
......................................................................
[ASTERIXDB-3259][MTD] Add 'database' to DatasetFullyQualifiedName
- user model changes: no
- storage format changes: no
- interface changes: no
Change-Id: I87e5a4877a195b917667c7d59e19d4d734124615
---
M
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
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/entities/Dataset.java
M
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DatasetFullyQualifiedName.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
6 files changed, 36 insertions(+), 10 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/01/17801/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 15f4e98..9bc0f85 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
@@ -2475,7 +2475,8 @@
}
}
- DatasetFullyQualifiedName viewQualifiedName = new
DatasetFullyQualifiedName(dataverseName, viewName);
+ DatasetFullyQualifiedName viewQualifiedName =
+ new DatasetFullyQualifiedName(database, dataverseName,
viewName);
Datatype itemTypeEntity = null;
boolean itemTypeIsInline = false;
@@ -2530,7 +2531,8 @@
}
ViewDetails refViewDetails = (ViewDetails)
refDataset.getDatasetDetails();
refDatasetType = refDataset.getDatasetType();
- refQualifiedName = new
DatasetFullyQualifiedName(refDataverseName, refDatasetName);
+ refQualifiedName =
+ new DatasetFullyQualifiedName(refDatabase,
refDataverseName, refDatasetName);
refPrimaryKeyFields =
refViewDetails.getPrimaryKeyFields();
}
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DatasetFullyQualifiedName.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DatasetFullyQualifiedName.java
index 4a1a118..f53a3a3 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DatasetFullyQualifiedName.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DatasetFullyQualifiedName.java
@@ -23,15 +23,21 @@
public class DatasetFullyQualifiedName implements Serializable {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 2L;
+ private final String databaseName;
private final DataverseName dataverseName;
private final String datasetName;
- public DatasetFullyQualifiedName(DataverseName dataverseName, String
datasetName) {
+ public DatasetFullyQualifiedName(String databaseName, DataverseName
dataverseName, String datasetName) {
+ this.databaseName = databaseName;
this.dataverseName = dataverseName;
this.datasetName = datasetName;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -52,13 +58,14 @@
}
if (o instanceof DatasetFullyQualifiedName) {
DatasetFullyQualifiedName that = (DatasetFullyQualifiedName) o;
- return dataverseName.equals(that.dataverseName) &&
datasetName.equals(that.datasetName);
+ return Objects.equals(databaseName, that.databaseName) &&
dataverseName.equals(that.dataverseName)
+ && datasetName.equals(that.datasetName);
}
return false;
}
@Override
public int hashCode() {
- return Objects.hash(dataverseName, datasetName);
+ return Objects.hash(databaseName, dataverseName, datasetName);
}
}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index 56432ba..baa5443 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -278,7 +278,8 @@
if (datasetName == null) {
throw new CompilationException(ErrorCode.COMPILATION_ERROR,
sourceLoc, "Invalid argument to dataset()");
}
- return new DatasetFullyQualifiedName(dataverseName, datasetName);
+ String databaseName = MetadataUtil.resolveDatabase(null,
dataverseName);
+ return new DatasetFullyQualifiedName(databaseName, dataverseName,
datasetName);
}
private static String getStringConstant(Mutable<ILogicalExpression> arg) {
diff --git
a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java
b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java
index bdf1115..b36aff5 100644
---
a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java
+++
b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java
@@ -284,9 +284,10 @@
}
private ViewDecl findDeclaredView(DataverseName dataverseName, String
viewName) {
+ String databaseName = MetadataUtil.resolveDatabase(null,
dataverseName);
Map<DatasetFullyQualifiedName, ViewDecl> declaredViews =
context.getDeclaredViews();
return declaredViews.isEmpty() ? null
- : declaredViews.get(new
DatasetFullyQualifiedName(dataverseName, viewName));
+ : declaredViews.get(new
DatasetFullyQualifiedName(databaseName, dataverseName, viewName));
}
@Override
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
index 5e46b6c..0ecc988 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
@@ -213,7 +213,7 @@
this.hints = hints;
this.rebalanceCount = rebalanceCount;
this.compressionScheme = compressionScheme;
- datasetFullyQualifiedName = new
DatasetFullyQualifiedName(dataverseName, datasetName);
+ this.datasetFullyQualifiedName = new
DatasetFullyQualifiedName(databaseName, dataverseName, datasetName);
this.datasetFormatInfo = datasetFormatInfo;
}
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
index c74724d..aa95cc3 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
@@ -352,8 +352,10 @@
String refDatasetName =
((AString)
foreignKeyRecord.getValueByPos(refDatasetNameFieldPos)).getStringValue();
+ //TODO(DB):
+ String refDatabase =
MetadataUtil.resolveDatabase(null, refDataverseName);
foreignKeys.add(new
ViewDetails.ForeignKey(foreignKeyFields,
- new
DatasetFullyQualifiedName(refDataverseName, refDatasetName)));
+ new DatasetFullyQualifiedName(refDatabase,
refDataverseName, refDatasetName)));
}
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17801
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: I87e5a4877a195b917667c7d59e19d4d734124615
Gerrit-Change-Number: 17801
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-MessageType: newchange