[NO ISSUE][FAIL] Replace MetadataException by AlgebricksException in APIs Change-Id: Ia543ac84b698042582249837912d21ddaa48453f Reviewed-on: https://asterix-gerrit.ics.uci.edu/2134 Sonar-Qube: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/d25513cc Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/d25513cc Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/d25513cc Branch: refs/heads/master Commit: d25513ccbf3ae171fbacd5ebfe9367a2b8c5ff96 Parents: 7722e5d Author: Murtadha Hubail <[email protected]> Authored: Sat Nov 11 03:08:21 2017 +0300 Committer: Michael Blow <[email protected]> Committed: Sat Nov 11 10:11:22 2017 -0800 ---------------------------------------------------------------------- .../physical/InvertedIndexPOperator.java | 82 ++-- .../LangExpressionToPlanTranslator.java | 71 ++- .../asterix/app/translator/QueryTranslator.java | 67 ++- .../asterix/lang/common/util/FunctionUtil.java | 34 +- .../asterix/metadata/MetadataManager.java | 137 +++--- .../apache/asterix/metadata/MetadataNode.java | 489 ++++++++++--------- .../api/IMetadataEntityTupleTranslator.java | 24 +- .../asterix/metadata/api/IMetadataManager.java | 269 +++++----- .../asterix/metadata/api/IMetadataNode.java | 336 +++++++------ .../asterix/metadata/api/IValueExtractor.java | 7 +- .../metadata/bootstrap/MetadataBootstrap.java | 59 ++- .../metadata/declared/MetadataManagerUtil.java | 47 +- .../metadata/declared/MetadataProvider.java | 423 ++++++++-------- .../metadata/entities/BuiltinTypeMap.java | 3 +- .../CompactionPolicyTupleTranslator.java | 4 +- .../DatasetTupleTranslator.java | 11 +- .../DatasourceAdapterTupleTranslator.java | 6 +- .../DatatypeTupleTranslator.java | 15 +- .../DataverseTupleTranslator.java | 4 +- .../ExternalFileTupleTranslator.java | 6 +- .../FeedConnectionTupleTranslator.java | 6 +- .../FeedPolicyTupleTranslator.java | 4 +- .../FeedTupleTranslator.java | 4 +- .../FunctionTupleTranslator.java | 4 +- .../IndexTupleTranslator.java | 13 +- .../LibraryTupleTranslator.java | 5 +- .../NodeGroupTupleTranslator.java | 4 +- .../NodeTupleTranslator.java | 3 +- .../metadata/feeds/BuiltinFeedPolicies.java | 5 +- .../metadata/feeds/FeedMetadataUtil.java | 10 +- .../functions/ExternalFunctionCompilerUtil.java | 14 +- .../asterix/metadata/utils/DatasetUtil.java | 129 +++-- .../utils/SplitsAndConstraintsUtil.java | 15 +- .../MetadataEntityValueExtractor.java | 3 +- .../NestedDatatypeNameValueExtractor.java | 4 +- .../TupleCopyValueExtractor.java | 5 +- .../DatasetTupleTranslatorTest.java | 3 +- .../IndexTupleTranslatorTest.java | 3 +- .../asterix/tools/datagen/AdmDataGen.java | 47 +- .../tools/translator/ADGenDmlTranslator.java | 6 +- 40 files changed, 1196 insertions(+), 1185 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d25513cc/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java index cd0a63c..12114f0 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java @@ -100,19 +100,15 @@ public class InvertedIndexPOperator extends IndexSearchPOperator { jobGenParams.readFromFuncArgs(unnestFuncExpr.getArguments()); MetadataProvider metadataProvider = (MetadataProvider) context.getMetadataProvider(); - Dataset dataset; - try { - dataset = metadataProvider.findDataset(jobGenParams.getDataverseName(), jobGenParams.getDatasetName()); - } catch (MetadataException e) { - throw new AlgebricksException(e); - } + Dataset dataset = metadataProvider.findDataset(jobGenParams.getDataverseName(), jobGenParams.getDatasetName()); int[] keyIndexes = getKeyIndexes(jobGenParams.getKeyVarList(), inputSchemas); int[] minFilterFieldIndexes = getKeyIndexes(unnestMapOp.getMinFilterVars(), inputSchemas); int[] maxFilterFieldIndexes = getKeyIndexes(unnestMapOp.getMaxFilterVars(), inputSchemas); boolean retainNull = false; if (op.getOperatorTag() == LogicalOperatorTag.LEFT_OUTER_UNNEST_MAP) { - // By nature, LEFT_OUTER_UNNEST_MAP should generate null values for non-matching tuples. + // By nature, LEFT_OUTER_UNNEST_MAP should generate null values for non-matching + // tuples. retainNull = true; } // Build runtime. @@ -135,46 +131,38 @@ public class InvertedIndexPOperator extends IndexSearchPOperator { AbstractUnnestMapOperator unnestMap, IOperatorSchema opSchema, boolean retainInput, boolean retainMissing, String datasetName, Dataset dataset, String indexName, ATypeTag searchKeyType, int[] keyFields, SearchModifierType searchModifierType, IAlgebricksConstantValue similarityThreshold, - int[] minFilterFieldIndexes, int[] maxFilterFieldIndexes, - boolean isFullTextSearchQuery) throws AlgebricksException { - try { - - boolean propagateIndexFilter = unnestMap.propagateIndexFilter(); - IAObject simThresh = ((AsterixConstantValue) similarityThreshold).getObject(); - int numPrimaryKeys = dataset.getPrimaryKeys().size(); - Index secondaryIndex = MetadataManager.INSTANCE - .getIndex(metadataProvider.getMetadataTxnContext(), dataset.getDataverseName(), - dataset.getDatasetName(), indexName); - if (secondaryIndex == null) { - throw new AlgebricksException( - "Code generation error: no index " + indexName + " for dataset " + datasetName); - } - IVariableTypeEnvironment typeEnv = context.getTypeEnvironment(unnestMap); - RecordDescriptor outputRecDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context); - Pair<IFileSplitProvider, AlgebricksPartitionConstraint> secondarySplitsAndConstraint = - metadataProvider.getSplitProviderAndConstraints(dataset, indexName); - // TODO: Here we assume there is only one search key field. - int queryField = keyFields[0]; - // Get tokenizer and search modifier factories. - IInvertedIndexSearchModifierFactory searchModifierFactory = - InvertedIndexAccessMethod.getSearchModifierFactory(searchModifierType, simThresh, secondaryIndex); - IBinaryTokenizerFactory queryTokenizerFactory = InvertedIndexAccessMethod - .getBinaryTokenizerFactory(searchModifierType, searchKeyType, secondaryIndex); - IIndexDataflowHelperFactory dataflowHelperFactory = - new IndexDataflowHelperFactory(metadataProvider.getStorageComponentProvider().getStorageManager(), - secondarySplitsAndConstraint.first); - LSMInvertedIndexSearchOperatorDescriptor invIndexSearchOp = - new LSMInvertedIndexSearchOperatorDescriptor(jobSpec, outputRecDesc, queryField, - dataflowHelperFactory, queryTokenizerFactory, searchModifierFactory, retainInput, - retainMissing, context.getMissingWriterFactory(), - dataset.getSearchCallbackFactory(metadataProvider.getStorageComponentProvider(), - secondaryIndex, - ((JobEventListenerFactory) jobSpec.getJobletEventListenerFactory()).getJobId(), - IndexOperation.SEARCH, null), minFilterFieldIndexes, maxFilterFieldIndexes, - isFullTextSearchQuery, numPrimaryKeys, propagateIndexFilter); - return new Pair<>(invIndexSearchOp, secondarySplitsAndConstraint.second); - } catch (MetadataException e) { - throw new AlgebricksException(e); + int[] minFilterFieldIndexes, int[] maxFilterFieldIndexes, boolean isFullTextSearchQuery) + throws AlgebricksException { + boolean propagateIndexFilter = unnestMap.propagateIndexFilter(); + IAObject simThresh = ((AsterixConstantValue) similarityThreshold).getObject(); + int numPrimaryKeys = dataset.getPrimaryKeys().size(); + Index secondaryIndex = MetadataManager.INSTANCE.getIndex(metadataProvider.getMetadataTxnContext(), + dataset.getDataverseName(), dataset.getDatasetName(), indexName); + if (secondaryIndex == null) { + throw new AlgebricksException( + "Code generation error: no index " + indexName + " for dataset " + datasetName); } + IVariableTypeEnvironment typeEnv = context.getTypeEnvironment(unnestMap); + RecordDescriptor outputRecDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context); + Pair<IFileSplitProvider, AlgebricksPartitionConstraint> secondarySplitsAndConstraint = + metadataProvider.getSplitProviderAndConstraints(dataset, indexName); + // TODO: Here we assume there is only one search key field. + int queryField = keyFields[0]; + // Get tokenizer and search modifier factories. + IInvertedIndexSearchModifierFactory searchModifierFactory = + InvertedIndexAccessMethod.getSearchModifierFactory(searchModifierType, simThresh, secondaryIndex); + IBinaryTokenizerFactory queryTokenizerFactory = + InvertedIndexAccessMethod.getBinaryTokenizerFactory(searchModifierType, searchKeyType, secondaryIndex); + IIndexDataflowHelperFactory dataflowHelperFactory = new IndexDataflowHelperFactory( + metadataProvider.getStorageComponentProvider().getStorageManager(), secondarySplitsAndConstraint.first); + LSMInvertedIndexSearchOperatorDescriptor invIndexSearchOp = new LSMInvertedIndexSearchOperatorDescriptor( + jobSpec, outputRecDesc, queryField, dataflowHelperFactory, queryTokenizerFactory, searchModifierFactory, + retainInput, retainMissing, context.getMissingWriterFactory(), + dataset.getSearchCallbackFactory(metadataProvider.getStorageComponentProvider(), secondaryIndex, + ((JobEventListenerFactory) jobSpec.getJobletEventListenerFactory()).getJobId(), + IndexOperation.SEARCH, null), + minFilterFieldIndexes, maxFilterFieldIndexes, isFullTextSearchQuery, numPrimaryKeys, + propagateIndexFilter); + return new Pair<>(invIndexSearchOp, secondarySplitsAndConstraint.second); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d25513cc/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java index 6f3ec76..4579e6f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java @@ -245,7 +245,8 @@ class LangExpressionToPlanTranslator AssignOperator assign = new AssignOperator(pkVars, pkExprs); assign.getInputs().add(new MutableObject<>(dssOp)); - // If the input is pre-sorted, we set the ordering property explicitly in the assign + // If the input is pre-sorted, we set the ordering property explicitly in the + // assign if (clffs.alreadySorted()) { List<OrderColumn> orderColumns = new ArrayList<>(); for (int i = 0; i < pkVars.size(); ++i) { @@ -328,13 +329,13 @@ class LangExpressionToPlanTranslator } } else { /** - * add the collection-to-sequence right before the project, - * because dataset only accept non-collection records + * add the collection-to-sequence right before the project, because dataset only + * accept non-collection records */ LogicalVariable seqVar = context.newVar(); /** - * This assign adds a marker function collection-to-sequence: if the input is a singleton collection, unnest - * it; otherwise do nothing. + * This assign adds a marker function collection-to-sequence: if the input is a + * singleton collection, unnest it; otherwise do nothing. */ AssignOperator assignCollectionToSequence = new AssignOperator(seqVar, new MutableObject<>(new ScalarFunctionCallExpression( @@ -557,7 +558,8 @@ class LangExpressionToPlanTranslator return processReturningExpression(rootOperator, insertOp, compiledInsert); } - // Stitches the translated operators for the returning expression into the query plan. + // Stitches the translated operators for the returning expression into the query + // plan. private ILogicalOperator processReturningExpression(ILogicalOperator inputOperator, InsertDeleteUpsertOperator insertOp, CompiledInsertStatement compiledInsert) throws AlgebricksException { Expression returnExpression = compiledInsert.getReturnExpression(); @@ -566,7 +568,7 @@ class LangExpressionToPlanTranslator } ILogicalOperator rootOperator = inputOperator; - //Makes the id of the insert var point to the record variable. + // Makes the id of the insert var point to the record variable. context.newVarFromExpression(compiledInsert.getVar()); context.setVar(compiledInsert.getVar(), ((VariableReferenceExpression) insertOp.getPayloadExpression().getValue()).getVariableReference()); @@ -606,7 +608,7 @@ class LangExpressionToPlanTranslator dataset.getDatasetDetails(), domain); } - private FileSplit getDefaultOutputFileLocation(ICcApplicationContext appCtx) throws MetadataException { + private FileSplit getDefaultOutputFileLocation(ICcApplicationContext appCtx) throws AlgebricksException { String outputDir = System.getProperty("java.io.tmpDir"); String filePath = outputDir + System.getProperty("file.separator") + OUTPUT_FILE_PREFIX + outputFileID.incrementAndGet(); @@ -702,8 +704,12 @@ class LangExpressionToPlanTranslator } AbstractFunctionCallExpression f; - if ((f = lookupUserDefinedFunction(signature, args)) == null) { - f = lookupBuiltinFunction(signature.getName(), signature.getArity(), args); + try { + if ((f = lookupUserDefinedFunction(signature, args)) == null) { + f = lookupBuiltinFunction(signature.getName(), signature.getArity(), args); + } + } catch (AlgebricksException e) { + throw new CompilationException(e); } if (f == null) { @@ -726,7 +732,7 @@ class LangExpressionToPlanTranslator } private AbstractFunctionCallExpression lookupUserDefinedFunction(FunctionSignature signature, - List<Mutable<ILogicalExpression>> args) throws MetadataException { + List<Mutable<ILogicalExpression>> args) throws AlgebricksException { if (signature.getNamespace() == null) { return null; } @@ -1406,8 +1412,8 @@ class LangExpressionToPlanTranslator } /** - * Eliminate shared operator references in a query plan. - * Deep copy a new query plan subtree whenever there is a shared operator reference. + * Eliminate shared operator references in a query plan. Deep copy a new query + * plan subtree whenever there is a shared operator reference. * * @param plan, * the query plan. @@ -1421,15 +1427,16 @@ class LangExpressionToPlanTranslator } /** - * Eliminate shared operator references in a query plan rooted at <code>currentOpRef.getValue()</code>. - * Deep copy a new query plan subtree whenever there is a shared operator reference. + * Eliminate shared operator references in a query plan rooted at + * <code>currentOpRef.getValue()</code>. Deep copy a new query plan subtree + * whenever there is a shared operator reference. * * @param currentOpRef, * the operator reference to consider * @param opRefSet, * the set storing seen operator references so far. - * @return a mapping that maps old variables to new variables, for the ancestors of - * <code>currentOpRef</code> to replace variables properly. + * @return a mapping that maps old variables to new variables, for the ancestors + * of <code>currentOpRef</code> to replace variables properly. * @throws CompilationException */ private LinkedHashMap<LogicalVariable, LogicalVariable> eliminateSharedOperatorReference( @@ -1441,9 +1448,12 @@ class LangExpressionToPlanTranslator // Recursively eliminates shared references in nested plans. if (currentOperator.hasNestedPlans()) { - // Since a nested plan tree itself can never be shared with another nested plan tree in - // another operator, the operation called in the if block does not need to replace - // any variables further for <code>currentOpRef.getValue()</code> nor its ancestor. + // Since a nested plan tree itself can never be shared with another nested plan + // tree in + // another operator, the operation called in the if block does not need to + // replace + // any variables further for <code>currentOpRef.getValue()</code> nor its + // ancestor. AbstractOperatorWithNestedPlans opWithNestedPlan = (AbstractOperatorWithNestedPlans) currentOperator; for (ILogicalPlan plan : opWithNestedPlan.getNestedPlans()) { for (Mutable<ILogicalOperator> rootRef : plan.getRoots()) { @@ -1465,7 +1475,8 @@ class LangExpressionToPlanTranslator LinkedHashMap<LogicalVariable, LogicalVariable> cloneVarMap = visitor.getInputToOutputVariableMapping(); - // Substitute variables according to the deep copy which generates new variables. + // Substitute variables according to the deep copy which generates new + // variables. VariableUtilities.substituteVariables(currentOperator, cloneVarMap, null); varMap.putAll(cloneVarMap); @@ -1481,7 +1492,8 @@ class LangExpressionToPlanTranslator // Substitute variables according to the new subtree. VariableUtilities.substituteVariables(currentOperator, childVarMap, null); - // Updates mapping like <$a, $b> in varMap to <$a, $c>, where there is a mapping <$b, $c> + // Updates mapping like <$a, $b> in varMap to <$a, $c>, where there is a mapping + // <$b, $c> // in childVarMap. varMap.entrySet().forEach(entry -> { LogicalVariable newVar = childVarMap.get(entry.getValue()); @@ -1512,7 +1524,8 @@ class LangExpressionToPlanTranslator * the expression to select tuples that are processed by this branch. * @param branchExpression, * the expression to be evaluated in this branch. - * @return a pair of the constructed subplan operator and the output variable for the branch. + * @return a pair of the constructed subplan operator and the output variable + * for the branch. * @throws CompilationException */ protected Pair<ILogicalOperator, LogicalVariable> constructSubplanOperatorForBranch(ILogicalOperator inputOp, @@ -1523,7 +1536,8 @@ class LangExpressionToPlanTranslator Mutable<ILogicalOperator> nestedSource = new MutableObject<>(new NestedTupleSourceOperator(new MutableObject<>(subplanOp))); SelectOperator select = new SelectOperator(selectExpr, false, null); - // The select operator cannot be moved up and down, otherwise it will cause typing issues (ASTERIXDB-1203). + // The select operator cannot be moved up and down, otherwise it will cause + // typing issues (ASTERIXDB-1203). OperatorPropertiesUtil.markMovable(select, false); select.getInputs().add(nestedSource); Pair<ILogicalOperator, LogicalVariable> pBranch = branchExpression.accept(this, new MutableObject<>(select)); @@ -1552,12 +1566,14 @@ class LangExpressionToPlanTranslator return new AssignOperator(v1, new MutableObject<>(comparison)); } - // Generates the filter condition for whether a conditional branch should be executed. + // Generates the filter condition for whether a conditional branch should be + // executed. protected Mutable<ILogicalExpression> generateNoMatchedPrecedingWhenBranchesFilter( List<ILogicalExpression> inputBooleanExprs) { List<Mutable<ILogicalExpression>> arguments = new ArrayList<>(); for (ILogicalExpression inputBooleanExpr : inputBooleanExprs) { - // A NULL/MISSING valued WHEN expression does not lead to the corresponding THEN execution. + // A NULL/MISSING valued WHEN expression does not lead to the corresponding THEN + // execution. // Therefore, we should check a previous WHEN boolean condition is not unknown. arguments.add(generateAndNotIsUnknownWrap(inputBooleanExpr)); } @@ -1580,7 +1596,8 @@ class LangExpressionToPlanTranslator new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.AND), arguments)); } - // Generates the plan for "UNION ALL" or union expression from its input expressions. + // Generates the plan for "UNION ALL" or union expression from its input + // expressions. protected Pair<ILogicalOperator, LogicalVariable> translateUnionAllFromInputExprs(List<ILangExpression> inputExprs, Mutable<ILogicalOperator> tupSource) throws CompilationException { List<Mutable<ILogicalOperator>> inputOpRefsToUnion = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d25513cc/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java ---------------------------------------------------------------------- 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 494eb65..a811454 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 @@ -265,9 +265,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen FileSplit outputFile = null; IAWriterFactory writerFactory = PrinterBasedWriterFactory.INSTANCE; IResultSerializerFactoryProvider resultSerializerFactoryProvider = ResultSerializerFactoryProvider.INSTANCE; - /* Since the system runs a large number of threads, when HTTP requests don't return, it becomes difficult to - * find the thread running the request to determine where it has stopped. - * Setting the thread name helps make that easier + /* + * Since the system runs a large number of threads, when HTTP requests don't + * return, it becomes difficult to find the thread running the request to + * determine where it has stopped. Setting the thread name helps make that + * easier */ String threadName = Thread.currentThread().getName(); Thread.currentThread().setName(QueryTranslator.class.getSimpleName()); @@ -397,8 +399,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen // No op break; case Statement.Kind.EXTENSION: - ((IExtensionStatement) stmt) - .handle(hcc, this, requestParameters, metadataProvider, resultSetIdCounter); + ((IExtensionStatement) stmt).handle(hcc, this, requestParameters, metadataProvider, + resultSetIdCounter); break; default: throw new CompilationException("Unknown function"); @@ -641,7 +643,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen metadataProvider.setMetadataTxnContext(mdTxnCtx); } - // #. add a new dataset with PendingNoOp after deleting the dataset with PendingAddOp + // #. add a new dataset with PendingNoOp after deleting the dataset with + // PendingAddOp MetadataManager.INSTANCE.dropDataset(metadataProvider.getMetadataTxnContext(), dataverseName, datasetName); dataset.setPendingOp(MetadataUtil.PENDING_NO_OP); MetadataManager.INSTANCE.addDataset(metadataProvider.getMetadataTxnContext(), dataset); @@ -656,7 +659,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen // #. execute compensation operations // remove the index in NC // [Notice] - // As long as we updated(and committed) metadata, we should remove any effect of the job + // As long as we updated(and committed) metadata, we should remove any effect of + // the job // because an exception occurs during runJob. mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); bActiveTxn = true; @@ -790,9 +794,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen int keyIndex = 0; boolean overridesFieldTypes = false; - // this set is used to detect duplicates in the specified keys in the create index statement + // this set is used to detect duplicates in the specified keys in the create + // index statement // e.g. CREATE INDEX someIdx on dataset(id,id). - // checking only the names is not enough. Need also to check the source indicators for cases like: + // checking only the names is not enough. Need also to check the source + // indicators for cases like: // CREATE INDEX someIdx on dataset(meta().id, id) Set<Pair<List<String>, Integer>> indexKeysSet = new HashSet<>(); @@ -820,10 +826,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen throw new AsterixException(ErrorCode.INDEX_ILLEGAL_ENFORCED_NON_OPTIONAL, String.valueOf(fieldExpr.first)); } - // don't allow creating an enforced index on a closed-type field, fields that are part of schema. + // don't allow creating an enforced index on a closed-type field, fields that + // are part of schema. // get the field type, if it's not null, then the field is closed-type - if (stmtCreateIndex.isEnforced() && - subType.getSubFieldType(fieldExpr.first.subList(i, fieldExpr.first.size())) != null) { + if (stmtCreateIndex.isEnforced() + && subType.getSubFieldType(fieldExpr.first.subList(i, fieldExpr.first.size())) != null) { throw new AsterixException(ErrorCode.INDEX_ILLEGAL_ENFORCED_ON_CLOSED_FIELD, String.valueOf(fieldExpr.first)); } @@ -845,9 +852,10 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen "Unknown type " + (fieldExpr.second == null ? fieldExpr.first : fieldExpr.second)); } - // try to add the key & its source to the set of keys, if key couldn't be added, there is a duplicate - if (!indexKeysSet.add(new Pair<>(fieldExpr.first, - stmtCreateIndex.getFieldSourceIndicators().get(keyIndex)))) { + // try to add the key & its source to the set of keys, if key couldn't be added, + // there is a duplicate + if (!indexKeysSet + .add(new Pair<>(fieldExpr.first, stmtCreateIndex.getFieldSourceIndicators().get(keyIndex)))) { throw new AsterixException(ErrorCode.INDEX_ILLEGAL_REPETITIVE_FIELD, String.valueOf(fieldExpr.first)); } @@ -859,9 +867,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen validateIndexKeyFields(stmtCreateIndex, keySourceIndicators, aRecordType, metaRecordType, indexFields, indexFieldTypes); - // Checks whether a user is trying to create an inverted secondary index on a dataset + // Checks whether a user is trying to create an inverted secondary index on a + // dataset // with a variable-length primary key. - // Currently, we do not support this. Therefore, as a temporary solution, we print an + // Currently, we do not support this. Therefore, as a temporary solution, we + // print an // error message and stop. if (stmtCreateIndex.getIndexType() == IndexType.SINGLE_PARTITION_WORD_INVIX || stmtCreateIndex.getIndexType() == IndexType.SINGLE_PARTITION_NGRAM_INVIX @@ -994,8 +1004,10 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen runJob(hcc, spec, jobFlags); // #. flush the internal dataset - // We need this to guarantee the correctness of component Id acceleration for secondary-to-primary index. - // Otherwise, the new secondary index component would corresponding to a partial memory component + // We need this to guarantee the correctness of component Id acceleration for + // secondary-to-primary index. + // Otherwise, the new secondary index component would corresponding to a partial + // memory component // of the primary index, which is incorrect. if (ds.getDatasetType() == DatasetType.INTERNAL) { FlushDatasetUtil.flushDataset(hcc, metadataProvider, index.getDataverseName(), index.getDatasetName()); @@ -1017,7 +1029,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen bActiveTxn = true; metadataProvider.setMetadataTxnContext(mdTxnCtx); - // #. add another new index with PendingNoOp after deleting the index with PendingAddOp + // #. add another new index with PendingNoOp after deleting the index with + // PendingAddOp MetadataManager.INSTANCE.dropIndex(metadataProvider.getMetadataTxnContext(), index.getDataverseName(), index.getDatasetName(), index.getIndexName()); index.setPendingOp(MetadataUtil.PENDING_NO_OP); @@ -1038,7 +1051,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen if (bActiveTxn) { abort(e, e, mdTxnCtx); } - // If files index was replicated for external dataset, it should be cleaned up on NC side + // If files index was replicated for external dataset, it should be cleaned up + // on NC side if (filesIndexReplicated) { mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); bActiveTxn = true; @@ -1687,7 +1701,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen } protected boolean checkWhetherFunctionIsBeingUsed(MetadataTransactionContext ctx, String dataverseName, - String functionName, int arity, String currentDataverse) throws MetadataException { + String functionName, int arity, String currentDataverse) throws AlgebricksException { List<Dataverse> allDataverses = MetadataManager.INSTANCE.getDataverses(ctx); for (Dataverse dataverse : allDataverses) { if (currentDataverse != null && dataverse.getDataverseName().equals(currentDataverse)) { @@ -1876,7 +1890,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen MetadataProvider metadataProvider, InsertStatement insertUpsert) throws RemoteException, AlgebricksException, ACIDException { - // Insert/upsert statement rewriting (happens under the same ongoing metadata transaction) + // Insert/upsert statement rewriting (happens under the same ongoing metadata + // transaction) Pair<IReturningStatement, Integer> rewrittenResult = apiFramework.reWriteQuery(declaredFunctions, metadataProvider, insertUpsert, sessionOutput); @@ -1898,7 +1913,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen default: throw new AlgebricksException("Unsupported statement type " + rewrittenInsertUpsert.getKind()); } - // Insert/upsert statement compilation (happens under the same ongoing metadata transaction) + // Insert/upsert statement compilation (happens under the same ongoing metadata + // transaction) return apiFramework.compileQuery(clusterInfoCollector, metadataProvider, rewrittenInsertUpsert.getQuery(), rewrittenResult.second, datasetName, sessionOutput, clfrqs); } @@ -2627,7 +2643,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen // all index updates has completed successfully, record transaction state spec = ExternalIndexingOperations.buildCommitJob(ds, indexes, metadataProvider); - // Aquire write latch again -> start a transaction and record the decision to commit + // Aquire write latch again -> start a transaction and record the decision to + // commit mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); metadataProvider.setMetadataTxnContext(mdTxnCtx); bActiveTxn = true; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d25513cc/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java ---------------------------------------------------------------------- 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 6ac9436..1ca9316 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 @@ -33,6 +33,7 @@ import org.apache.asterix.metadata.MetadataTransactionContext; import org.apache.asterix.metadata.declared.MetadataProvider; import org.apache.asterix.metadata.entities.Function; import org.apache.asterix.om.functions.BuiltinFunctions; +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.core.algebra.functions.AlgebricksBuiltinFunctions; import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier; import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo; @@ -65,14 +66,16 @@ public class FunctionUtil { } /** - * Retrieve stored functions (from CREATE FUNCTION statements) that have been used in an expression. + * Retrieve stored functions (from CREATE FUNCTION statements) that have been + * used in an expression. * * @param metadataProvider, * the metadata provider * @param expression, * the expression for analysis * @param declaredFunctions, - * a set of declared functions in the query, which can potentially override stored functions. + * a set of declared functions in the query, which can potentially + * override stored functions. * @param functionCollector, * for collecting function calls in the <code>expression</code> * @param functionParser, @@ -85,8 +88,8 @@ public class FunctionUtil { Expression expression, List<FunctionSignature> declaredFunctions, List<FunctionDecl> inputFunctionDecls, IFunctionCollector functionCollector, IFunctionParser functionParser, IFunctionNormalizer functionNormalizer) throws CompilationException { - List<FunctionDecl> functionDecls = inputFunctionDecls == null ? new ArrayList<>() - : new ArrayList<>(inputFunctionDecls); + List<FunctionDecl> functionDecls = + inputFunctionDecls == null ? new ArrayList<>() : new ArrayList<>(inputFunctionDecls); if (expression == null) { return functionDecls; } @@ -102,13 +105,22 @@ public class FunctionUtil { } String namespace = signature.getNamespace(); // Checks the existence of the referred dataverse. - if (!namespace.equals(FunctionConstants.ASTERIX_NS) - && !namespace.equals(AlgebricksBuiltinFunctions.ALGEBRICKS_NS) - && metadataProvider.findDataverse(namespace) == null) { - throw new CompilationException("In function call \"" + namespace + "." + signature.getName() - + "(...)\", the dataverse \"" + namespace + "\" cannot be found!"); + try { + if (!namespace.equals(FunctionConstants.ASTERIX_NS) + && !namespace.equals(AlgebricksBuiltinFunctions.ALGEBRICKS_NS) + && metadataProvider.findDataverse(namespace) == null) { + throw new CompilationException("In function call \"" + namespace + "." + signature.getName() + + "(...)\", the dataverse \"" + namespace + "\" cannot be found!"); + } + } catch (AlgebricksException e) { + throw new CompilationException(e); + } + Function function; + try { + function = lookupUserDefinedFunctionDecl(metadataProvider.getMetadataTxnContext(), signature); + } catch (AlgebricksException e) { + throw new CompilationException(e); } - Function function = lookupUserDefinedFunctionDecl(metadataProvider.getMetadataTxnContext(), signature); if (function == null) { FunctionSignature normalizedSignature = functionNormalizer == null ? signature : functionNormalizer.normalizeBuiltinFunctionSignature(signature); @@ -144,7 +156,7 @@ public class FunctionUtil { } private static Function lookupUserDefinedFunctionDecl(MetadataTransactionContext mdTxnCtx, - FunctionSignature signature) throws CompilationException { + FunctionSignature signature) throws AlgebricksException { if (signature.getNamespace() == null) { return null; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d25513cc/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java index 23e6fb0..2e872fc 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java @@ -54,6 +54,7 @@ import org.apache.asterix.metadata.entities.Node; import org.apache.asterix.metadata.entities.NodeGroup; import org.apache.asterix.om.types.ARecordType; import org.apache.asterix.transaction.management.service.transaction.JobIdFactory; +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.api.exceptions.HyracksDataException; /** @@ -95,7 +96,8 @@ public class MetadataManager implements IMetadataManager { private final ReadWriteLock metadataLatch; protected boolean rebindMetadataNode = false; - // TODO(mblow): replace references of this (non-constant) field with a method, update field name accordingly + // TODO(mblow): replace references of this (non-constant) field with a method, + // update field name accordingly public static IMetadataManager INSTANCE; private MetadataManager(IAsterixStateProxy proxy, IMetadataNode metadataNode) { @@ -148,7 +150,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addDataverse(MetadataTransactionContext ctx, Dataverse dataverse) throws MetadataException { + public void addDataverse(MetadataTransactionContext ctx, Dataverse dataverse) throws AlgebricksException { try { metadataNode.addDataverse(ctx.getJobId(), dataverse); } catch (RemoteException e) { @@ -158,7 +160,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void dropDataverse(MetadataTransactionContext ctx, String dataverseName) throws MetadataException { + public void dropDataverse(MetadataTransactionContext ctx, String dataverseName) throws AlgebricksException { try { metadataNode.dropDataverse(ctx.getJobId(), dataverseName); } catch (RemoteException e) { @@ -168,7 +170,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public List<Dataverse> getDataverses(MetadataTransactionContext ctx) throws MetadataException { + public List<Dataverse> getDataverses(MetadataTransactionContext ctx) throws AlgebricksException { try { return metadataNode.getDataverses(ctx.getJobId()); } catch (RemoteException e) { @@ -177,7 +179,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public Dataverse getDataverse(MetadataTransactionContext ctx, String dataverseName) throws MetadataException { + public Dataverse getDataverse(MetadataTransactionContext ctx, String dataverseName) throws AlgebricksException { // First look in the context to see if this transaction created the // requested dataverse itself (but the dataverse is still uncommitted). Dataverse dataverse = ctx.getDataverse(dataverseName); @@ -211,7 +213,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<Dataset> getDataverseDatasets(MetadataTransactionContext ctx, String dataverseName) - throws MetadataException { + throws AlgebricksException { List<Dataset> dataverseDatasets = new ArrayList<>(); // add uncommitted temporary datasets for (Dataset dataset : ctx.getDataverseDatasets(dataverseName)) { @@ -238,7 +240,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addDataset(MetadataTransactionContext ctx, Dataset dataset) throws MetadataException { + public void addDataset(MetadataTransactionContext ctx, Dataset dataset) throws AlgebricksException { // add dataset into metadataNode if (!dataset.getDatasetDetails().isTemp()) { try { @@ -254,7 +256,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropDataset(MetadataTransactionContext ctx, String dataverseName, String datasetName) - throws MetadataException { + throws AlgebricksException { Dataset dataset = findDataset(ctx, dataverseName, datasetName); // If a dataset is not in the cache, then it could not be a temp dataset if (dataset == null || !dataset.getDatasetDetails().isTemp()) { @@ -271,7 +273,7 @@ public class MetadataManager implements IMetadataManager { @Override public Dataset getDataset(MetadataTransactionContext ctx, String dataverseName, String datasetName) - throws MetadataException { + throws AlgebricksException { // First look in the context to see if this transaction created the // requested dataset itself (but the dataset is still uncommitted). @@ -307,7 +309,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<Index> getDatasetIndexes(MetadataTransactionContext ctx, String dataverseName, String datasetName) - throws MetadataException { + throws AlgebricksException { List<Index> datasetIndexes = new ArrayList<>(); Dataset dataset = findDataset(ctx, dataverseName, datasetName); if (dataset == null) { @@ -329,7 +331,7 @@ public class MetadataManager implements IMetadataManager { @Override public void addCompactionPolicy(MetadataTransactionContext mdTxnCtx, CompactionPolicy compactionPolicy) - throws MetadataException { + throws AlgebricksException { try { metadataNode.addCompactionPolicy(mdTxnCtx.getJobId(), compactionPolicy); } catch (RemoteException e) { @@ -340,7 +342,7 @@ public class MetadataManager implements IMetadataManager { @Override public CompactionPolicy getCompactionPolicy(MetadataTransactionContext ctx, String dataverse, String policyName) - throws MetadataException { + throws AlgebricksException { CompactionPolicy compactionPolicy; try { @@ -352,7 +354,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addDatatype(MetadataTransactionContext ctx, Datatype datatype) throws MetadataException { + public void addDatatype(MetadataTransactionContext ctx, Datatype datatype) throws AlgebricksException { try { metadataNode.addDatatype(ctx.getJobId(), datatype); } catch (RemoteException e) { @@ -368,7 +370,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropDatatype(MetadataTransactionContext ctx, String dataverseName, String datatypeName) - throws MetadataException { + throws AlgebricksException { try { metadataNode.dropDatatype(ctx.getJobId(), dataverseName, datatypeName); } catch (RemoteException e) { @@ -379,7 +381,7 @@ public class MetadataManager implements IMetadataManager { @Override public Datatype getDatatype(MetadataTransactionContext ctx, String dataverseName, String datatypeName) - throws MetadataException { + throws AlgebricksException { // First look in the context to see if this transaction created the // requested datatype itself (but the datatype is still uncommitted). Datatype datatype = ctx.getDatatype(dataverseName, datatypeName); @@ -397,9 +399,9 @@ public class MetadataManager implements IMetadataManager { datatype = cache.getDatatype(dataverseName, datatypeName); if (datatype != null) { // Datatype is already in the cache, don't add it again. - //create a new Datatype object with a new ARecordType object in order to avoid - //concurrent access to UTF8StringPointable comparator in ARecordType object. - //see issue 510 + // create a new Datatype object with a new ARecordType object in order to avoid + // concurrent access to UTF8StringPointable comparator in ARecordType object. + // see issue 510 ARecordType aRecType = (ARecordType) datatype.getDatatype(); return new Datatype( datatype.getDataverseName(), datatype.getDatatypeName(), new ARecordType(aRecType.getTypeName(), @@ -420,7 +422,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addIndex(MetadataTransactionContext ctx, Index index) throws MetadataException { + public void addIndex(MetadataTransactionContext ctx, Index index) throws AlgebricksException { String dataverseName = index.getDataverseName(); String datasetName = index.getDatasetName(); Dataset dataset = findDataset(ctx, dataverseName, datasetName); @@ -435,7 +437,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addAdapter(MetadataTransactionContext mdTxnCtx, DatasourceAdapter adapter) throws MetadataException { + public void addAdapter(MetadataTransactionContext mdTxnCtx, DatasourceAdapter adapter) throws AlgebricksException { try { metadataNode.addAdapter(mdTxnCtx.getJobId(), adapter); } catch (RemoteException e) { @@ -447,10 +449,12 @@ public class MetadataManager implements IMetadataManager { @Override public void dropIndex(MetadataTransactionContext ctx, String dataverseName, String datasetName, String indexName) - throws MetadataException { + throws AlgebricksException { Dataset dataset = findDataset(ctx, dataverseName, datasetName); - // If a dataset is not in the cache, then it could be an unloaded persistent dataset. - // If the dataset is a temp dataset, then we do not need to call any MedataNode operations. + // If a dataset is not in the cache, then it could be an unloaded persistent + // dataset. + // If the dataset is a temp dataset, then we do not need to call any MedataNode + // operations. if (dataset == null || !dataset.getDatasetDetails().isTemp()) { try { metadataNode.dropIndex(ctx.getJobId(), dataverseName, datasetName, indexName); @@ -463,7 +467,7 @@ public class MetadataManager implements IMetadataManager { @Override public Index getIndex(MetadataTransactionContext ctx, String dataverseName, String datasetName, String indexName) - throws MetadataException { + throws AlgebricksException { // First look in the context to see if this transaction created the // requested index itself (but the index is still uncommitted). @@ -499,7 +503,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addNode(MetadataTransactionContext ctx, Node node) throws MetadataException { + public void addNode(MetadataTransactionContext ctx, Node node) throws AlgebricksException { try { metadataNode.addNode(ctx.getJobId(), node); } catch (RemoteException e) { @@ -508,7 +512,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addNodegroup(MetadataTransactionContext ctx, NodeGroup nodeGroup) throws MetadataException { + public void addNodegroup(MetadataTransactionContext ctx, NodeGroup nodeGroup) throws AlgebricksException { try { metadataNode.addNodeGroup(ctx.getJobId(), nodeGroup); } catch (RemoteException e) { @@ -519,7 +523,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropNodegroup(MetadataTransactionContext ctx, String nodeGroupName, boolean failSilently) - throws MetadataException { + throws AlgebricksException { boolean dropped; try { dropped = metadataNode.dropNodegroup(ctx.getJobId(), nodeGroupName, failSilently); @@ -532,7 +536,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public NodeGroup getNodegroup(MetadataTransactionContext ctx, String nodeGroupName) throws MetadataException { + public NodeGroup getNodegroup(MetadataTransactionContext ctx, String nodeGroupName) throws AlgebricksException { // First look in the context to see if this transaction created the // requested dataverse itself (but the dataverse is still uncommitted). NodeGroup nodeGroup = ctx.getNodeGroup(nodeGroupName); @@ -565,7 +569,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addFunction(MetadataTransactionContext mdTxnCtx, Function function) throws MetadataException { + public void addFunction(MetadataTransactionContext mdTxnCtx, Function function) throws AlgebricksException { try { metadataNode.addFunction(mdTxnCtx.getJobId(), function); } catch (RemoteException e) { @@ -576,7 +580,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropFunction(MetadataTransactionContext ctx, FunctionSignature functionSignature) - throws MetadataException { + throws AlgebricksException { try { metadataNode.dropFunction(ctx.getJobId(), functionSignature); } catch (RemoteException e) { @@ -587,7 +591,7 @@ public class MetadataManager implements IMetadataManager { @Override public Function getFunction(MetadataTransactionContext ctx, FunctionSignature functionSignature) - throws MetadataException { + throws AlgebricksException { // First look in the context to see if this transaction created the // requested dataset itself (but the dataset is still uncommitted). Function function = ctx.getFunction(functionSignature); @@ -626,9 +630,10 @@ public class MetadataManager implements IMetadataManager { } @Override - public List<Function> getFunctions(MetadataTransactionContext ctx, String dataverseName) throws MetadataException { + public List<Function> getFunctions(MetadataTransactionContext ctx, String dataverseName) + throws AlgebricksException { try { - return metadataNode.getFunctions(ctx.getJobId(), dataverseName); + return metadataNode.getFunctions(ctx.getJobId(), dataverseName); } catch (RemoteException e) { throw new MetadataException(e); } @@ -636,7 +641,7 @@ public class MetadataManager implements IMetadataManager { @Override public void addFeedPolicy(MetadataTransactionContext mdTxnCtx, FeedPolicyEntity feedPolicy) - throws MetadataException { + throws AlgebricksException { try { metadataNode.addFeedPolicy(mdTxnCtx.getJobId(), feedPolicy); } catch (RemoteException e) { @@ -646,7 +651,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void initializeDatasetIdFactory(MetadataTransactionContext ctx) throws MetadataException { + public void initializeDatasetIdFactory(MetadataTransactionContext ctx) throws AlgebricksException { try { metadataNode.initializeDatasetIdFactory(ctx.getJobId()); } catch (RemoteException e) { @@ -655,7 +660,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public int getMostRecentDatasetId() throws MetadataException { + public int getMostRecentDatasetId() throws AlgebricksException { try { return metadataNode.getMostRecentDatasetId(); } catch (RemoteException e) { @@ -665,7 +670,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<Function> getDataverseFunctions(MetadataTransactionContext ctx, String dataverseName) - throws MetadataException { + throws AlgebricksException { List<Function> dataverseFunctions; try { // Assuming that the transaction can read its own writes on the @@ -681,7 +686,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropAdapter(MetadataTransactionContext ctx, String dataverseName, String name) - throws MetadataException { + throws AlgebricksException { try { metadataNode.dropAdapter(ctx.getJobId(), dataverseName, name); } catch (RemoteException e) { @@ -691,7 +696,7 @@ public class MetadataManager implements IMetadataManager { @Override public DatasourceAdapter getAdapter(MetadataTransactionContext ctx, String dataverseName, String name) - throws MetadataException { + throws AlgebricksException { DatasourceAdapter adapter; try { adapter = metadataNode.getAdapter(ctx.getJobId(), dataverseName, name); @@ -703,7 +708,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropLibrary(MetadataTransactionContext ctx, String dataverseName, String libraryName) - throws MetadataException { + throws AlgebricksException { try { metadataNode.dropLibrary(ctx.getJobId(), dataverseName, libraryName); } catch (RemoteException e) { @@ -714,7 +719,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<Library> getDataverseLibraries(MetadataTransactionContext ctx, String dataverseName) - throws MetadataException { + throws AlgebricksException { List<Library> dataverseLibaries; try { // Assuming that the transaction can read its own writes on the @@ -729,7 +734,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addLibrary(MetadataTransactionContext ctx, Library library) throws MetadataException { + public void addLibrary(MetadataTransactionContext ctx, Library library) throws AlgebricksException { try { metadataNode.addLibrary(ctx.getJobId(), library); } catch (RemoteException e) { @@ -740,7 +745,7 @@ public class MetadataManager implements IMetadataManager { @Override public Library getLibrary(MetadataTransactionContext ctx, String dataverseName, String libraryName) - throws MetadataException, RemoteException { + throws AlgebricksException, RemoteException { Library library; try { library = metadataNode.getLibrary(ctx.getJobId(), dataverseName, libraryName); @@ -772,7 +777,7 @@ public class MetadataManager implements IMetadataManager { @Override public FeedPolicyEntity getFeedPolicy(MetadataTransactionContext ctx, String dataverse, String policyName) - throws MetadataException { + throws AlgebricksException { FeedPolicyEntity feedPolicy; try { @@ -784,7 +789,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public Feed getFeed(MetadataTransactionContext ctx, String dataverse, String feedName) throws MetadataException { + public Feed getFeed(MetadataTransactionContext ctx, String dataverse, String feedName) throws AlgebricksException { Feed feed; try { feed = metadataNode.getFeed(ctx.getJobId(), dataverse, feedName); @@ -795,7 +800,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public List<Feed> getFeeds(MetadataTransactionContext ctx, String dataverse) throws MetadataException { + public List<Feed> getFeeds(MetadataTransactionContext ctx, String dataverse) throws AlgebricksException { List<Feed> feeds; try { feeds = metadataNode.getFeeds(ctx.getJobId(), dataverse); @@ -806,7 +811,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void dropFeed(MetadataTransactionContext ctx, String dataverse, String feedName) throws MetadataException { + public void dropFeed(MetadataTransactionContext ctx, String dataverse, String feedName) throws AlgebricksException { Feed feed = null; List<FeedConnection> feedConnections = null; try { @@ -824,7 +829,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addFeed(MetadataTransactionContext ctx, Feed feed) throws MetadataException { + public void addFeed(MetadataTransactionContext ctx, Feed feed) throws AlgebricksException { try { metadataNode.addFeed(ctx.getJobId(), feed); } catch (RemoteException e) { @@ -835,7 +840,7 @@ public class MetadataManager implements IMetadataManager { @Override public void addFeedConnection(MetadataTransactionContext ctx, FeedConnection feedConnection) - throws MetadataException { + throws AlgebricksException { try { metadataNode.addFeedConnection(ctx.getJobId(), feedConnection); } catch (RemoteException e) { @@ -846,7 +851,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropFeedConnection(MetadataTransactionContext ctx, String dataverseName, String feedName, - String datasetName) throws MetadataException { + String datasetName) throws AlgebricksException { try { metadataNode.dropFeedConnection(ctx.getJobId(), dataverseName, feedName, datasetName); } catch (RemoteException e) { @@ -857,7 +862,7 @@ public class MetadataManager implements IMetadataManager { @Override public FeedConnection getFeedConnection(MetadataTransactionContext ctx, String dataverseName, String feedName, - String datasetName) throws MetadataException { + String datasetName) throws AlgebricksException { try { return metadataNode.getFeedConnection(ctx.getJobId(), dataverseName, feedName, datasetName); } catch (RemoteException e) { @@ -867,7 +872,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<FeedConnection> getFeedConections(MetadataTransactionContext ctx, String dataverseName, String feedName) - throws MetadataException { + throws AlgebricksException { try { return metadataNode.getFeedConnections(ctx.getJobId(), dataverseName, feedName); } catch (RemoteException e) { @@ -877,7 +882,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<DatasourceAdapter> getDataverseAdapters(MetadataTransactionContext mdTxnCtx, String dataverse) - throws MetadataException { + throws AlgebricksException { List<DatasourceAdapter> dataverseAdapters; try { dataverseAdapters = metadataNode.getDataverseAdapters(mdTxnCtx.getJobId(), dataverse); @@ -889,7 +894,7 @@ public class MetadataManager implements IMetadataManager { @Override public void dropFeedPolicy(MetadataTransactionContext mdTxnCtx, String dataverseName, String policyName) - throws MetadataException { + throws AlgebricksException { FeedPolicyEntity feedPolicy; try { feedPolicy = metadataNode.getFeedPolicy(mdTxnCtx.getJobId(), dataverseName, policyName); @@ -901,7 +906,7 @@ public class MetadataManager implements IMetadataManager { } public List<FeedPolicyEntity> getDataversePolicies(MetadataTransactionContext mdTxnCtx, String dataverse) - throws MetadataException { + throws AlgebricksException { List<FeedPolicyEntity> dataverseFeedPolicies; try { dataverseFeedPolicies = metadataNode.getDataversePolicies(mdTxnCtx.getJobId(), dataverse); @@ -913,7 +918,7 @@ public class MetadataManager implements IMetadataManager { @Override public List<ExternalFile> getDatasetExternalFiles(MetadataTransactionContext mdTxnCtx, Dataset dataset) - throws MetadataException { + throws AlgebricksException { List<ExternalFile> externalFiles; try { externalFiles = metadataNode.getExternalFiles(mdTxnCtx.getJobId(), dataset); @@ -924,7 +929,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void addExternalFile(MetadataTransactionContext ctx, ExternalFile externalFile) throws MetadataException { + public void addExternalFile(MetadataTransactionContext ctx, ExternalFile externalFile) throws AlgebricksException { try { metadataNode.addExternalFile(ctx.getJobId(), externalFile); } catch (RemoteException e) { @@ -933,7 +938,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void dropExternalFile(MetadataTransactionContext ctx, ExternalFile externalFile) throws MetadataException { + public void dropExternalFile(MetadataTransactionContext ctx, ExternalFile externalFile) throws AlgebricksException { try { metadataNode.dropExternalFile(ctx.getJobId(), externalFile.getDataverseName(), externalFile.getDatasetName(), externalFile.getFileNumber()); @@ -944,7 +949,7 @@ public class MetadataManager implements IMetadataManager { @Override public ExternalFile getExternalFile(MetadataTransactionContext ctx, String dataverseName, String datasetName, - Integer fileNumber) throws MetadataException { + Integer fileNumber) throws AlgebricksException { ExternalFile file; try { file = metadataNode.getExternalFile(ctx.getJobId(), dataverseName, datasetName, fileNumber); @@ -954,10 +959,10 @@ public class MetadataManager implements IMetadataManager { return file; } - //TODO: Optimize <-- use keys instead of object --> + // TODO: Optimize <-- use keys instead of object --> @Override public void dropDatasetExternalFiles(MetadataTransactionContext mdTxnCtx, Dataset dataset) - throws MetadataException { + throws AlgebricksException { try { metadataNode.dropExternalFiles(mdTxnCtx.getJobId(), dataset); } catch (RemoteException e) { @@ -966,7 +971,7 @@ public class MetadataManager implements IMetadataManager { } @Override - public void updateDataset(MetadataTransactionContext ctx, Dataset dataset) throws MetadataException { + public void updateDataset(MetadataTransactionContext ctx, Dataset dataset) throws AlgebricksException { try { metadataNode.updateDataset(ctx.getJobId(), dataset); } catch (RemoteException e) { @@ -992,7 +997,7 @@ public class MetadataManager implements IMetadataManager { @Override public <T extends IExtensionMetadataEntity> void addEntity(MetadataTransactionContext mdTxnCtx, T entity) - throws MetadataException { + throws AlgebricksException { try { metadataNode.addEntity(mdTxnCtx.getJobId(), entity); } catch (RemoteException e) { @@ -1002,7 +1007,7 @@ public class MetadataManager implements IMetadataManager { @Override public <T extends IExtensionMetadataEntity> void upsertEntity(MetadataTransactionContext mdTxnCtx, T entity) - throws MetadataException { + throws AlgebricksException { try { metadataNode.upsertEntity(mdTxnCtx.getJobId(), entity); } catch (RemoteException e) { @@ -1012,7 +1017,7 @@ public class MetadataManager implements IMetadataManager { @Override public <T extends IExtensionMetadataEntity> void deleteEntity(MetadataTransactionContext mdTxnCtx, T entity) - throws MetadataException { + throws AlgebricksException { try { metadataNode.deleteEntity(mdTxnCtx.getJobId(), entity); } catch (RemoteException e) { @@ -1022,7 +1027,7 @@ public class MetadataManager implements IMetadataManager { @Override public <T extends IExtensionMetadataEntity> List<T> getEntities(MetadataTransactionContext mdTxnCtx, - IExtensionMetadataSearchKey searchKey) throws MetadataException { + IExtensionMetadataSearchKey searchKey) throws AlgebricksException { try { return metadataNode.getEntities(mdTxnCtx.getJobId(), searchKey); } catch (RemoteException e) {
