This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 3b2d6255b5d61e232b853e66783f839868e3a8fe
Author: Dmitry Lychagin <[email protected]>
AuthorDate: Fri Jan 8 11:45:53 2021 -0800

    [NO ISSUE][COMP] Remove accessed dataset tracking
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - Remove accessed dataset tracking from metadata provider
    
    Change-Id: I0872330f4645d35a7db21c67cd22c255168c2ec9
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9523
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Murtadha Hubail <[email protected]>
---
 .../asterix/app/function/DatasetRewriter.java      | 49 ++++++++++++----------
 .../visitor/VariableCheckAndRewriteVisitor.java    |  1 -
 .../metadata/declared/MetadataProvider.java        | 14 -------
 3 files changed, 28 insertions(+), 36 deletions(-)

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetRewriter.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetRewriter.java
index c459547..974cd9e 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetRewriter.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetRewriter.java
@@ -71,14 +71,7 @@ public class DatasetRewriter implements 
IFunctionToDataSourceRewriter, IResultTy
         }
 
         MetadataProvider metadataProvider = (MetadataProvider) 
context.getMetadataProvider();
-        Pair<DataverseName, String> datasetReference = 
FunctionUtil.parseDatasetFunctionArguments(f);
-        DataverseName dataverseName = datasetReference.first;
-        String datasetName = datasetReference.second;
-        Dataset dataset = metadataProvider.findDataset(dataverseName, 
datasetName);
-        if (dataset == null) {
-            throw new 
CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, 
unnest.getSourceLocation(),
-                    datasetName, dataverseName);
-        }
+        Dataset dataset = fetchDataset(metadataProvider, f);
         DataSourceId dsid = new DataSourceId(dataset.getDataverseName(), 
dataset.getDatasetName());
         List<LogicalVariable> variables = new ArrayList<>();
         if (dataset.getDatasetType() == DatasetType.INTERNAL) {
@@ -123,21 +116,35 @@ public class DatasetRewriter implements 
IFunctionToDataSourceRewriter, IResultTy
     @Override
     public IAType computeType(ILogicalExpression expression, 
IVariableTypeEnvironment env, IMetadataProvider<?, ?> mp)
             throws AlgebricksException {
-        AbstractFunctionCallExpression f = (AbstractFunctionCallExpression) 
expression;
+        AbstractFunctionCallExpression datasetFnCall = 
(AbstractFunctionCallExpression) expression;
         MetadataProvider metadata = (MetadataProvider) mp;
-        Pair<DataverseName, String> datasetInfo = 
FunctionUtil.parseDatasetFunctionArguments(f);
-        DataverseName dataverseName = datasetInfo.first;
-        String datasetName = datasetInfo.second;
-        Dataset dataset = metadata.findDataset(dataverseName, datasetName);
-        if (dataset == null) {
-            throw new 
CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, 
f.getSourceLocation(), datasetName,
-                    dataverseName);
+        Dataset dataset = fetchDataset(metadata, datasetFnCall);
+        IAType type = metadata.findType(dataset.getItemTypeDataverseName(), 
dataset.getItemTypeName());
+        if (type == null) {
+            throw new CompilationException(ErrorCode.COMPILATION_ERROR, 
datasetFnCall.getSourceLocation(),
+                    "No type for dataset " + dataset.getDatasetName());
         }
-        String tn = dataset.getItemTypeName();
-        IAType t2 = metadata.findType(dataset.getItemTypeDataverseName(), tn);
-        if (t2 == null) {
-            throw new AlgebricksException("No type for dataset " + 
datasetName);
+        return type;
+    }
+
+    public static Dataset fetchDataset(MetadataProvider metadataProvider, 
AbstractFunctionCallExpression datasetFnCall)
+            throws CompilationException {
+        Pair<DataverseName, String> datasetReference = 
FunctionUtil.parseDatasetFunctionArguments(datasetFnCall);
+        DataverseName dataverseName = datasetReference.first;
+        String datasetName = datasetReference.second;
+        Dataset dataset;
+        try {
+            dataset = metadataProvider.findDataset(dataverseName, datasetName);
+        } catch (CompilationException e) {
+            throw e;
+        } catch (AlgebricksException e) {
+            throw new CompilationException(ErrorCode.COMPILATION_ERROR, e, 
datasetFnCall.getSourceLocation(),
+                    e.getMessage());
+        }
+        if (dataset == null) {
+            throw new 
CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, 
datasetFnCall.getSourceLocation(),
+                    datasetName, dataverseName);
         }
-        return t2;
+        return dataset;
     }
 }
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 cf8469f..291bcd0 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
@@ -159,7 +159,6 @@ public class VariableCheckAndRewriteVisitor extends 
AbstractSqlppExpressionScopi
         if (dataset == null) {
             throw createUnresolvableError(dataverseName, datasetName, 
sourceLoc);
         }
-        metadataProvider.addAccessedDataset(dataset);
         List<Expression> argList = new ArrayList<>(2);
         argList.add(new LiteralExpr(new 
StringLiteral(dataset.getDataverseName().getCanonicalForm())));
         argList.add(new LiteralExpr(new 
StringLiteral(dataset.getDatasetName())));
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 075c2a8..e2505b7 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -22,14 +22,11 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
 
 import org.apache.asterix.common.cluster.IClusterStateManager;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
@@ -171,7 +168,6 @@ public class MetadataProvider implements 
IMetadataProvider<DataSourceId, String>
     private final IFunctionManager functionManager;
     private final LockList locks;
     private final Map<String, Object> config;
-    private final Set<Dataset> txnAccessedDatasets;
 
     private Dataverse defaultDataverse;
     private MetadataTransactionContext mdTxnCtx;
@@ -201,7 +197,6 @@ public class MetadataProvider implements 
IMetadataProvider<DataSourceId, String>
         functionManager = ((IFunctionExtensionManager) 
appCtx.getExtensionManager()).getFunctionManager();
         locks = new LockList();
         config = new HashMap<>();
-        txnAccessedDatasets = new HashSet<>();
     }
 
     @SuppressWarnings("unchecked")
@@ -262,7 +257,6 @@ public class MetadataProvider implements 
IMetadataProvider<DataSourceId, String>
 
     public void setMetadataTxnContext(MetadataTransactionContext mdTxnCtx) {
         this.mdTxnCtx = mdTxnCtx;
-        txnAccessedDatasets.clear();
     }
 
     public MetadataTransactionContext getMetadataTxnContext() {
@@ -1750,14 +1744,6 @@ public class MetadataProvider implements 
IMetadataProvider<DataSourceId, String>
         return appCtx.getCompressionManager();
     }
 
-    public void addAccessedDataset(Dataset dataset) {
-        txnAccessedDatasets.add(dataset);
-    }
-
-    public Set<Dataset> getAccessedDatasets() {
-        return Collections.unmodifiableSet(txnAccessedDatasets);
-    }
-
     public void validateDataverseName(DataverseName dataverseName, 
SourceLocation sourceLoc)
             throws AlgebricksException {
         int totalLengthUTF8 = 0;

Reply via email to