>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

Reply via email to