http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java index d1506f7..1c7330a 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java @@ -156,7 +156,7 @@ public class InvertedIndexAccessMethod implements IAccessMethod { public boolean analyzeGetItemFuncExpr(AbstractFunctionCallExpression funcExpr, List<AbstractLogicalOperator> assignsAndUnnests, AccessMethodAnalysisContext analysisCtx) - throws AlgebricksException { + throws AlgebricksException { if (funcExpr.getFunctionIdentifier() != BuiltinFunctions.GET_ITEM) { return false; } @@ -213,8 +213,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { if (unnestFuncExpr.getFunctionIdentifier() != BuiltinFunctions.SCAN_COLLECTION) { return false; } - matchedFuncExpr = (AbstractFunctionCallExpression) unnestFuncExpr.getArguments().get(0) - .getValue(); + matchedFuncExpr = + (AbstractFunctionCallExpression) unnestFuncExpr.getArguments().get(0).getValue(); } } // We've already found a match. @@ -254,13 +254,13 @@ public class InvertedIndexAccessMethod implements IAccessMethod { || arg2.getExpressionTag() == LogicalExpressionTag.CONSTANT) { return false; } - LogicalVariable fieldVarExpr1 = getNonConstArgFieldExprPair(arg1, funcExpr, assignsAndUnnests, - matchedAssignOrUnnestIndex); + LogicalVariable fieldVarExpr1 = + getNonConstArgFieldExprPair(arg1, funcExpr, assignsAndUnnests, matchedAssignOrUnnestIndex); if (fieldVarExpr1 == null) { return false; } - LogicalVariable fieldVarExpr2 = getNonConstArgFieldExprPair(arg2, funcExpr, assignsAndUnnests, - matchedAssignOrUnnestIndex); + LogicalVariable fieldVarExpr2 = + getNonConstArgFieldExprPair(arg2, funcExpr, assignsAndUnnests, matchedAssignOrUnnestIndex); if (fieldVarExpr2 == null) { return false; } @@ -307,8 +307,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { } else { return false; } - LogicalVariable fieldVarExpr = getNonConstArgFieldExprPair(nonConstArg, funcExpr, assignsAndUnnests, - matchedAssignOrUnnestIndex); + LogicalVariable fieldVarExpr = + getNonConstArgFieldExprPair(nonConstArg, funcExpr, assignsAndUnnests, matchedAssignOrUnnestIndex); if (fieldVarExpr == null) { return false; } @@ -388,9 +388,9 @@ public class InvertedIndexAccessMethod implements IAccessMethod { // we made sure indexSubTree has datasource scan DataSourceScanOperator dataSourceScan = (DataSourceScanOperator) indexSubTree.getDataSourceRef().getValue(); - InvertedIndexJobGenParams jobGenParams = new InvertedIndexJobGenParams(chosenIndex.getIndexName(), - chosenIndex.getIndexType(), dataset.getDataverseName(), dataset.getDatasetName(), retainInput, - requiresBroadcast); + InvertedIndexJobGenParams jobGenParams = + new InvertedIndexJobGenParams(chosenIndex.getIndexName(), chosenIndex.getIndexType(), + dataset.getDataverseName(), dataset.getDatasetName(), retainInput, requiresBroadcast); // Add function-specific args such as search modifier, and possibly a similarity threshold. addFunctionSpecificArgs(optFuncExpr, jobGenParams); // Add the type of search key from the optFuncExpr. @@ -424,9 +424,9 @@ public class InvertedIndexAccessMethod implements IAccessMethod { metaRecordType, chosenIndex, inputOp, jobGenParams, context, true, retainInput, retainNull); // Generate the rest of the upstream plan which feeds the search results into the primary index. - AbstractUnnestMapOperator primaryIndexUnnestOp = AccessMethodUtils.createPrimaryIndexUnnestMap(dataSourceScan, - dataset, recordType, metaRecordType, secondaryIndexUnnestOp, context, true, retainInput, retainNull, - false); + AbstractUnnestMapOperator primaryIndexUnnestOp = + AccessMethodUtils.createPrimaryIndexUnnestMap(dataSourceScan, dataset, recordType, metaRecordType, + secondaryIndexUnnestOp, context, true, retainInput, retainNull, false); return primaryIndexUnnestOp; } @@ -526,8 +526,7 @@ public class InvertedIndexAccessMethod implements IAccessMethod { Mutable<ILogicalOperator> panicJoinRef = null; Map<LogicalVariable, LogicalVariable> panicVarMap = null; if (optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CHECK - || optFuncExpr.getFuncExpr() - .getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { + || optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { panicJoinRef = new MutableObject<>(joinRef.getValue()); panicVarMap = new HashMap<>(); Mutable<ILogicalOperator> newProbeRootRef = createPanicNestedLoopJoinPlan(panicJoinRef, indexSubTree, @@ -577,8 +576,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { // Place a top-level equi-join on top to retrieve the missing variables from the original probe subtree. // The inner (build) branch of the join is the subtree with the data scan, since the result of the similarity join could potentially be big. // This choice may not always be the most efficient, but it seems more robust than the alternative. - Mutable<ILogicalExpression> eqJoinConditionRef = createPrimaryKeysEqJoinCondition(originalSubTreePKs, - surrogateSubTreePKs); + Mutable<ILogicalExpression> eqJoinConditionRef = + createPrimaryKeysEqJoinCondition(originalSubTreePKs, surrogateSubTreePKs); InnerJoinOperator topEqJoin = new InnerJoinOperator(eqJoinConditionRef, originalProbeSubTreeRootRef, new MutableObject<ILogicalOperator>(topOp)); topEqJoin.setExecutionMode(ExecutionMode.PARTITIONED); @@ -628,14 +627,14 @@ public class InvertedIndexAccessMethod implements IAccessMethod { } // Create first copy. - LogicalOperatorDeepCopyWithNewVariablesVisitor firstDeepCopyVisitor = new LogicalOperatorDeepCopyWithNewVariablesVisitor( - context, context, newProbeSubTreeVarMap, true); + LogicalOperatorDeepCopyWithNewVariablesVisitor firstDeepCopyVisitor = + new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, context, newProbeSubTreeVarMap, true); ILogicalOperator newProbeSubTree = firstDeepCopyVisitor.deepCopy(probeSubTree.getRoot()); inferTypes(newProbeSubTree, context); Mutable<ILogicalOperator> newProbeSubTreeRootRef = new MutableObject<ILogicalOperator>(newProbeSubTree); // Create second copy. - LogicalOperatorDeepCopyWithNewVariablesVisitor secondDeepCopyVisitor = new LogicalOperatorDeepCopyWithNewVariablesVisitor( - context, context, joinInputSubTreeVarMap, true); + LogicalOperatorDeepCopyWithNewVariablesVisitor secondDeepCopyVisitor = + new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, context, joinInputSubTreeVarMap, true); ILogicalOperator joinInputSubTree = secondDeepCopyVisitor.deepCopy(probeSubTree.getRoot()); inferTypes(joinInputSubTree, context); probeSubTree.getRootRef().setValue(joinInputSubTree); @@ -670,8 +669,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { args.add( new MutableObject<ILogicalExpression>(new VariableReferenceExpression(surrogateSubTreePKs.get(i)))); args.add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(originalSubTreePKs.get(i)))); - ILogicalExpression eqFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.EQ), args); + ILogicalExpression eqFunc = + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.EQ), args); eqExprs.add(new MutableObject<ILogicalExpression>(eqFunc)); } if (eqExprs.size() == 1) { @@ -712,8 +711,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { VariableUtilities.getLiveVariables(indexSubTree.getRoot(), originalLiveVars); // Copy the scan subtree in indexSubTree. - LogicalOperatorDeepCopyWithNewVariablesVisitor deepCopyVisitor = new LogicalOperatorDeepCopyWithNewVariablesVisitor( - context, context); + LogicalOperatorDeepCopyWithNewVariablesVisitor deepCopyVisitor = + new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, context); ILogicalOperator scanSubTree = deepCopyVisitor.deepCopy(indexSubTree.getRoot()); Map<LogicalVariable, LogicalVariable> copyVarMap = deepCopyVisitor.getInputToOutputVariableMapping(); @@ -777,8 +776,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { throw CompilationException.create(ErrorCode.NO_SUPPORTED_TYPE); } - SelectOperator isFilterableSelectOp = new SelectOperator( - new MutableObject<ILogicalExpression>(isFilterableExpr), false, null); + SelectOperator isFilterableSelectOp = + new SelectOperator(new MutableObject<ILogicalExpression>(isFilterableExpr), false, null); isFilterableSelectOp.getInputs().add(new MutableObject<ILogicalOperator>(inputOp)); isFilterableSelectOp.setExecutionMode(ExecutionMode.LOCAL); context.computeAndSetTypeEnvironmentForOperator(isFilterableSelectOp); @@ -788,8 +787,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { isNotFilterableArgs.add(new MutableObject<ILogicalExpression>(isFilterableExpr)); ILogicalExpression isNotFilterableExpr = new ScalarFunctionCallExpression( FunctionUtil.getFunctionInfo(BuiltinFunctions.NOT), isNotFilterableArgs); - SelectOperator isNotFilterableSelectOp = new SelectOperator( - new MutableObject<ILogicalExpression>(isNotFilterableExpr), false, null); + SelectOperator isNotFilterableSelectOp = + new SelectOperator(new MutableObject<ILogicalExpression>(isNotFilterableExpr), false, null); isNotFilterableSelectOp.getInputs().add(new MutableObject<ILogicalOperator>(inputOp)); isNotFilterableSelectOp.setExecutionMode(ExecutionMode.LOCAL); context.computeAndSetTypeEnvironmentForOperator(isNotFilterableSelectOp); @@ -847,8 +846,7 @@ public class InvertedIndexAccessMethod implements IAccessMethod { return; } if (optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CHECK - || optFuncExpr.getFuncExpr() - .getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { + || optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { if (optFuncExpr.containsPartialField()) { jobGenParams.setSearchModifierType(SearchModifierType.CONJUNCTIVE_EDIT_DISTANCE); } else { @@ -896,7 +894,7 @@ public class InvertedIndexAccessMethod implements IAccessMethod { private void addKeyVarsAndExprs(IOptimizableFuncExpr optFuncExpr, ArrayList<LogicalVariable> keyVarList, ArrayList<Mutable<ILogicalExpression>> keyExprList, IOptimizationContext context) - throws AlgebricksException { + throws AlgebricksException { // For now we are assuming a single secondary index key. // Add a variable and its expr to the lists which will be passed into an assign op. LogicalVariable keyVar = context.newVar(); @@ -913,8 +911,7 @@ public class InvertedIndexAccessMethod implements IAccessMethod { } if (optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CHECK - || optFuncExpr.getFuncExpr() - .getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { + || optFuncExpr.getFuncExpr().getFunctionIdentifier() == BuiltinFunctions.EDIT_DISTANCE_CONTAINS) { return isEditDistanceFuncOptimizable(index, optFuncExpr); } @@ -970,8 +967,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { // Check for panic in selection query. // TODO: Panic also depends on prePost which is currently hardcoded to be true. - AsterixConstantValue listOrStrConstVal = (AsterixConstantValue) ((ConstantExpression) optFuncExpr - .getConstantExpr(0)).getValue(); + AsterixConstantValue listOrStrConstVal = + (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(0)).getValue(); IAObject listOrStrObj = listOrStrConstVal.getObject(); ATypeTag typeTag = listOrStrObj.getType().getTypeTag(); @@ -979,8 +976,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { return false; } - AsterixConstantValue intConstVal = (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(1)) - .getValue(); + AsterixConstantValue intConstVal = + (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(1)).getValue(); IAObject intObj = intConstVal.getObject(); AInt32 edThresh = null; @@ -1168,8 +1165,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { } private boolean isContainsFuncSelectOptimizable(Index index, IOptimizableFuncExpr optFuncExpr) { - AsterixConstantValue strConstVal = (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(0)) - .getValue(); + AsterixConstantValue strConstVal = + (AsterixConstantValue) ((ConstantExpression) optFuncExpr.getConstantExpr(0)).getValue(); IAObject strObj = strConstVal.getObject(); ATypeTag typeTag = strObj.getType().getTypeTag(); @@ -1265,8 +1262,8 @@ public class InvertedIndexAccessMethod implements IAccessMethod { } } default: { - throw CompilationException.create(ErrorCode.INCOMPATIBLE_SEARCH_MODIFIER, - searchModifierType, index.getIndexType()); + throw CompilationException.create(ErrorCode.INCOMPATIBLE_SEARCH_MODIFIER, searchModifierType, + index.getIndexType()); } } default:
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java index b66a663..fd46194 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java @@ -196,8 +196,8 @@ public class RTreeAccessMethod implements IAccessMethod { int numDimensions = NonTaggedFormatUtil.getNumDimensions(spatialType.getTypeTag()); int numSecondaryKeys = numDimensions * 2; // we made sure indexSubTree has datasource scan - AbstractDataSourceOperator dataSourceOp = (AbstractDataSourceOperator) indexSubTree.getDataSourceRef() - .getValue(); + AbstractDataSourceOperator dataSourceOp = + (AbstractDataSourceOperator) indexSubTree.getDataSourceRef().getValue(); RTreeJobGenParams jobGenParams = new RTreeJobGenParams(chosenIndex.getIndexName(), IndexType.RTREE, dataset.getDataverseName(), dataset.getDatasetName(), retainInput, requiresBroadcast); // A spatial object is serialized in the constant of the func expr we are optimizing. @@ -214,8 +214,8 @@ public class RTreeAccessMethod implements IAccessMethod { for (int i = 0; i < numSecondaryKeys; i++) { // The create MBR function "extracts" one field of an MBR around the given spatial object. - AbstractFunctionCallExpression createMBR = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.CREATE_MBR)); + AbstractFunctionCallExpression createMBR = + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.CREATE_MBR)); // Spatial object is the constant from the func expr we are optimizing. createMBR.getArguments().add(new MutableObject<>(searchKeyExpr)); // The number of dimensions. @@ -236,8 +236,8 @@ public class RTreeAccessMethod implements IAccessMethod { if (probeSubTree == null) { // We are optimizing a selection query. // Input to this assign is the EmptyTupleSource (which the dataSourceScan also must have had as input). - assignSearchKeys.getInputs().add(new MutableObject<>( - OperatorManipulationUtil.deepCopy(dataSourceOp.getInputs().get(0).getValue()))); + assignSearchKeys.getInputs().add( + new MutableObject<>(OperatorManipulationUtil.deepCopy(dataSourceOp.getInputs().get(0).getValue()))); assignSearchKeys.setExecutionMode(dataSourceOp.getExecutionMode()); } else { // We are optimizing a join, place the assign op top of the probe subtree. http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java index 9a49472..8bfa53a 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java @@ -136,8 +136,8 @@ class InlineAllNtsInSubplanVisitor implements IQueryOperatorVisitor<ILogicalOper // Maps live variables at <code>subplanInputOperator</code> to variables in // the flattened nested plan. - private final LinkedHashMap<LogicalVariable, LogicalVariable> subplanInputVarToCurrentVarMap = new - LinkedHashMap<>(); + private final LinkedHashMap<LogicalVariable, LogicalVariable> subplanInputVarToCurrentVarMap = + new LinkedHashMap<>(); // Maps variables in the flattened nested plan to live variables at // <code>subplannputOperator</code>. @@ -288,15 +288,13 @@ class InlineAllNtsInSubplanVisitor implements IQueryOperatorVisitor<ILogicalOper if (!correlatedKeyVars.contains(inputLiveVar)) { recordConstructorArgs.add(new MutableObject<>(new ConstantExpression( new AsterixConstantValue(new AString(Integer.toString(inputLiveVar.getId())))))); - recordConstructorArgs - .add(new MutableObject<>(new VariableReferenceExpression(inputLiveVar))); + recordConstructorArgs.add(new MutableObject<>(new VariableReferenceExpression(inputLiveVar))); } } LogicalVariable recordVar = context.newVar(); - Mutable<ILogicalExpression> recordExprRef = new MutableObject<ILogicalExpression>( - new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), - recordConstructorArgs)); + Mutable<ILogicalExpression> recordExprRef = + new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( + FunctionUtil.getFunctionInfo(BuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), recordConstructorArgs)); AssignOperator assignOp = new AssignOperator(recordVar, recordExprRef); return new Pair<>(assignOp, recordVar); } @@ -363,13 +361,11 @@ class InlineAllNtsInSubplanVisitor implements IQueryOperatorVisitor<ILogicalOper private Pair<ILogicalOperator, LogicalVariable> createUnnestForAggregatedList(LogicalVariable aggVar) { LogicalVariable unnestVar = context.newVar(); // Creates an unnest function expression. - Mutable<ILogicalExpression> unnestArg = new MutableObject<>( - new VariableReferenceExpression(aggVar)); + Mutable<ILogicalExpression> unnestArg = new MutableObject<>(new VariableReferenceExpression(aggVar)); List<Mutable<ILogicalExpression>> unnestArgList = new ArrayList<>(); unnestArgList.add(unnestArg); - Mutable<ILogicalExpression> unnestExpr = new MutableObject<>( - new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.SCAN_COLLECTION), unnestArgList)); + Mutable<ILogicalExpression> unnestExpr = new MutableObject<>(new UnnestingFunctionCallExpression( + FunctionUtil.getFunctionInfo(BuiltinFunctions.SCAN_COLLECTION), unnestArgList)); ILogicalOperator unnestOp = new UnnestOperator(unnestVar, unnestExpr); return new Pair<>(unnestOp, unnestVar); } @@ -414,15 +410,15 @@ class InlineAllNtsInSubplanVisitor implements IQueryOperatorVisitor<ILogicalOper if (op.getDataSourceReference().getValue() != subplanOperator) { return op; } - LogicalOperatorDeepCopyWithNewVariablesVisitor deepCopyVisitor = new LogicalOperatorDeepCopyWithNewVariablesVisitor( - context, context); + LogicalOperatorDeepCopyWithNewVariablesVisitor deepCopyVisitor = + new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, context); ILogicalOperator copiedInputOperator = deepCopyVisitor.deepCopy(subplanInputOperator); // Updates the primary key info in the copied plan segment. Map<LogicalVariable, LogicalVariable> varMap = deepCopyVisitor.getInputToOutputVariableMapping(); addPrimaryKeys(varMap); - Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = EquivalenceClassUtils - .findOrCreatePrimaryKeyOpAndVariables(copiedInputOperator, true, context); + Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = + EquivalenceClassUtils.findOrCreatePrimaryKeyOpAndVariables(copiedInputOperator, true, context); correlatedKeyVars.clear(); correlatedKeyVars.addAll(primaryOpAndVars.second); // Update key variables and input-output-var mapping. http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java index 6a318d6..4a28344 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java @@ -399,8 +399,8 @@ class InlineLeftNtsInSubplanJoinFlatteningVisitor implements IQueryOperatorVisit */ private void injectNullCheckVars(AbstractBinaryJoinOperator joinOp) { LogicalVariable assignVar = context.newVar(); - ILogicalOperator assignOp = new AssignOperator(assignVar, - new MutableObject<ILogicalExpression>(ConstantExpression.TRUE)); + ILogicalOperator assignOp = + new AssignOperator(assignVar, new MutableObject<ILogicalExpression>(ConstantExpression.TRUE)); assignOp.getInputs().add(joinOp.getInputs().get(1)); joinOp.getInputs().set(1, new MutableObject<ILogicalOperator>(assignOp)); nullCheckVars.add(assignVar); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java index 8ab8b1d..a9cd806 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java @@ -273,12 +273,11 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew } private Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> rewriteSubplanOperator( - Mutable<ILogicalOperator> opRef, - IOptimizationContext context) throws AlgebricksException { + Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException { AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue(); // Recursively traverses input operators as if the current operator before rewriting the current operator. - Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> changedAndVarMap = traverseNonSubplanOperator(op, - context); + Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> changedAndVarMap = + traverseNonSubplanOperator(op, context); if (op.getOperatorTag() != LogicalOperatorTag.SUBPLAN) { return changedAndVarMap; } @@ -312,17 +311,15 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew * @throws AlgebricksException */ private Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> traverseNonSubplanOperator( - ILogicalOperator op, - IOptimizationContext context) throws AlgebricksException { + ILogicalOperator op, IOptimizationContext context) throws AlgebricksException { Set<LogicalVariable> liveVars = new HashSet<>(); VariableUtilities.getLiveVariables(op, liveVars); LinkedHashMap<LogicalVariable, LogicalVariable> replacedVarMap = new LinkedHashMap<>(); LinkedHashMap<LogicalVariable, LogicalVariable> replacedVarMapForAncestor = new LinkedHashMap<>(); boolean changed = false; for (Mutable<ILogicalOperator> childrenRef : op.getInputs()) { - Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> resultFromChild = rewriteSubplanOperator( - childrenRef, - context); + Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> resultFromChild = + rewriteSubplanOperator(childrenRef, context); changed = changed || resultFromChild.first; resultFromChild.second.forEach((oldVar, newVar) -> { if (liveVars.contains(oldVar)) { @@ -344,8 +341,7 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew } private Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> applyGeneralFlattening( - Mutable<ILogicalOperator> opRef, - IOptimizationContext context) throws AlgebricksException { + Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException { SubplanOperator subplanOp = (SubplanOperator) opRef.getValue(); if (!SubplanFlatteningUtil.containsOperators(subplanOp, ImmutableSet.of(LogicalOperatorTag.DATASOURCESCAN, LogicalOperatorTag.INNERJOIN, @@ -356,24 +352,24 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew Mutable<ILogicalOperator> inputOpRef = subplanOp.getInputs().get(0); ILogicalOperator inputOpBackup = inputOpRef.getValue(); // Creates parameters for the left outer join operator. - Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = EquivalenceClassUtils - .findOrCreatePrimaryKeyOpAndVariables(inputOpBackup, true, context); + Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = + EquivalenceClassUtils.findOrCreatePrimaryKeyOpAndVariables(inputOpBackup, true, context); ILogicalOperator inputOp = primaryOpAndVars.first; Set<LogicalVariable> primaryKeyVars = primaryOpAndVars.second; inputOpRef.setValue(inputOp); Set<LogicalVariable> inputLiveVars = new HashSet<>(); VariableUtilities.getLiveVariables(inputOp, inputLiveVars); - Pair<Map<LogicalVariable, LogicalVariable>, List<Pair<IOrder, Mutable<ILogicalExpression>>>> varMapAndOrderExprs = SubplanFlatteningUtil - .inlineAllNestedTupleSource(subplanOp, context); + Pair<Map<LogicalVariable, LogicalVariable>, List<Pair<IOrder, Mutable<ILogicalExpression>>>> varMapAndOrderExprs = + SubplanFlatteningUtil.inlineAllNestedTupleSource(subplanOp, context); Map<LogicalVariable, LogicalVariable> varMap = varMapAndOrderExprs.first; if (varMap == null) { inputOpRef.setValue(inputOpBackup); return new Pair<>(false, new LinkedHashMap<>()); } - Mutable<ILogicalOperator> lowestAggregateRefInSubplan = SubplanFlatteningUtil - .findLowestAggregate(subplanOp.getNestedPlans().get(0).getRoots().get(0)); + Mutable<ILogicalOperator> lowestAggregateRefInSubplan = + SubplanFlatteningUtil.findLowestAggregate(subplanOp.getNestedPlans().get(0).getRoots().get(0)); Mutable<ILogicalOperator> rightInputOpRef = lowestAggregateRefInSubplan.getValue().getInputs().get(0); ILogicalOperator rightInputOp = rightInputOpRef.getValue(); @@ -400,14 +396,16 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew ? new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.AND), joinPredicates) : joinPredicates.size() > 0 ? joinPredicates.get(0).getValue() : ConstantExpression.TRUE; - LeftOuterJoinOperator leftOuterJoinOp = new LeftOuterJoinOperator( - new MutableObject<>(joinExpr), inputOpRef, rightInputOpRef); + LeftOuterJoinOperator leftOuterJoinOp = + new LeftOuterJoinOperator(new MutableObject<>(joinExpr), inputOpRef, rightInputOpRef); OperatorManipulationUtil.computeTypeEnvironmentBottomUp(rightInputOp, context); context.computeAndSetTypeEnvironmentForOperator(leftOuterJoinOp); // Creates group-by operator. - List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByList = new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); - List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByDecorList = new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); + List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByList = + new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); + List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByDecorList = + new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); List<ILogicalPlan> nestedPlans = new ArrayList<>(); GroupByOperator groupbyOp = new GroupByOperator(groupByList, groupByDecorList, nestedPlans); @@ -439,17 +437,14 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew // Adds a select operator into the nested plan for group-by to remove tuples with NULL on {@code assignVar}, i.e., // subplan input tuples that are filtered out within a subplan. - Mutable<ILogicalExpression> filterVarExpr = new MutableObject<>( - new VariableReferenceExpression(assignVar)); + Mutable<ILogicalExpression> filterVarExpr = new MutableObject<>(new VariableReferenceExpression(assignVar)); List<Mutable<ILogicalExpression>> args = new ArrayList<>(); args.add(filterVarExpr); List<Mutable<ILogicalExpression>> argsForNotFunction = new ArrayList<>(); - argsForNotFunction.add(new MutableObject<>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.IS_MISSING), args))); - SelectOperator selectOp = new SelectOperator( - new MutableObject<>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.NOT), argsForNotFunction)), - false, null); + argsForNotFunction.add(new MutableObject<>( + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.IS_MISSING), args))); + SelectOperator selectOp = new SelectOperator(new MutableObject<>(new ScalarFunctionCallExpression( + FunctionUtil.getFunctionInfo(BuiltinFunctions.NOT), argsForNotFunction)), false, null); currentOpRef.getValue().getInputs().add(new MutableObject<>(selectOp)); selectOp.getInputs().add(new MutableObject<>(new NestedTupleSourceOperator(new MutableObject<>(groupbyOp)))); @@ -464,8 +459,8 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew // Recursively applys this rule to the nested plan of the subplan operator, // for the case where there are nested subplan operators within {@code subplanOp}. - Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> result = rewriteSubplanOperator(rightInputOpRef, - context); + Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> result = + rewriteSubplanOperator(rightInputOpRef, context); VariableUtilities.substituteVariables(leftOuterJoinOp, result.second, context); VariableUtilities.substituteVariables(groupbyOp, result.second, context); @@ -474,29 +469,28 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew } private Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> applySpecialFlattening( - Mutable<ILogicalOperator> opRef, - IOptimizationContext context) throws AlgebricksException { + Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException { SubplanOperator subplanOp = (SubplanOperator) opRef.getValue(); Mutable<ILogicalOperator> inputOpRef = subplanOp.getInputs().get(0); LinkedHashMap<LogicalVariable, LogicalVariable> replacedVarMap = new LinkedHashMap<>(); // Recursively applies this rule to the nested plan of the subplan operator, // for the case where there are nested subplan operators within {@code subplanOp}. - Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> result = rewriteSubplanOperator( - subplanOp.getNestedPlans().get(0).getRoots().get(0), context); + Pair<Boolean, LinkedHashMap<LogicalVariable, LogicalVariable>> result = + rewriteSubplanOperator(subplanOp.getNestedPlans().get(0).getRoots().get(0), context); ILogicalOperator inputOpBackup = inputOpRef.getValue(); // Gets live variables and covering variables from the subplan's input operator. - Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = EquivalenceClassUtils - .findOrCreatePrimaryKeyOpAndVariables(inputOpBackup, false, context); + Pair<ILogicalOperator, Set<LogicalVariable>> primaryOpAndVars = + EquivalenceClassUtils.findOrCreatePrimaryKeyOpAndVariables(inputOpBackup, false, context); ILogicalOperator inputOp = primaryOpAndVars.first; Set<LogicalVariable> primaryKeyVars = primaryOpAndVars.second; inputOpRef.setValue(inputOp); Set<LogicalVariable> liveVars = new HashSet<>(); VariableUtilities.getLiveVariables(inputOp, liveVars); - Pair<Set<LogicalVariable>, Mutable<ILogicalOperator>> notNullVarsAndTopJoinRef = SubplanFlatteningUtil - .inlineLeftNtsInSubplanJoin(subplanOp, context); + Pair<Set<LogicalVariable>, Mutable<ILogicalOperator>> notNullVarsAndTopJoinRef = + SubplanFlatteningUtil.inlineLeftNtsInSubplanJoin(subplanOp, context); if (notNullVarsAndTopJoinRef.first == null) { inputOpRef.setValue(inputOpBackup); return new Pair<>(false, replacedVarMap); @@ -506,8 +500,10 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew Mutable<ILogicalOperator> topJoinRef = notNullVarsAndTopJoinRef.second; // Creates a group-by operator. - List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByList = new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); - List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByDecorList = new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); + List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByList = + new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); + List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> groupByDecorList = + new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(); GroupByOperator groupbyOp = new GroupByOperator(groupByList, groupByDecorList, subplanOp.getNestedPlans()); for (LogicalVariable coverVar : primaryKeyVars) { @@ -529,8 +525,8 @@ public class InlineSubplanInputForNestedTupleSourceRule implements IAlgebraicRew // subplan input tuples that are filtered out within a subplan. List<Mutable<ILogicalExpression>> nullCheckExprRefs = new ArrayList<>(); for (LogicalVariable notNullVar : notNullVars) { - Mutable<ILogicalExpression> filterVarExpr = new MutableObject<>( - new VariableReferenceExpression(notNullVar)); + Mutable<ILogicalExpression> filterVarExpr = + new MutableObject<>(new VariableReferenceExpression(notNullVar)); List<Mutable<ILogicalExpression>> args = new ArrayList<>(); args.add(filterVarExpr); List<Mutable<ILogicalExpression>> argsForNotFunction = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java index 377e96d..dba5d47 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java @@ -91,16 +91,16 @@ class SubplanFlatteningUtil { */ public static Pair<Set<LogicalVariable>, Mutable<ILogicalOperator>> inlineLeftNtsInSubplanJoin( SubplanOperator subplanOp, IOptimizationContext context) throws AlgebricksException { - Pair<Boolean, ILogicalOperator> applicableAndNtsToRewrite = SubplanFlatteningUtil - .isQualifiedForSpecialFlattening(subplanOp); + Pair<Boolean, ILogicalOperator> applicableAndNtsToRewrite = + SubplanFlatteningUtil.isQualifiedForSpecialFlattening(subplanOp); if (!applicableAndNtsToRewrite.first) { return new Pair<Set<LogicalVariable>, Mutable<ILogicalOperator>>(null, null); } ILogicalOperator qualifiedNts = applicableAndNtsToRewrite.second; ILogicalOperator subplanInputOp = subplanOp.getInputs().get(0).getValue(); - InlineLeftNtsInSubplanJoinFlatteningVisitor specialVisitor = new InlineLeftNtsInSubplanJoinFlatteningVisitor( - context, subplanInputOp, qualifiedNts); + InlineLeftNtsInSubplanJoinFlatteningVisitor specialVisitor = + new InlineLeftNtsInSubplanJoinFlatteningVisitor(context, subplanInputOp, qualifiedNts); // Rewrites the query plan. Mutable<ILogicalOperator> topRef = subplanOp.getNestedPlans().get(0).getRoots().get(0); @@ -157,7 +157,7 @@ class SubplanFlatteningUtil { } if (currentOp.getOperatorTag() == LogicalOperatorTag.SUBPLAN && containsOperators((SubplanOperator) currentOp, interestedOperatorTags)) { - return true; + return true; } for (Mutable<ILogicalOperator> childRef : currentOp.getInputs()) { if (containsOperatorsInternal(childRef.getValue(), interestedOperatorTags)) { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java index c7ceefd..0d53a19 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java @@ -106,66 +106,66 @@ public class TranslateIntervalExpressionRule implements IAlgebraicRewriteRule { } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_MET_BY)) { exprRef.setValue(getEqualExpr(getIntervalStartExpr(interval1), getIntervalEndExpr(interval2))); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_STARTS)) { - ILogicalExpression startExpr = getEqualExpr(getIntervalStartExpr(interval1), - getIntervalStartExpr(interval2)); - ILogicalExpression endExpr = getLessThanOrEqualExpr(getIntervalEndExpr(interval1), - getIntervalEndExpr(interval2)); + ILogicalExpression startExpr = + getEqualExpr(getIntervalStartExpr(interval1), getIntervalStartExpr(interval2)); + ILogicalExpression endExpr = + getLessThanOrEqualExpr(getIntervalEndExpr(interval1), getIntervalEndExpr(interval2)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_STARTED_BY)) { - ILogicalExpression startExpr = getEqualExpr(getIntervalStartExpr(interval1), - getIntervalStartExpr(interval2)); - ILogicalExpression endExpr = getLessThanOrEqualExpr(getIntervalEndExpr(interval2), - getIntervalEndExpr(interval1)); + ILogicalExpression startExpr = + getEqualExpr(getIntervalStartExpr(interval1), getIntervalStartExpr(interval2)); + ILogicalExpression endExpr = + getLessThanOrEqualExpr(getIntervalEndExpr(interval2), getIntervalEndExpr(interval1)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_ENDS)) { ILogicalExpression endExpr = getEqualExpr(getIntervalEndExpr(interval1), getIntervalEndExpr(interval2)); - ILogicalExpression startExpr = getLessThanOrEqualExpr(getIntervalStartExpr(interval1), - getIntervalStartExpr(interval2)); + ILogicalExpression startExpr = + getLessThanOrEqualExpr(getIntervalStartExpr(interval1), getIntervalStartExpr(interval2)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_ENDED_BY)) { ILogicalExpression endExpr = getEqualExpr(getIntervalEndExpr(interval1), getIntervalEndExpr(interval2)); - ILogicalExpression startExpr = getLessThanOrEqualExpr(getIntervalStartExpr(interval2), - getIntervalStartExpr(interval1)); + ILogicalExpression startExpr = + getLessThanOrEqualExpr(getIntervalStartExpr(interval2), getIntervalStartExpr(interval1)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_BEFORE)) { exprRef.setValue(getLessThanExpr(getIntervalEndExpr(interval1), getIntervalStartExpr(interval2))); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_AFTER)) { exprRef.setValue(getGreaterThanExpr(getIntervalStartExpr(interval1), getIntervalEndExpr(interval2))); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_OVERLAPS)) { - ILogicalExpression expr1 = getLessThanExpr(getIntervalStartExpr(interval1), - getIntervalStartExpr(interval2)); + ILogicalExpression expr1 = + getLessThanExpr(getIntervalStartExpr(interval1), getIntervalStartExpr(interval2)); ILogicalExpression expr2 = getGreaterThanExpr(getIntervalEndExpr(interval2), getIntervalEndExpr(interval1)); - ILogicalExpression expr3 = getGreaterThanExpr(getIntervalEndExpr(interval1), - getIntervalStartExpr(interval2)); + ILogicalExpression expr3 = + getGreaterThanExpr(getIntervalEndExpr(interval1), getIntervalStartExpr(interval2)); exprRef.setValue(getAndExpr(getAndExpr(expr1, expr2), expr3)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_OVERLAPPED_BY)) { - ILogicalExpression expr1 = getLessThanExpr(getIntervalStartExpr(interval2), - getIntervalStartExpr(interval1)); + ILogicalExpression expr1 = + getLessThanExpr(getIntervalStartExpr(interval2), getIntervalStartExpr(interval1)); ILogicalExpression expr2 = getGreaterThanExpr(getIntervalEndExpr(interval1), getIntervalEndExpr(interval2)); - ILogicalExpression expr3 = getGreaterThanExpr(getIntervalEndExpr(interval2), - getIntervalStartExpr(interval1)); + ILogicalExpression expr3 = + getGreaterThanExpr(getIntervalEndExpr(interval2), getIntervalStartExpr(interval1)); exprRef.setValue(getAndExpr(getAndExpr(expr1, expr2), expr3)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_OVERLAPPING)) { - ILogicalExpression startExpr = getLessThanOrEqualExpr(getIntervalStartExpr(interval1), - getIntervalEndExpr(interval2)); - ILogicalExpression endExpr = getGreaterThanOrEqualExpr(getIntervalEndExpr(interval1), - getIntervalStartExpr(interval2)); - ILogicalExpression startPointExpr = getNotEqualExpr(getIntervalEndExpr(interval1), - getIntervalStartExpr(interval2)); - ILogicalExpression endPointExpr = getNotEqualExpr(getIntervalStartExpr(interval1), - getIntervalEndExpr(interval2)); + ILogicalExpression startExpr = + getLessThanOrEqualExpr(getIntervalStartExpr(interval1), getIntervalEndExpr(interval2)); + ILogicalExpression endExpr = + getGreaterThanOrEqualExpr(getIntervalEndExpr(interval1), getIntervalStartExpr(interval2)); + ILogicalExpression startPointExpr = + getNotEqualExpr(getIntervalEndExpr(interval1), getIntervalStartExpr(interval2)); + ILogicalExpression endPointExpr = + getNotEqualExpr(getIntervalStartExpr(interval1), getIntervalEndExpr(interval2)); exprRef.setValue(getAndExpr(getAndExpr(startExpr, endExpr), getAndExpr(startPointExpr, endPointExpr))); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_COVERS)) { - ILogicalExpression startExpr = getLessThanOrEqualExpr(getIntervalStartExpr(interval1), - getIntervalStartExpr(interval2)); - ILogicalExpression endExpr = getGreaterThanOrEqualExpr(getIntervalEndExpr(interval1), - getIntervalEndExpr(interval2)); + ILogicalExpression startExpr = + getLessThanOrEqualExpr(getIntervalStartExpr(interval1), getIntervalStartExpr(interval2)); + ILogicalExpression endExpr = + getGreaterThanOrEqualExpr(getIntervalEndExpr(interval1), getIntervalEndExpr(interval2)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.INTERVAL_COVERED_BY)) { - ILogicalExpression startExpr = getLessThanOrEqualExpr(getIntervalStartExpr(interval2), - getIntervalStartExpr(interval1)); - ILogicalExpression endExpr = getGreaterThanOrEqualExpr(getIntervalEndExpr(interval2), - getIntervalEndExpr(interval1)); + ILogicalExpression startExpr = + getLessThanOrEqualExpr(getIntervalStartExpr(interval2), getIntervalStartExpr(interval1)); + ILogicalExpression endExpr = + getGreaterThanOrEqualExpr(getIntervalEndExpr(interval2), getIntervalEndExpr(interval1)); exprRef.setValue(getAndExpr(startExpr, endExpr)); } else { return false; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java index 9b5654a..82d963d 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java @@ -121,8 +121,8 @@ public class EquivalenceClassUtils { new MutableObject<ILogicalExpression>(new VariableReferenceExpression(referredRecordVar)), new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(fieldIndexInRecord))))); - EquivalenceClass equivClass = new EquivalenceClass(Collections.singletonList(var), var, - Collections.singletonList(expr)); + EquivalenceClass equivClass = + new EquivalenceClass(Collections.singletonList(var), var, Collections.singletonList(expr)); Map<LogicalVariable, EquivalenceClass> equivalenceMap = context.getEquivalenceClassMap(operator); if (equivalenceMap == null) { equivalenceMap = new HashMap<LogicalVariable, EquivalenceClass>(); @@ -148,7 +148,7 @@ public class EquivalenceClassUtils { */ public static Pair<ILogicalOperator, Set<LogicalVariable>> findOrCreatePrimaryKeyOpAndVariables( ILogicalOperator operator, boolean usedForCorrelationJoin, IOptimizationContext context) - throws AlgebricksException { + throws AlgebricksException { computePrimaryKeys(operator, context); Set<LogicalVariable> liveVars = new HashSet<>(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java index ae60c71..acf2908 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java @@ -157,8 +157,8 @@ public abstract class AbstractLangTranslator { if (hints != null && !hints.isEmpty()) { StringBuilder errorMsgBuffer = new StringBuilder(); for (Entry<String, String> hint : hints.entrySet()) { - Pair<Boolean, String> validationResult = DatasetHints.validate(appCtx, hint.getKey(), - hint.getValue()); + Pair<Boolean, String> validationResult = + DatasetHints.validate(appCtx, hint.getKey(), hint.getValue()); if (!validationResult.first) { errorMsgBuffer.append("Dataset: ").append(datasetStmt.getName().getValue()) .append(" error in processing hint: ").append(hint.getKey()).append(" ") http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java index 18304b3..531de59 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java @@ -144,7 +144,6 @@ public class AqlPlusExpressionToPlanTranslator extends AqlExpressionToPlanTransl return new Pair<ILogicalOperator, LogicalVariable>(a, var); } - public void addVariableToMetaScope(Identifier id, LogicalVariable var) { metaScopeExp.put(id, var); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/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 2b83158..a3d3ac9 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 @@ -837,8 +837,8 @@ class LangExpressionToPlanTranslator if (gc.hasGroupVar()) { VariableExpr groupVar = gc.getGroupVar(); LogicalVariable groupLogicalVar = context.newVar(); - ILogicalPlan nestedPlan = createNestedPlanWithAggregate(groupLogicalVar, - BuiltinFunctions.LISTIFY, new VariableReferenceExpression(groupRecordVar), + ILogicalPlan nestedPlan = createNestedPlanWithAggregate(groupLogicalVar, BuiltinFunctions.LISTIFY, + new VariableReferenceExpression(groupRecordVar), new MutableObject<>(new NestedTupleSourceOperator(new MutableObject<>(gOp)))); gOp.getNestedPlans().add(nestedPlan); context.setVar(groupVar, groupLogicalVar); @@ -851,8 +851,8 @@ class LangExpressionToPlanTranslator Pair<ILogicalExpression, Mutable<ILogicalOperator>> listifyInput = langExprToAlgExpression(withExpr, new MutableObject<>(new NestedTupleSourceOperator(new MutableObject<>(gOp)))); LogicalVariable withLogicalVar = context.newVar(); - ILogicalPlan nestedPlan = createNestedPlanWithAggregate(withLogicalVar, - BuiltinFunctions.LISTIFY, listifyInput.first, listifyInput.second); + ILogicalPlan nestedPlan = createNestedPlanWithAggregate(withLogicalVar, BuiltinFunctions.LISTIFY, + listifyInput.first, listifyInput.second); gOp.getNestedPlans().add(nestedPlan); context.setVar(withVar, withLogicalVar); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionConfig.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionConfig.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionConfig.java index 1160aaa..cb6d8e5 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionConfig.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionConfig.java @@ -61,10 +61,8 @@ public class SessionConfig implements Serializable { public static PlanFormat get(String fmtString, String label, PlanFormat defaultFmt, Logger logger) { try { if (fmtString != null) { - String format = - ("JSON".equalsIgnoreCase(fmtString) || "CLEAN_JSON".equalsIgnoreCase(fmtString)) - ? "JSON" - : fmtString; + String format = ("JSON".equalsIgnoreCase(fmtString) || "CLEAN_JSON".equalsIgnoreCase(fmtString)) + ? "JSON" : fmtString; return PlanFormat.valueOf(format); } } catch (IllegalArgumentException e) { @@ -168,6 +166,7 @@ public class SessionConfig implements Serializable { public SessionConfig(OutputFormat fmt, boolean optimize, boolean executeQuery, boolean generateJobSpec) { this(fmt, optimize, executeQuery, generateJobSpec, PlanFormat.STRING); } + public SessionConfig(OutputFormat fmt, boolean optimize, boolean executeQuery, boolean generateJobSpec, PlanFormat lpfmt) { this.fmt = fmt; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 36183c6..200cc6f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -345,8 +345,8 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp } // Adds an aggregate operator to listfy unnest variables. - AggregateFunctionCallExpression fListify = BuiltinFunctions - .makeAggregateFunctionExpression(BuiltinFunctions.LISTIFY, mkSingletonArrayList( + AggregateFunctionCallExpression fListify = + BuiltinFunctions.makeAggregateFunctionExpression(BuiltinFunctions.LISTIFY, mkSingletonArrayList( new MutableObject<ILogicalExpression>(new VariableReferenceExpression(varToListify)))); LogicalVariable aggVar = context.newSubplanOutputVar(); @@ -510,8 +510,8 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp // A "THEN" branch can be entered only when the tuple has not enter any other preceding // branches and the current "WHEN" condition is TRUE. - branchEntraceConditionExprRef = new MutableObject<>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.AND), andArgs)); + branchEntraceConditionExprRef = new MutableObject<>( + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.AND), andArgs)); } // Translates the corresponding "THEN" expression. @@ -539,8 +539,8 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp arguments.add(new MutableObject<>(argVar)); } arguments.add(new MutableObject<>(new VariableReferenceExpression(opAndVarForElse.second))); - AbstractFunctionCallExpression swithCaseExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.SWITCH_CASE), arguments); + AbstractFunctionCallExpression swithCaseExpr = + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.SWITCH_CASE), arguments); AssignOperator assignOp = new AssignOperator(selectVar, new MutableObject<>(swithCaseExpr)); assignOp.getInputs().add(new MutableObject<>(opAndVarForElse.first)); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationContext.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationContext.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationContext.java index 1344e0c..33653ad 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationContext.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationContext.java @@ -97,7 +97,6 @@ public final class TranslationContext implements IVariableContext { return var; } - public void setVar(VariableExpr v, LogicalVariable var) { currentVarMap.put(v.getVar().getId(), var); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java index 5e70baf..919bdf2 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java @@ -44,8 +44,8 @@ public class PlanTranslationUtil { List<Mutable<ILogicalExpression>> assignExpressions, List<LogicalVariable> vars, List<Mutable<ILogicalExpression>> varRefs, IVariableContext context) { IAObject value = (field.size() > 1) ? new AOrderedList(field) : new AString(field.get(0)); - ScalarFunctionCallExpression metaKeyFunction = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(BuiltinFunctions.META_KEY)); + ScalarFunctionCallExpression metaKeyFunction = + new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.META_KEY)); metaKeyFunction.getArguments() .add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(resVar))); metaKeyFunction.getArguments() http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java index cda9dd3..4b4b2b0 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java @@ -178,9 +178,9 @@ public class ValidateUtil { * the type of the index that its key fields is being validated * @throws AlgebricksException */ - public static void validateKeyFields(ARecordType recType, ARecordType metaRecType, - List<List<String>> keyFieldNames, List<Integer> keySourceIndicators, List<IAType> keyFieldTypes, - IndexType indexType) throws AlgebricksException { + public static void validateKeyFields(ARecordType recType, ARecordType metaRecType, List<List<String>> keyFieldNames, + List<Integer> keySourceIndicators, List<IAType> keyFieldTypes, IndexType indexType) + throws AlgebricksException { List<IAType> fieldTypes = KeyFieldTypeUtil.getKeyTypes(recType, metaRecType, keyFieldNames, keySourceIndicators); int pos = 0; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java index b0edb3e..0f91275 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java @@ -350,12 +350,10 @@ public class APIFramework { // Sets a required capacity, only for read-only queries. // DDLs and DMLs are considered not that frequent. // limit the computation locations to the locations that will be used in the query - final AlgebricksAbsolutePartitionConstraint jobLocations = - getJobLocations(spec, metadataProvider.getApplicationContext().getNodeJobTracker(), - computationLocations); - final IClusterCapacity jobRequiredCapacity = ResourceUtils - .getRequiredCapacity(plan, jobLocations, sortFrameLimit, groupFrameLimit, joinFrameLimit, - frameSize); + final AlgebricksAbsolutePartitionConstraint jobLocations = getJobLocations(spec, + metadataProvider.getApplicationContext().getNodeJobTracker(), computationLocations); + final IClusterCapacity jobRequiredCapacity = ResourceUtils.getRequiredCapacity(plan, jobLocations, + sortFrameLimit, groupFrameLimit, joinFrameLimit, frameSize); spec.setRequiredClusterCapacity(jobRequiredCapacity); } @@ -512,8 +510,7 @@ public class APIFramework { public static AlgebricksAbsolutePartitionConstraint getJobLocations(JobSpecification spec, INodeJobTracker jobTracker, AlgebricksAbsolutePartitionConstraint clusterLocations) { final Set<String> jobParticipatingNodes = jobTracker.getJobParticipatingNodes(spec); - return new AlgebricksAbsolutePartitionConstraint( - Arrays.stream(clusterLocations.getLocations()).filter(jobParticipatingNodes::contains) - .toArray(String[]::new)); + return new AlgebricksAbsolutePartitionConstraint(Arrays.stream(clusterLocations.getLocations()) + .filter(jobParticipatingNodes::contains).toArray(String[]::new)); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java index df2a2a1..63896f2 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java @@ -90,11 +90,11 @@ public class ApiServlet extends AbstractServlet { this.componentProvider = componentProvider; } - @Override protected void post(IServletRequest request, IServletResponse response) { + @Override + protected void post(IServletRequest request, IServletResponse response) { // Query language - ILangCompilationProvider compilationProvider = "AQL".equals(request.getParameter("query-language")) ? - aqlCompilationProvider : - sqlppCompilationProvider; + ILangCompilationProvider compilationProvider = "AQL".equals(request.getParameter("query-language")) + ? aqlCompilationProvider : sqlppCompilationProvider; IParserFactory parserFactory = compilationProvider.getParserFactory(); // Output format. @@ -150,14 +150,12 @@ public class ApiServlet extends AbstractServlet { } IParser parser = parserFactory.createParser(query); List<Statement> aqlStatements = parser.parse(); - SessionConfig sessionConfig = - new SessionConfig(format, true, isSet(executeQuery), true, planFormat); + SessionConfig sessionConfig = new SessionConfig(format, true, isSet(executeQuery), true, planFormat); sessionConfig.set(SessionConfig.FORMAT_HTML, true); sessionConfig.set(SessionConfig.FORMAT_CSV_HEADER, csvAndHeader); sessionConfig.set(SessionConfig.FORMAT_WRAPPER_ARRAY, isSet(wrapperArray)); - sessionConfig - .setOOBData(isSet(printExprParam), isSet(printRewrittenExprParam), isSet(printLogicalPlanParam), - isSet(printOptimizedLogicalPlanParam), isSet(printJob)); + sessionConfig.setOOBData(isSet(printExprParam), isSet(printRewrittenExprParam), + isSet(printLogicalPlanParam), isSet(printOptimizedLogicalPlanParam), isSet(printJob)); SessionOutput sessionOutput = new SessionOutput(sessionConfig, out); MetadataManager.INSTANCE.init(); IStatementExecutor translator = statementExectorFactory.create(appCtx, aqlStatements, sessionOutput, @@ -232,8 +230,8 @@ public class ApiServlet extends AbstractServlet { try { line = br.readLine(); } catch (NullPointerException e) { - LOGGER.log(Level.WARN, - "NPE reading resource " + resourcePath + ", assuming JDK-8080094; returning 404", e); + LOGGER.log(Level.WARN, "NPE reading resource " + resourcePath + ", assuming JDK-8080094; returning 404", + e); // workaround lame JDK bug where a broken InputStream is returned in case the resourcePath is a // directory; see https://bugs.openjdk.java.net/browse/JDK-8080094 response.setStatus(HttpResponseStatus.NOT_FOUND); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java index f7f8385..0f08a22 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/DiagnosticsApiServlet.java @@ -119,10 +119,10 @@ public class DiagnosticsApiServlet extends NodeControllerDetailsApiServlet { ccFutureData = new HashMap<>(); ccFutureData.put("threaddump", executor.submit(() -> fixupKeys((ObjectNode) OBJECT_MAPPER.readTree(processThreadDump(null))))); - ccFutureData.put("config", executor.submit( - () -> fixupKeys((ObjectNode) OBJECT_MAPPER.readTree(processNodeDetails(null, false, true))))); - ccFutureData.put("stats", executor.submit( - () -> fixupKeys((ObjectNode) OBJECT_MAPPER.readTree(processNodeDetails(null, true, false))))); + ccFutureData.put("config", executor + .submit(() -> fixupKeys((ObjectNode) OBJECT_MAPPER.readTree(processNodeDetails(null, false, true))))); + ccFutureData.put("stats", executor + .submit(() -> fixupKeys((ObjectNode) OBJECT_MAPPER.readTree(processNodeDetails(null, true, false))))); return ccFutureData; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryCancellationServlet.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryCancellationServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryCancellationServlet.java index 6c94344..8fd40b3 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryCancellationServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryCancellationServlet.java @@ -54,8 +54,8 @@ public class QueryCancellationServlet extends AbstractServlet { } // Retrieves the corresponding Hyracks job id. - IStatementExecutorContext runningQueries = (IStatementExecutorContext) ctx - .get(ServletConstants.RUNNING_QUERIES_ATTR); + IStatementExecutorContext runningQueries = + (IStatementExecutorContext) ctx.get(ServletConstants.RUNNING_QUERIES_ATTR); IHyracksClientConnection hcc = (IHyracksClientConnection) ctx.get(ServletConstants.HYRACKS_CONNECTION_ATTR); JobId jobId = runningQueries.getJobIdFromClientContextId(clientContextId); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java index 23a7ba7..1057a73 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java @@ -125,7 +125,7 @@ public class QueryServiceServlet extends AbstractQueryApiServlet { @Override protected void options(IServletRequest request, IServletResponse response) throws Exception { response.setHeader("Access-Control-Allow-Origin", - "http://" + hostName + ":" + appCtx.getExternalProperties().getQueryWebInterfacePort()); + "http://" + hostName + ":" + appCtx.getExternalProperties().getQueryWebInterfacePort()); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); response.setStatus(HttpResponseStatus.OK); } @@ -453,9 +453,8 @@ public class QueryServiceServlet extends AbstractQueryApiServlet { ResultDelivery delivery = parseResultDelivery(param.mode); - final ResultProperties resultProperties = param.maxResultReads == null ? - new ResultProperties(delivery) : - new ResultProperties(delivery, Long.parseLong(param.maxResultReads)); + final ResultProperties resultProperties = param.maxResultReads == null ? new ResultProperties(delivery) + : new ResultProperties(delivery, Long.parseLong(param.maxResultReads)); String handleUrl = getHandleUrl(param.host, param.path, delivery); SessionOutput sessionOutput = createSessionOutput(param, handleUrl, httpWriter); @@ -526,9 +525,8 @@ public class QueryServiceServlet extends AbstractQueryApiServlet { IStatementExecutor translator = statementExecutorFactory.create((ICcApplicationContext) appCtx, statements, sessionOutput, compilationProvider, componentProvider); execution.start(); - final IRequestParameters requestParameters = - new org.apache.asterix.app.translator.RequestParameters(getHyracksDataset(), resultProperties, stats, - null, param.clientContextID, optionalParameters); + final IRequestParameters requestParameters = new org.apache.asterix.app.translator.RequestParameters( + getHyracksDataset(), resultProperties, stats, null, param.clientContextID, optionalParameters); translator.compileAndExecute(getHyracksClientConnection(), queryCtx, requestParameters); execution.end(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java index 360c522..428a4e0 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/RestApiServlet.java @@ -209,9 +209,8 @@ public abstract class RestApiServlet extends AbstractServlet { MetadataManager.INSTANCE.init(); IStatementExecutor translator = statementExecutorFactory.create(appCtx, aqlStatements, sessionOutput, compilationProvider, componentProvider); - final IRequestParameters requestParameters = - new RequestParameters(hds, new ResultProperties(resultDelivery), new IStatementExecutor.Stats(), - null, null, null); + final IRequestParameters requestParameters = new RequestParameters(hds, + new ResultProperties(resultDelivery), new IStatementExecutor.Stats(), null, null, null); translator.compileAndExecute(hcc, null, requestParameters); } catch (AsterixException | TokenMgrError | org.apache.asterix.aqlplus.parser.TokenMgrError pe) { response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java index aace681..ec128c2 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ResultUtil.java @@ -54,9 +54,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode; public class ResultUtil { private static final Logger LOGGER = LogManager.getLogger(); - public static final List<Pair<Character, String>> HTML_ENTITIES = Collections.unmodifiableList( - Arrays.asList(Pair.of('&', "&"), Pair.of('"', """), Pair.of('<', "<"), Pair.of('>', ">"), - Pair.of('\'', "'"))); + public static final List<Pair<Character, String>> HTML_ENTITIES = + Collections.unmodifiableList(Arrays.asList(Pair.of('&', "&"), Pair.of('"', """), + Pair.of('<', "<"), Pair.of('>', ">"), Pair.of('\'', "'"))); private ResultUtil() { } @@ -208,8 +208,8 @@ public class ResultUtil { errorCode = 4; } - ObjectNode errorResp = ResultUtil - .getErrorResponse(errorCode, extractErrorMessage(e), extractErrorSummary(e), extractFullStackTrace(e)); + ObjectNode errorResp = ResultUtil.getErrorResponse(errorCode, extractErrorMessage(e), extractErrorSummary(e), + extractFullStackTrace(e)); out.write(errorResp.toString()); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java index 4ecd978..0e51953 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java @@ -94,8 +94,7 @@ public class AsterixJavaClient { public void compile(boolean optimize, boolean printRewrittenExpressions, boolean printLogicalPlan, boolean printOptimizedPlan, boolean printPhysicalOpsOnly, boolean generateBinaryRuntime, boolean printJob, - PlanFormat pformat) - throws Exception { + PlanFormat pformat) throws Exception { queryJobSpec = null; dmlJobs = null; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java index da2c99a..b8ed03f 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveNotificationHandler.java @@ -256,8 +256,7 @@ public class ActiveNotificationHandler extends SingleThreadEventProcessor<Active } } - public void resume(MetadataProvider mdProvider) - throws HyracksDataException, InterruptedException { + public void resume(MetadataProvider mdProvider) throws HyracksDataException, InterruptedException { LOGGER.log(level, "Resuming active events handler"); for (IActiveEntityEventsListener listener : entityEventListeners.values()) { LOGGER.log(level, "Resuming " + listener.getEntityId()); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java index c0ce6ec..fbf644f 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java @@ -67,8 +67,8 @@ public class FeedEventsListener extends ActiveEntityEventsListener { @Override public synchronized void remove(Dataset dataset) throws HyracksDataException { super.remove(dataset); - feedConnections.removeIf(o -> o.getDataverseName().equals(dataset.getDataverseName()) && o.getDatasetName() - .equals(dataset.getDatasetName())); + feedConnections.removeIf(o -> o.getDataverseName().equals(dataset.getDataverseName()) + && o.getDatasetName().equals(dataset.getDatasetName())); } public synchronized void addFeedConnection(FeedConnection feedConnection) { @@ -115,8 +115,8 @@ public class FeedEventsListener extends ActiveEntityEventsListener { // Construct ActiveMessage for (int i = 0; i < getLocations().getLocations().length; i++) { String intakeLocation = getLocations().getLocations()[i]; - FeedOperations - .SendStopMessageToNode(metadataProvider.getApplicationContext(), entityId, intakeLocation, i); + FeedOperations.SendStopMessageToNode(metadataProvider.getApplicationContext(), entityId, intakeLocation, + i); } eventSubscriber.sync(); } catch (Exception e) { @@ -126,8 +126,7 @@ public class FeedEventsListener extends ActiveEntityEventsListener { } @Override - protected void setRunning(MetadataProvider metadataProvider, boolean running) - throws HyracksDataException { + protected void setRunning(MetadataProvider metadataProvider, boolean running) throws HyracksDataException { // No op } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/cb9ca975/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryClassLoader.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryClassLoader.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryClassLoader.java index 711ac6d..9cf7584 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryClassLoader.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalLibraryClassLoader.java @@ -23,7 +23,8 @@ import java.net.URLClassLoader; public class ExternalLibraryClassLoader extends URLClassLoader { - private static final ClassLoader bootClassLoader = new ClassLoader(null){}; + private static final ClassLoader bootClassLoader = new ClassLoader(null) { + }; public ExternalLibraryClassLoader(URL[] urls, ClassLoader parentClassLoader) { super(urls, parentClassLoader);
