This is an automated email from the ASF dual-hosted git repository.
alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new b7f94a6e29 [ASTERIXDB-3259][MTD] Add 'database' to
DatasetFullyQualifiedName
b7f94a6e29 is described below
commit b7f94a6e296dcf63b80954cab5ec8f64ab78572b
Author: Ali Alsuliman <[email protected]>
AuthorDate: Thu Sep 21 20:39:59 2023 -0700
[ASTERIXDB-3259][MTD] Add 'database' to DatasetFullyQualifiedName
- user model changes: no
- storage format changes: no
- interface changes: no
Change-Id: I87e5a4877a195b917667c7d59e19d4d734124615
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17801
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
Reviewed-by: Murtadha Hubail <[email protected]>
---
.../apache/asterix/app/translator/QueryTranslator.java | 6 ++++--
.../common/metadata/DatasetFullyQualifiedName.java | 15 +++++++++++----
.../org/apache/asterix/lang/common/util/FunctionUtil.java | 3 ++-
.../rewrites/visitor/VariableCheckAndRewriteVisitor.java | 3 ++-
.../org/apache/asterix/metadata/entities/Dataset.java | 2 +-
.../entitytupletranslators/DatasetTupleTranslator.java | 4 +++-
6 files changed, 23 insertions(+), 10 deletions(-)
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 15f4e987c6..9bc0f85716 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 @@ public class QueryTranslator extends
AbstractLangTranslator implements IStatemen
}
}
- DatasetFullyQualifiedName viewQualifiedName = new
DatasetFullyQualifiedName(dataverseName, viewName);
+ DatasetFullyQualifiedName viewQualifiedName =
+ new DatasetFullyQualifiedName(database, dataverseName,
viewName);
Datatype itemTypeEntity = null;
boolean itemTypeIsInline = false;
@@ -2530,7 +2531,8 @@ public class QueryTranslator extends
AbstractLangTranslator implements IStatemen
}
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 4a1a11846a..f53a3a3a42 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 @@ import java.util.Objects;
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 @@ public class DatasetFullyQualifiedName implements
Serializable {
}
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 56432ba3d8..baa5443a78 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 @@ public class FunctionUtil {
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 bdf1115ff4..b36aff5b99 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 @@ public class VariableCheckAndRewriteVisitor extends
AbstractSqlppExpressionScopi
}
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 5e46b6cee0..0ecc98816f 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 @@ public class Dataset implements IMetadataEntity<Dataset>,
IDataset {
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 c74724d236..aa95cc3949 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 @@ public class DatasetTupleTranslator extends
AbstractTupleTranslator<Dataset> {
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)));
}
}