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;
