Till Westmann has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/1069
Change subject: introduce AlgebraUtils and AlgebraUtils ...................................................................... introduce AlgebraUtils and AlgebraUtils Change-Id: Ic0034bd6ba7f449a03eda48070a8de614608c2dd --- A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/util/AlgebraUtils.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/FuzzyUtils.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AddEquivalenceClassForRecordConstructorRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByHandleFieldAccessRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FeedScanCollectionToUnnest.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyEqRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForUnionRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceAutogenerateIDRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceUnnestForCollectionToSequenceRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/MetaFunctionToMetaVariableRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PullPositionalVariableFromUnnestRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveRedundantListifyRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ResolveVariableRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetClosedRecordConstructorsRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SimilarityCheckRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/typecast/StaticTypeCastUtil.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/PlanTranslationUtil.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/aql/translator/QueryTranslator.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java M asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java M asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java R asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangUtils.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java 42 files changed, 229 insertions(+), 190 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/69/1069/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/util/AlgebraUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/util/AlgebraUtils.java new file mode 100644 index 0000000..e6db5b9 --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/util/AlgebraUtils.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.asterix.algebra.util; + +import org.apache.asterix.om.base.AInt32; +import org.apache.asterix.om.base.AString; +import org.apache.asterix.om.base.IAObject; +import org.apache.asterix.om.constants.AsterixConstantValue; +import org.apache.asterix.om.types.ATypeTag; +import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag; +import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression; +import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression; +import org.apache.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue; + +public class AlgebraUtils { + + private static IAObject getAsterixConstantValue(AbstractFunctionCallExpression f, int index, + ATypeTag typeTag) { + final ILogicalExpression expr = f.getArguments().get(index).getValue(); + if (expr.getExpressionTag() != LogicalExpressionTag.CONSTANT) { + return null; + } + final IAlgebricksConstantValue acv = ((ConstantExpression) expr).getValue(); + if (!(acv instanceof AsterixConstantValue)) { + return null; + } + final IAObject iaObject = ((AsterixConstantValue) acv).getObject(); + return iaObject.getType().getTypeTag() == typeTag ? iaObject : null; + } + + public static Integer getIntArgument(AbstractFunctionCallExpression f, int index) { + final IAObject iaObject = getAsterixConstantValue(f, index, ATypeTag.INT32); + return iaObject != null ? ((AInt32) iaObject).getIntegerValue() : null; + } + + public static String getStringArgument(AbstractFunctionCallExpression f, int index) { + final IAObject iaObject = getAsterixConstantValue(f, index, ATypeTag.STRING); + return iaObject != null ? ((AString) iaObject).getStringValue() : null; + } +} diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/FuzzyUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/FuzzyUtils.java index b548218..f2b20fb 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/FuzzyUtils.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/FuzzyUtils.java @@ -20,7 +20,7 @@ import java.util.ArrayList; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlMetadataProvider; import org.apache.asterix.om.base.AFloat; import org.apache.asterix.om.base.AInt32; @@ -92,10 +92,10 @@ public static ScalarFunctionCallExpression getComparisonExpr(String simFuncName, ArrayList<Mutable<ILogicalExpression>> cmpArgs) { if (simFuncName.equals(JACCARD_FUNCTION_NAME)) { - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.GE), + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.GE), cmpArgs); } else if (simFuncName.equals(EDIT_DISTANCE_FUNCTION_NAME)) { - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.LE), + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.LE), cmpArgs); } return null; diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AddEquivalenceClassForRecordConstructorRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AddEquivalenceClassForRecordConstructorRule.java index b2271a1..5157fbf 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AddEquivalenceClassForRecordConstructorRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AddEquivalenceClassForRecordConstructorRule.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.AInt32; import org.apache.asterix.om.constants.AsterixConstantValue; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; @@ -116,7 +116,7 @@ context.putEquivalenceClassMap(assignOp, ecs); } ILogicalExpression expr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(recordVar)), new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(parameterIndex / 2))))); // Every two parameters corresponds to a field. diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByHandleFieldAccessRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByHandleFieldAccessRule.java index 677e65f..76455e3 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByHandleFieldAccessRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByHandleFieldAccessRule.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.asterix.algebra.base.AsterixOperatorAnnotations; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -85,7 +85,7 @@ LogicalVariable t = context.newVar(); AbstractFunctionCallExpression typeOf = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.TYPE_OF)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.TYPE_OF)); typeOf.getArguments().add(new MutableObject<ILogicalExpression>(x)); AssignOperator typAssign = new AssignOperator(t, new MutableObject<ILogicalExpression>(typeOf)); typAssign.getInputs().add(opUnder); @@ -93,7 +93,7 @@ // let $w := get-handle($t, path-expression) LogicalVariable w = context.newVar(); AbstractFunctionCallExpression getHandle = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_HANDLE)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_HANDLE)); getHandle.getArguments().add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(t))); // the accessed field getHandle.getArguments().add(new MutableObject<ILogicalExpression>(fce.getArguments().get(1).getValue())); @@ -102,7 +102,7 @@ // let $y := get-data(x, $w) AbstractFunctionCallExpression getData = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_DATA)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_DATA)); VariableReferenceExpression ref2 = new VariableReferenceExpression(x.getVariableReference()); getData.getArguments().add(new MutableObject<ILogicalExpression>(ref2)); getData.getArguments().add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(w))); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java index 6e8bd69..afaf96b 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java @@ -23,7 +23,7 @@ import java.util.Collections; import org.apache.asterix.algebra.base.AsterixOperatorAnnotations; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.AInt32; import org.apache.asterix.om.base.AString; import org.apache.asterix.om.base.IAObject; @@ -150,7 +150,7 @@ return null; } return new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), fce.getArguments().get(0), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), fce.getArguments().get(0), new MutableObject<ILogicalExpression>(new ConstantExpression(new AsterixConstantValue(new AInt32(k))))); } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java index 2de6bc4..dc9a791 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -273,7 +273,7 @@ List<Mutable<ILogicalExpression>> raggExprs = new ArrayList<Mutable<ILogicalExpression>>(); raggVars.add(posVar); StatefulFunctionCallExpression fce = new StatefulFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); raggExprs.add(new MutableObject<ILogicalExpression>(fce)); RunningAggregateOperator raggOp = new RunningAggregateOperator(raggVars, raggExprs); raggOp.setExecutionMode(unnest1.getExecutionMode()); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FeedScanCollectionToUnnest.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FeedScanCollectionToUnnest.java index 88ae74c..87817e5 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FeedScanCollectionToUnnest.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FeedScanCollectionToUnnest.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -64,7 +64,7 @@ ILogicalExpression unnestExpr = unnest.getExpressionRef().getValue(); if (needsScanCollection(unnestExpr, op)) { ILogicalExpression newExpr = new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), new MutableObject<ILogicalExpression>(unnestExpr)); unnest.getExpressionRef().setValue(newExpr); context.addToDontApplySet(this, op); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyEqRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyEqRule.java index 02386af..6893744 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyEqRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyEqRule.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlMetadataProvider; import org.apache.asterix.om.base.IAObject; import org.apache.asterix.om.constants.AsterixConstantValue; @@ -99,7 +99,7 @@ FunctionIdentifier simFunctionIdentifier = FuzzyUtils.getFunctionIdentifier(simFuncName); ScalarFunctionCallExpression similarityExp = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(simFunctionIdentifier), similarityArgs); + LangUtils.getFunctionInfo(simFunctionIdentifier), similarityArgs); // Add annotations from the original fuzzy-eq function. similarityExp.getAnnotations().putAll(funcExp.getAnnotations()); ArrayList<Mutable<ILogicalExpression>> cmpArgs = new ArrayList<Mutable<ILogicalExpression>>(); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java index 2b70dcf..e1597b4 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java @@ -24,7 +24,7 @@ import java.util.List; import org.apache.asterix.dataflow.data.common.TypeResolverUtil; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.typecomputer.base.TypeCastUtils; import org.apache.asterix.om.types.IAType; @@ -101,7 +101,7 @@ ILogicalExpression argExpr = argRef.getValue(); // Injects a cast call to cast the data type to the produced type of the switch-case function call. ScalarFunctionCallExpression castFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), new ArrayList<>(Collections.singletonList(new MutableObject<>(argExpr)))); TypeCastUtils.setRequiredAndInputTypes(castFunc, producedType, type); argRef.setValue(castFunc); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForUnionRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForUnionRule.java index 67ffb1a..055afc1 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForUnionRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForUnionRule.java @@ -24,7 +24,7 @@ import java.util.List; import org.apache.asterix.dataflow.data.common.TypeResolverUtil; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.typecomputer.base.TypeCastUtils; import org.apache.asterix.om.types.IAType; @@ -90,7 +90,7 @@ triple.first = childIndex == 0 ? castedVar : triple.first; triple.second = childIndex > 0 ? castedVar : triple.second; ScalarFunctionCallExpression castFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), new ArrayList<>(Collections + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), new ArrayList<>(Collections .singletonList(new MutableObject<>(new VariableReferenceExpression(varToCast))))); TypeCastUtils.setRequiredAndInputTypes(castFunc, producedType, inputType); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceAutogenerateIDRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceAutogenerateIDRule.java index fee1c96..2265b27 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceAutogenerateIDRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceAutogenerateIDRule.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlDataSource; import org.apache.asterix.metadata.declared.AqlDataSource.AqlDataSourceType; import org.apache.asterix.metadata.declared.DatasetDataSource; @@ -130,14 +130,14 @@ List<Mutable<ILogicalExpression>> args = new ArrayList<>(); args.add(new MutableObject<ILogicalExpression>(mergedRec)); AbstractFunctionCallExpression notNullFn = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CHECK_UNKNOWN), args); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CHECK_UNKNOWN), args); return notNullFn; } private AbstractFunctionCallExpression createPrimaryKeyRecordExpression(List<String> pkFieldName) { //Create lowest level of nested uuid AbstractFunctionCallExpression uuidFn = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CREATE_UUID)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CREATE_UUID)); List<Mutable<ILogicalExpression>> openRecordConsArgs = new ArrayList<>(); Mutable<ILogicalExpression> pkFieldNameExpression = new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AString(pkFieldName.get(pkFieldName.size() - 1))))); @@ -145,7 +145,7 @@ Mutable<ILogicalExpression> pkFieldValueExpression = new MutableObject<ILogicalExpression>(uuidFn); openRecordConsArgs.add(pkFieldValueExpression); AbstractFunctionCallExpression openRecFn = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), openRecordConsArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), openRecordConsArgs); //Create higher levels for (int i = pkFieldName.size() - 2; i > -1; i--) { @@ -155,7 +155,7 @@ new MutableObject<ILogicalExpression>(new ConstantExpression(new AsterixConstantValue(fieldName)))); openRecordConsArgs.add(new MutableObject<ILogicalExpression>(openRecFn)); openRecFn = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), openRecordConsArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), openRecordConsArgs); } return openRecFn; @@ -166,7 +166,7 @@ recordMergeFnArgs.add(new MutableObject<>(rec0)); recordMergeFnArgs.add(new MutableObject<>(rec1)); AbstractFunctionCallExpression recordMergeFn = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.RECORD_MERGE), recordMergeFnArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.RECORD_MERGE), recordMergeFnArgs); return recordMergeFn; } } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java index f6cd015..243975f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlDataSource; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.typecomputer.base.TypeCastUtils; @@ -211,7 +211,7 @@ /** insert an assign operator to call the function on-top-of the variable */ IAType actualType = (IAType) env.getVarType(var); AbstractFunctionCallExpression cast = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fd)); + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fd)); cast.getArguments() .add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(var))); /** enforce the required record type */ diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java index c64258f..ce0826e 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java @@ -28,7 +28,7 @@ import org.apache.asterix.common.config.DatasetConfig.DatasetType; import org.apache.asterix.common.config.DatasetConfig.IndexType; import org.apache.asterix.common.exceptions.AsterixException; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlDataSource; import org.apache.asterix.metadata.declared.AqlIndex; import org.apache.asterix.metadata.declared.AqlMetadataProvider; @@ -255,7 +255,7 @@ context.addNotToBeInlinedVar(castedRecVar); //introduce casting to enforced type AbstractFunctionCallExpression castFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE)); // The first argument is the record castFunc.getArguments() .add(new MutableObject<ILogicalExpression>(insertOp.getPayloadExpression().getValue())); @@ -490,7 +490,7 @@ LogicalVariable keyVar = context.newVar(); keyVarList.add(keyVar); AbstractFunctionCallExpression createMBR = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CREATE_MBR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CREATE_MBR)); createMBR.getArguments().add(new MutableObject<ILogicalExpression>( new VariableReferenceExpression(secondaryKeyVars.get(0)))); createMBR.getArguments().add(new MutableObject<ILogicalExpression>( @@ -525,7 +525,7 @@ LogicalVariable keyVar = context.newVar(); originalKeyVarList.add(keyVar); AbstractFunctionCallExpression createMBR = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CREATE_MBR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CREATE_MBR)); createMBR.getArguments().add(new MutableObject<ILogicalExpression>( new VariableReferenceExpression(prevSecondaryKeyVars.get(0)))); createMBR.getArguments().add(new MutableObject<ILogicalExpression>( @@ -744,20 +744,20 @@ new ConstantExpression(new AsterixConstantValue(fieldList))); // Create an expression for the nested case func = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_NESTED), varRef, fieldRef); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_NESTED), varRef, fieldRef); } else { Mutable<ILogicalExpression> fieldRef = new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AString(fields.get(0))))); // Create an expression for the open field case (By name) func = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), varRef, fieldRef); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), varRef, fieldRef); } } else { // Assumes the indexed field is in the closed portion of the type. Mutable<ILogicalExpression> indexRef = new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(pos)))); func = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), varRef, indexRef); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), varRef, indexRef); } expressions.add(new MutableObject<ILogicalExpression>(func)); LogicalVariable newVar = context.newVar(); @@ -776,10 +776,10 @@ continue; } ScalarFunctionCallExpression isUnknownFuncExpr = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_UNKOWN), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_UNKOWN), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(secondaryKeyVar))); ScalarFunctionCallExpression notFuncExpr = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), new MutableObject<ILogicalExpression>(isUnknownFuncExpr)); filterExpressions.add(new MutableObject<ILogicalExpression>(notFuncExpr)); } @@ -791,7 +791,7 @@ if (filterExpressions.size() > 1) { // Create a conjunctive condition. filterExpression = new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.AND), filterExpressions)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.AND), filterExpressions)); } else { filterExpression = filterExpressions.get(0); } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceUnnestForCollectionToSequenceRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceUnnestForCollectionToSequenceRule.java index 6647152..7635108 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceUnnestForCollectionToSequenceRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceUnnestForCollectionToSequenceRule.java @@ -20,7 +20,7 @@ import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.types.IAType; import org.apache.commons.lang3.mutable.Mutable; @@ -88,7 +88,7 @@ @SuppressWarnings("unchecked") UnnestOperator unnest = new UnnestOperator(var, new MutableObject<ILogicalExpression>(new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), new MutableObject<ILogicalExpression>(argExpr)))); unnest.getInputs().addAll(assign.getInputs()); opRef.setValue(unnest); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/MetaFunctionToMetaVariableRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/MetaFunctionToMetaVariableRule.java index 605ddb4..58d1ae0 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/MetaFunctionToMetaVariableRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/MetaFunctionToMetaVariableRule.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlDataSource; import org.apache.asterix.metadata.declared.AqlDataSource.AqlDataSourceType; import org.apache.asterix.metadata.declared.FeedDataSource; @@ -285,7 +285,7 @@ default: throw new AlgebricksException("Unsupported field name type " + fieldNameType.getTypeTag()); } - IFunctionInfo finfoAccess = FunctionUtil.getFunctionInfo(functionIdentifier); + IFunctionInfo finfoAccess = LangUtils.getFunctionInfo(functionIdentifier); ArrayList<Mutable<ILogicalExpression>> argExprs = new ArrayList<Mutable<ILogicalExpression>>(2); argExprs.add(new MutableObject<>(new VariableReferenceExpression(metaVar))); argExprs.add(new MutableObject<>(fieldNameExpression)); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PullPositionalVariableFromUnnestRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PullPositionalVariableFromUnnestRule.java index 54d4e61..a607ebf 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PullPositionalVariableFromUnnestRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PullPositionalVariableFromUnnestRule.java @@ -20,7 +20,7 @@ import java.util.ArrayList; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -62,7 +62,7 @@ rOpVars.add(p); ArrayList<Mutable<ILogicalExpression>> rOpExprList = new ArrayList<Mutable<ILogicalExpression>>(); StatefulFunctionCallExpression fce = new StatefulFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); rOpExprList.add(new MutableObject<ILogicalExpression>(fce)); RunningAggregateOperator rOp = new RunningAggregateOperator(rOpVars, rOpExprList); rOp.setExecutionMode(unnest.getExecutionMode()); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveRedundantListifyRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveRedundantListifyRule.java index 29d8532..b5935f8 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveRedundantListifyRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveRedundantListifyRule.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -220,7 +220,7 @@ raggVars.add(posVar); List<Mutable<ILogicalExpression>> rAggExprs = new ArrayList<>(1); StatefulFunctionCallExpression tidFun = new StatefulFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.TID), UnpartitionedPropertyComputer.INSTANCE); rAggExprs.add(new MutableObject<ILogicalExpression>(tidFun)); RunningAggregateOperator rAgg = new RunningAggregateOperator(raggVars, rAggExprs); rAgg.getInputs().add(new MutableObject<ILogicalOperator>(assign)); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java index 8aefd1a..35bf5e9 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java @@ -24,7 +24,7 @@ import org.apache.asterix.algebra.operators.CommitOperator; import org.apache.asterix.algebra.operators.physical.CommitPOperator; import org.apache.asterix.common.transactions.JobId; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlMetadataProvider; import org.apache.asterix.metadata.declared.DatasetDataSource; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; @@ -101,13 +101,13 @@ //we need to add a function that checks if previous record was found upsertVar = context.newVar(); AbstractFunctionCallExpression orFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OR)); // is new value missing? -> this means that the expected operation is delete AbstractFunctionCallExpression isNewMissingFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING)); isNewMissingFunc.getArguments().add(insertDeleteUpsertOperator.getPayloadExpression()); AbstractFunctionCallExpression isPrevMissingFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING)); // argument is the previous record isPrevMissingFunc.getArguments().add(new MutableObject<ILogicalExpression>( new VariableReferenceExpression(insertDeleteUpsertOperator.getPrevRecordVar()))); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ResolveVariableRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ResolveVariableRule.java index d407a7b..1b2b9e9 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ResolveVariableRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ResolveVariableRule.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlMetadataProvider; import org.apache.asterix.om.base.AString; import org.apache.asterix.om.constants.AsterixConstantValue; @@ -154,14 +154,14 @@ "Cannot resolve ambiguous alias (variable) reference for identifier " + unresolvedVarName); } else if (hasMatchedDataset) { // Rewrites the "resolve" function to a "dataset" function and only keep the dataset name argument. - func.setFunctionInfo(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.DATASET)); + func.setFunctionInfo(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.DATASET)); Mutable<ILogicalExpression> datasetNameExpression = func.getArguments().get(0); func.getArguments().clear(); func.getArguments().add(datasetNameExpression); } else if (fullyQualifiedDatasetPathCandidateFromParent.first) { // Rewrites the parent "field-access" function to a "dataset" function. AbstractFunctionCallExpression parentFunc = (AbstractFunctionCallExpression) parentFuncRef.getValue(); - parentFunc.setFunctionInfo(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.DATASET)); + parentFunc.setFunctionInfo(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.DATASET)); parentFunc.getArguments().clear(); parentFunc.getArguments() .add(new MutableObject<ILogicalExpression>(new ConstantExpression( @@ -199,7 +199,7 @@ args.add(new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AString(fieldName))))); newFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), args); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), args); firstArgRef = new MutableObject<>(newFunc); } funcRef.setValue(newFunc); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetClosedRecordConstructorsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetClosedRecordConstructorsRule.java index c57cdd8..d952894 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetClosedRecordConstructorsRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetClosedRecordConstructorsRule.java @@ -19,7 +19,7 @@ package org.apache.asterix.optimizer.rules; import org.apache.asterix.common.config.GlobalConfig; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.om.typecomputer.base.TypeCastUtils; import org.apache.asterix.om.types.ARecordType; @@ -131,7 +131,7 @@ } if (allClosed) { expr.setFunctionInfo( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CLOSED_RECORD_CONSTRUCTOR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CLOSED_RECORD_CONSTRUCTOR)); GlobalConfig.ASTERIX_LOGGER.finest("Switching to CLOSED record constructor in " + expr + ".\n"); changed = true; } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SimilarityCheckRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SimilarityCheckRule.java index 2a761e9..b7de1da 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SimilarityCheckRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SimilarityCheckRule.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.asterix.common.exceptions.AsterixException; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.ADouble; import org.apache.asterix.om.base.AFloat; import org.apache.asterix.om.base.AInt32; @@ -198,7 +198,7 @@ selectGetItemArgs.add(new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(0))))); ILogicalExpression selectGetItemExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), selectGetItemArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), selectGetItemArgs); // Replace the old similarity function call with the new getItemExpr. expRef.setValue(selectGetItemExpr); @@ -210,7 +210,7 @@ assignGetItemArgs.add(new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(1))))); ILogicalExpression assignGetItemExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), assignGetItemArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), assignGetItemArgs); // Replace the original assign expr with the get-item expr. simFuncExprRef.setValue(assignGetItemExpr); @@ -238,7 +238,7 @@ getItemArgs.add(new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(0))))); ILogicalExpression getItemExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), getItemArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM), getItemArgs); // Replace the old similarity function call with the new getItemExpr. expRef.setValue(getItemExpr); return true; @@ -280,7 +280,7 @@ similarityArgs.add(new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(jaccThresh)))); simCheckFuncExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SIMILARITY_JACCARD_CHECK), similarityArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SIMILARITY_JACCARD_CHECK), similarityArgs); } // Look for edit-distance function call, and LE or LT. @@ -308,7 +308,7 @@ similarityArgs.add( new MutableObject<ILogicalExpression>(new ConstantExpression(new AsterixConstantValue(edThresh)))); simCheckFuncExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_CHECK), similarityArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_CHECK), similarityArgs); } // Preserve all annotations. if (simCheckFuncExpr != null) { diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java index d623830..9dfb53b 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java @@ -18,6 +18,8 @@ */ package org.apache.asterix.optimizer.rules; +import static org.apache.asterix.algebra.util.AlgebraUtils.getStringArgument; + import java.util.ArrayList; import java.util.List; @@ -296,24 +298,5 @@ datasetName = datasetNameComponents[1]; } return new Pair<String, String>(dataverseName, datasetName); - } - - private String getStringArgument(AbstractFunctionCallExpression f, int index) { - - ILogicalExpression expr = f.getArguments().get(index).getValue(); - if (expr.getExpressionTag() != LogicalExpressionTag.CONSTANT) { - return null; - } - ConstantExpression ce = (ConstantExpression) expr; - IAlgebricksConstantValue acv = ce.getValue(); - if (!(acv instanceof AsterixConstantValue)) { - return null; - } - AsterixConstantValue acv2 = (AsterixConstantValue) acv; - if (acv2.getObject().getType().getTypeTag() != ATypeTag.STRING) { - return null; - } - String argument = ((AString) acv2.getObject()).getStringValue(); - return argument; } } \ No newline at end of file diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java index db2c627..fecdb22 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java @@ -29,7 +29,7 @@ import org.apache.asterix.common.config.DatasetConfig.IndexType; import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.external.indexing.IndexingConstants; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlSourceId; import org.apache.asterix.metadata.entities.Dataset; import org.apache.asterix.metadata.entities.ExternalDatasetDetails; @@ -412,7 +412,7 @@ appendSecondaryIndexTypes(dataset, recordType, metaRecordType, index, outputPrimaryKeysOnly, secondaryIndexOutputTypes); // An index search is expressed as an unnest over an index-search function. - IFunctionInfo secondaryIndexSearch = FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); + IFunctionInfo secondaryIndexSearch = LangUtils.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); UnnestingFunctionCallExpression secondaryIndexSearchFunc = new UnnestingFunctionCallExpression( secondaryIndexSearch, secondaryIndexFuncArgs); secondaryIndexSearchFunc.setReturnsUniqueValues(true); @@ -485,7 +485,7 @@ primaryIndexUnnestVars.addAll(dataSourceOp.getVariables()); appendPrimaryIndexTypes(dataset, recordType, metaRecordType, primaryIndexOutputTypes); // An index search is expressed as an unnest over an index-search function. - IFunctionInfo primaryIndexSearch = FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); + IFunctionInfo primaryIndexSearch = LangUtils.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); AbstractFunctionCallExpression primaryIndexSearchFunc = new ScalarFunctionCallExpression(primaryIndexSearch, primaryIndexFuncArgs); // This is the operator that jobgen will be looking for. It contains an unnest function that has all necessary arguments to determine @@ -636,7 +636,7 @@ externalUnnestVars.addAll(dataSourceOp.getVariables()); appendExternalRecTypes(dataset, recordType, outputTypes); - IFunctionInfo externalLookup = FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.EXTERNAL_LOOKUP); + IFunctionInfo externalLookup = LangUtils.getFunctionInfo(AsterixBuiltinFunctions.EXTERNAL_LOOKUP); AbstractFunctionCallExpression externalLookupFunc = new ScalarFunctionCallExpression(externalLookup, externalLookupArgs); UnnestMapOperator unnestOp = new UnnestMapOperator(externalUnnestVars, diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java index 4dc7bf4..e6b165a 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java @@ -30,7 +30,7 @@ import org.apache.asterix.common.annotations.SkipSecondaryIndexSearchExpressionAnnotation; import org.apache.asterix.common.config.DatasetConfig.DatasetType; import org.apache.asterix.common.config.DatasetConfig.IndexType; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.entities.Dataset; import org.apache.asterix.metadata.entities.Index; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; @@ -541,7 +541,7 @@ jobGenParams.writeToFuncArgs(primaryIndexFuncArgs); // An index search is expressed as an unnest-map over an // index-search function. - IFunctionInfo primaryIndexSearch = FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); + IFunctionInfo primaryIndexSearch = LangUtils.getFunctionInfo(AsterixBuiltinFunctions.INDEX_SEARCH); UnnestingFunctionCallExpression primaryIndexSearchFunc = new UnnestingFunctionCallExpression( primaryIndexSearch, primaryIndexFuncArgs); primaryIndexSearchFunc.setReturnsUniqueValues(true); @@ -698,7 +698,7 @@ private ILogicalExpression createSelectCondition(List<Mutable<ILogicalExpression>> predList) { if (predList.size() > 1) { - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.AND); + IFunctionInfo finfo = LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.AND); return new ScalarFunctionCallExpression(finfo, predList); } return predList.get(0).getValue(); 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 58cc32e..cb89736 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 @@ -29,7 +29,7 @@ import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.dataflow.data.common.AqlExpressionTypeComputer; import org.apache.asterix.formats.nontagged.AqlBinaryTokenizerFactoryProvider; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.entities.Dataset; import org.apache.asterix.metadata.entities.Index; import org.apache.asterix.om.base.AFloat; @@ -653,14 +653,14 @@ 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); + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.EQ), args); eqExprs.add(new MutableObject<ILogicalExpression>(eqFunc)); } if (eqExprs.size() == 1) { return eqExprs.get(0); } else { ILogicalExpression andFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.AND), eqExprs); + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.AND), eqExprs); return new MutableObject<ILogicalExpression>(andFunc); } } @@ -742,7 +742,7 @@ isFilterableArgs.add( new MutableObject<ILogicalExpression>(AccessMethodUtils.createBooleanConstant(usePrePost))); isFilterableExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_STRING_IS_FILTERABLE), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_STRING_IS_FILTERABLE), isFilterableArgs); break; } @@ -754,7 +754,7 @@ // Since we are optimizing a join, the similarity threshold should be the only constant in the optimizable function expression. isFilterableArgs.add(new MutableObject<ILogicalExpression>(optFuncExpr.getConstantAtRuntimeExpr(0))); isFilterableExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_LIST_IS_FILTERABLE), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.EDIT_DISTANCE_LIST_IS_FILTERABLE), isFilterableArgs); break; } @@ -773,7 +773,7 @@ List<Mutable<ILogicalExpression>> isNotFilterableArgs = new ArrayList<Mutable<ILogicalExpression>>(); isNotFilterableArgs.add(new MutableObject<ILogicalExpression>(isFilterableExpr)); ILogicalExpression isNotFilterableExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), isNotFilterableArgs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), isNotFilterableArgs); SelectOperator isNotFilterableSelectOp = new SelectOperator( new MutableObject<ILogicalExpression>(isNotFilterableExpr), false, null); isNotFilterableSelectOp.getInputs().add(new MutableObject<ILogicalOperator>(inputOp)); 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 eba2d33..82356c5 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 @@ -24,7 +24,7 @@ import org.apache.asterix.common.annotations.SkipSecondaryIndexSearchExpressionAnnotation; import org.apache.asterix.common.config.DatasetConfig.DatasetType; import org.apache.asterix.common.config.DatasetConfig.IndexType; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.entities.Dataset; import org.apache.asterix.metadata.entities.Index; import org.apache.asterix.om.base.AInt32; @@ -211,7 +211,7 @@ 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(AsterixBuiltinFunctions.CREATE_MBR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CREATE_MBR)); // Spatial object is the constant from the func expr we are optimizing. createMBR.getArguments().add(new MutableObject<ILogicalExpression>(searchKeyExpr)); // The number of dimensions. 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 b061066..af04edc 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 @@ -28,7 +28,7 @@ import java.util.Map.Entry; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.AString; import org.apache.asterix.om.constants.AsterixConstantValue; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; @@ -295,7 +295,7 @@ LogicalVariable recordVar = context.newVar(); Mutable<ILogicalExpression> recordExprRef = new MutableObject<ILogicalExpression>( new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), recordConstructorArgs)); AssignOperator assignOp = new AssignOperator(recordVar, recordExprRef); return new Pair<ILogicalOperator, LogicalVariable>(assignOp, recordVar); @@ -326,7 +326,7 @@ // Creates an aggregation function expression. aggArgList.add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(recordVar))); ILogicalExpression aggExpr = new AggregateFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.LISTIFY), false, aggArgList); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.LISTIFY), false, aggArgList); aggExprList.add(new MutableObject<ILogicalExpression>(aggExpr)); AggregateOperator aggOp = new AggregateOperator(aggVarList, aggExprList); @@ -369,7 +369,7 @@ unnestArgList.add(unnestArg); Mutable<ILogicalExpression> unnestExpr = new MutableObject<ILogicalExpression>( new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), unnestArgList)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), unnestArgList)); ILogicalOperator unnestOp = new UnnestOperator(unnestVar, unnestExpr); return new Pair<ILogicalOperator, LogicalVariable>(unnestOp, unnestVar); } @@ -390,7 +390,7 @@ argRefs.add(new MutableObject<ILogicalExpression>(new ConstantExpression( new AsterixConstantValue(new AString(Integer.toString(inputLiveVar.getId())))))); fieldAccessExprs.add(new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), argRefs))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME), argRefs))); // Updates variable mapping for ancestor operators. updateInputToOutputVarMapping(inputLiveVar, newVar, false); } 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 1881461..c05c0cf 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 @@ -25,7 +25,7 @@ import java.util.Map; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.asterix.optimizer.rules.util.EquivalenceClassUtils; import org.apache.commons.lang3.mutable.Mutable; @@ -376,12 +376,12 @@ LogicalVariable rightVar = varMap.get(liveVar); arguments.add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(rightVar))); ILogicalExpression expr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.EQ), arguments); + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.EQ), arguments); joinPredicates.add(new MutableObject<ILogicalExpression>(expr)); } ILogicalExpression joinExpr = joinPredicates.size() > 1 - ? new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.AND), + ? new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.AND), joinPredicates) : joinPredicates.size() > 0 ? joinPredicates.get(0).getValue() : ConstantExpression.TRUE; LeftOuterJoinOperator leftOuterJoinOp = new LeftOuterJoinOperator( @@ -432,10 +432,10 @@ args.add(filterVarExpr); List<Mutable<ILogicalExpression>> argsForNotFunction = new ArrayList<Mutable<ILogicalExpression>>(); argsForNotFunction.add(new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING), args))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING), args))); SelectOperator selectOp = new SelectOperator( new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), argsForNotFunction)), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), argsForNotFunction)), false, null); currentOpRef.getValue().getInputs().add(new MutableObject<ILogicalOperator>(selectOp)); @@ -525,13 +525,13 @@ args.add(filterVarExpr); List<Mutable<ILogicalExpression>> argsForNotFunction = new ArrayList<Mutable<ILogicalExpression>>(); argsForNotFunction.add(new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING), args))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_MISSING), args))); nullCheckExprRefs.add(new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), argsForNotFunction))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), argsForNotFunction))); } Mutable<ILogicalExpression> selectExprRef = nullCheckExprRefs.size() > 1 ? new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.AND), nullCheckExprRefs)) + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.AND), nullCheckExprRefs)) : nullCheckExprRefs.get(0); SelectOperator selectOp = new SelectOperator(selectExprRef, false, null); topJoinRef.setValue(selectOp); 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 80cdb21..0e1641d 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 @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; @@ -140,7 +140,7 @@ private ILogicalExpression getScalarExpr(FunctionIdentifier func, ILogicalExpression interval) { List<Mutable<ILogicalExpression>> intervalArg = new ArrayList<Mutable<ILogicalExpression>>(); intervalArg.add(new MutableObject<ILogicalExpression>(interval)); - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(func), intervalArg); + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(func), intervalArg); } private ILogicalExpression getScalarExpr(FunctionIdentifier func, ILogicalExpression interval1, @@ -148,7 +148,7 @@ List<Mutable<ILogicalExpression>> intervalArg = new ArrayList<Mutable<ILogicalExpression>>(); intervalArg.add(new MutableObject<ILogicalExpression>(interval1)); intervalArg.add(new MutableObject<ILogicalExpression>(interval2)); - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(func), intervalArg); + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(func), intervalArg); } } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/typecast/StaticTypeCastUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/typecast/StaticTypeCastUtil.java index eac35cd..9cd5dbb 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/typecast/StaticTypeCastUtil.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/typecast/StaticTypeCastUtil.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.Set; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.ANull; import org.apache.asterix.om.base.AString; import org.apache.asterix.om.constants.AsterixConstantValue; @@ -332,7 +332,7 @@ matched = true; ScalarFunctionCallExpression notNullFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CHECK_UNKNOWN)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CHECK_UNKNOWN)); notNullFunc.getArguments().add(new MutableObject<ILogicalExpression>(arg)); //wrap the not null function to the original function func.getArguments().get(2 * i + 1).setValue(notNullFunc); @@ -471,7 +471,7 @@ // do not enforce nested type in the case of no-used variables if (!inputFieldType.equals(reqFieldType) && !parameterVars.isEmpty()) { //inject dynamic type casting - injectCastFunction(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), reqFieldType, + injectCastFunction(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CAST_TYPE), reqFieldType, inputFieldType, expRef, argExpr); castInjected = true; } 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 0ec12e5..f21131d 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 @@ -28,7 +28,7 @@ import java.util.Set; import org.apache.asterix.common.config.DatasetConfig.DatasetType; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.entities.Dataset; import org.apache.asterix.metadata.entities.InternalDatasetDetails; import org.apache.asterix.om.base.AInt32; @@ -118,7 +118,7 @@ } LogicalVariable var = indexSearchVars.get(pkIndex); ILogicalExpression expr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(referredRecordVar)), new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(fieldIndexInRecord))))); @@ -175,7 +175,7 @@ LogicalVariable assignVar = context.newVar(); ILogicalOperator assignOp = new AssignOperator(assignVar, new MutableObject<ILogicalExpression>(new StatefulFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CREATE_QUERY_UID), null))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CREATE_QUERY_UID), null))); OperatorPropertiesUtil.markMovable(assignOp, !usedForCorrelationJoin); assignOp.getInputs().add(new MutableObject<ILogicalOperator>(operator)); context.addPrimaryKey(new FunctionalDependency(Collections.singletonList(assignVar), 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 39648d1..a9bf1f2 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 @@ -100,7 +100,7 @@ import org.apache.asterix.lang.common.struct.OperatorType; import org.apache.asterix.lang.common.struct.QuantifiedPair; import org.apache.asterix.lang.common.struct.UnaryExprType; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.declared.AqlMetadataProvider; import org.apache.asterix.metadata.declared.FileSplitDataSink; import org.apache.asterix.metadata.declared.FileSplitSinkId; @@ -412,7 +412,7 @@ Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = aqlExprToAlgExpression(fa.getExpr(), tupSource); LogicalVariable v = context.newVar(); AbstractFunctionCallExpression fldAccess = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME)); fldAccess.getArguments().add(new MutableObject<ILogicalExpression>(p.first)); ILogicalExpression faExpr = new ConstantExpression(new AsterixConstantValue(new AString(fa.getIdent().getValue()))); @@ -431,12 +431,12 @@ AbstractFunctionCallExpression f; if (ia.isAny()) { f = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.ANY_COLLECTION_MEMBER)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.ANY_COLLECTION_MEMBER)); f.getArguments().add(new MutableObject<ILogicalExpression>(p.first)); } else { Pair<ILogicalExpression, Mutable<ILogicalOperator>> indexPair = aqlExprToAlgExpression(ia.getIndexExpr(), tupSource); - f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM)); + f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM)); f.getArguments().add(new MutableObject<ILogicalExpression>(p.first)); f.getArguments().add(new MutableObject<ILogicalExpression>(indexPair.first)); } @@ -496,11 +496,11 @@ f = AsterixBuiltinFunctions.makeAggregateFunctionExpression(fi, args); } else if (AsterixBuiltinFunctions.isBuiltinUnnestingFunction(fi)) { UnnestingFunctionCallExpression ufce = - new UnnestingFunctionCallExpression(FunctionUtil.getFunctionInfo(fi), args); + new UnnestingFunctionCallExpression(LangUtils.getFunctionInfo(fi), args); ufce.setReturnsUniqueValues(AsterixBuiltinFunctions.returnsUniqueValues(fi)); f = ufce; } else { - f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fi), args); + f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fi), args); } AssignOperator op = new AssignOperator(v, new MutableObject<ILogicalExpression>(f)); if (topOp != null) { @@ -597,7 +597,7 @@ Pair<ILogicalOperator, LogicalVariable> pElse = ifexpr.getElseExpr().accept(this, nestedSource); AbstractFunctionCallExpression notVarCond = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(varCond))); SelectOperator sel2 = new SelectOperator(new MutableObject<ILogicalExpression>(notVarCond), false, null); sel2.getInputs().add(new MutableObject<ILogicalOperator>(pElse.first)); @@ -612,7 +612,7 @@ LogicalVariable resV = context.newVar(); AbstractFunctionCallExpression concatNonNull = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CONCAT_NON_NULL), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CONCAT_NON_NULL), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(pThen.second)), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(pElse.second))); AssignOperator a = new AssignOperator(resV, new MutableObject<ILogicalExpression>(concatNonNull)); @@ -777,7 +777,7 @@ List<Mutable<ILogicalExpression>> satExprList = new ArrayList<Mutable<ILogicalExpression>>(1); satExprList.add(new MutableObject<ILogicalExpression>(eo2.first)); s = new SelectOperator(new MutableObject<ILogicalExpression>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), satExprList)), false, null); + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), satExprList)), false, null); s.getInputs().add(eo2.second); fAgg = AsterixBuiltinFunctions.makeAggregateFunctionExpression(AsterixBuiltinFunctions.EMPTY_STREAM, new ArrayList<Mutable<ILogicalExpression>>()); @@ -799,7 +799,7 @@ public Pair<ILogicalOperator, LogicalVariable> visit(RecordConstructor rc, Mutable<ILogicalOperator> tupSource) throws AsterixException { AbstractFunctionCallExpression f = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR)); LogicalVariable v1 = context.newVar(); AssignOperator a = new AssignOperator(v1, new MutableObject<ILogicalExpression>(f)); Mutable<ILogicalOperator> topOp = tupSource; @@ -820,7 +820,7 @@ throws AsterixException { FunctionIdentifier fid = (lc.getType() == Type.ORDERED_LIST_CONSTRUCTOR) ? AsterixBuiltinFunctions.ORDERED_LIST_CONSTRUCTOR : AsterixBuiltinFunctions.UNORDERED_LIST_CONSTRUCTOR; - AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid)); + AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fid)); LogicalVariable v1 = context.newVar(); AssignOperator a = new AssignOperator(v1, new MutableObject<ILogicalExpression>(f)); Mutable<ILogicalOperator> topOp = tupSource; @@ -844,7 +844,7 @@ a = new AssignOperator(v1, new MutableObject<ILogicalExpression>(eo.first)); } else { AbstractFunctionCallExpression m = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NUMERIC_UNARY_MINUS)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NUMERIC_UNARY_MINUS)); m.getArguments().add(new MutableObject<ILogicalExpression>(eo.first)); a = new AssignOperator(v1, new MutableObject<ILogicalExpression>(m)); } @@ -959,7 +959,7 @@ private AbstractFunctionCallExpression createComparisonExpression(OperatorType t) { FunctionIdentifier fi = operatorTypeToFunctionIdentifier(t); - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi); + IFunctionInfo finfo = LangUtils.getFunctionInfo(fi); return new ScalarFunctionCallExpression(finfo); } @@ -1039,7 +1039,7 @@ throw new NotImplementedException("Operator " + t + " is not yet implemented"); } } - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid)); + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fid)); } private static boolean hasOnlyChild(ILogicalOperator parent, Mutable<ILogicalOperator> childCandidate) { @@ -1315,7 +1315,7 @@ switch (expr.getExpressionTag()) { case VARIABLE: { return new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), new MutableObject<ILogicalExpression>(expr)); } case FUNCTION_CALL: { @@ -1324,7 +1324,7 @@ return expr; } else { return new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), new MutableObject<ILogicalExpression>(expr)); } } 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 5081587..0d26f87 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 @@ -40,7 +40,6 @@ import org.apache.asterix.lang.common.base.Expression; import org.apache.asterix.lang.common.base.Expression.Kind; import org.apache.asterix.lang.common.base.ILangExpression; -import org.apache.asterix.lang.common.base.ILangExpression; import org.apache.asterix.lang.common.base.Statement; import org.apache.asterix.lang.common.clause.GroupbyClause; import org.apache.asterix.lang.common.clause.LetClause; @@ -69,7 +68,7 @@ import org.apache.asterix.lang.common.struct.Identifier; import org.apache.asterix.lang.common.struct.OperatorType; import org.apache.asterix.lang.common.struct.QuantifiedPair; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.common.visitor.base.AbstractQueryExpressionVisitor; import org.apache.asterix.metadata.MetadataException; import org.apache.asterix.metadata.MetadataManager; @@ -323,7 +322,7 @@ /** 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( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.COLLECTION_TO_SEQUENCE), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.COLLECTION_TO_SEQUENCE), new MutableObject<>(new VariableReferenceExpression(resVar))))); assignCollectionToSequence.getInputs().add(new MutableObject<>(project.getInputs().get(0).getValue())); project.getInputs().get(0).setValue(assignCollectionToSequence); @@ -456,7 +455,7 @@ metaAndKeysExprs = new ArrayList<>(); if (targetDatasource.getDataset().hasMetaPart()) { // add the meta function - IFunctionInfo finfoMeta = FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.META); + IFunctionInfo finfoMeta = LangUtils.getFunctionInfo(AsterixBuiltinFunctions.META); ScalarFunctionCallExpression metaFunction = new ScalarFunctionCallExpression(finfoMeta, new MutableObject<>(new VariableReferenceExpression(unnestVar))); // create assign for the meta part @@ -616,7 +615,7 @@ Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = langExprToAlgExpression(fa.getExpr(), tupSource); LogicalVariable v = context.newVar(); AbstractFunctionCallExpression fldAccess = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME)); fldAccess.getArguments().add(new MutableObject<>(p.first)); ILogicalExpression faExpr = new ConstantExpression(new AsterixConstantValue(new AString(fa.getIdent().getValue()))); @@ -634,12 +633,12 @@ AbstractFunctionCallExpression f; if (ia.isAny()) { f = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.ANY_COLLECTION_MEMBER)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.ANY_COLLECTION_MEMBER)); f.getArguments().add(new MutableObject<>(p.first)); } else { Pair<ILogicalExpression, Mutable<ILogicalOperator>> indexPair = langExprToAlgExpression(ia.getIndexExpr(), tupSource); - f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM)); + f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.GET_ITEM)); f.getArguments().add(new MutableObject<>(p.first)); f.getArguments().add(new MutableObject<>(indexPair.first)); } @@ -717,7 +716,7 @@ .getExternalFunctionInfo(metadataProvider.getMetadataTxnContext(), function); f = new ScalarFunctionCallExpression(finfo, args); } else if (function.getLanguage().equalsIgnoreCase(Function.LANGUAGE_AQL)) { - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(signature); + IFunctionInfo finfo = LangUtils.getFunctionInfo(signature); f = new ScalarFunctionCallExpression(finfo, args); } else { throw new MetadataException( @@ -746,11 +745,11 @@ f = AsterixBuiltinFunctions.makeAggregateFunctionExpression(fi, args); } else if (AsterixBuiltinFunctions.isBuiltinUnnestingFunction(fi)) { UnnestingFunctionCallExpression ufce = - new UnnestingFunctionCallExpression(FunctionUtil.getFunctionInfo(fi), args); + new UnnestingFunctionCallExpression(LangUtils.getFunctionInfo(fi), args); ufce.setReturnsUniqueValues(AsterixBuiltinFunctions.returnsUniqueValues(fi)); f = ufce; } else { - f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fi), args); + f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fi), args); } return f; } @@ -779,7 +778,7 @@ LogicalVariable groupVar = context.newVar(gc.getGroupVar()); AssignOperator groupVarAssignOp = new AssignOperator(groupVar, new MutableObject<>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR), groupRecordConstructorArgList))); groupVarAssignOp.getInputs().add(topOp); topOp = new MutableObject<>(groupVarAssignOp); @@ -875,7 +874,7 @@ // Creates a subplan for the "else" branch. AbstractFunctionCallExpression notVarCond = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), Collections.singletonList(generateAndNotIsUnknownWrap(new VariableReferenceExpression(varCond)))); Pair<ILogicalOperator, LogicalVariable> opAndVarForElse = constructSubplanOperatorForBranch( opAndVarForThen.first, new MutableObject<>(notVarCond), ifexpr.getElseExpr()); @@ -888,7 +887,7 @@ arguments.add(new MutableObject<>(new VariableReferenceExpression(opAndVarForThen.second))); arguments.add(new MutableObject<>(new VariableReferenceExpression(opAndVarForElse.second))); AbstractFunctionCallExpression swithCaseExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SWITCH_CASE), arguments); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SWITCH_CASE), arguments); AssignOperator assignOp = new AssignOperator(selectVar, new MutableObject<>(swithCaseExpr)); assignOp.getInputs().add(new MutableObject<>(opAndVarForElse.first)); @@ -896,7 +895,7 @@ LogicalVariable unnestVar = context.newVar(); UnnestOperator unnestOp = new UnnestOperator(unnestVar, new MutableObject<>(new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), Collections + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), Collections .singletonList(new MutableObject<>(new VariableReferenceExpression(selectVar)))))); unnestOp.getInputs().add(new MutableObject<>(assignOp)); @@ -1071,7 +1070,7 @@ List<Mutable<ILogicalExpression>> satExprList = new ArrayList<>(1); satExprList.add(new MutableObject<>(eo2.first)); s = new SelectOperator(new MutableObject<>(new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), satExprList)), false, null); + LangUtils.getFunctionInfo(AlgebricksBuiltinFunctions.NOT), satExprList)), false, null); s.getInputs().add(eo2.second); fAgg = AsterixBuiltinFunctions.makeAggregateFunctionExpression(AsterixBuiltinFunctions.EMPTY_STREAM, new ArrayList<>()); @@ -1093,7 +1092,7 @@ public Pair<ILogicalOperator, LogicalVariable> visit(RecordConstructor rc, Mutable<ILogicalOperator> tupSource) throws AsterixException { AbstractFunctionCallExpression f = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OPEN_RECORD_CONSTRUCTOR)); LogicalVariable v1 = context.newVar(); AssignOperator a = new AssignOperator(v1, new MutableObject<>(f)); Mutable<ILogicalOperator> topOp = tupSource; @@ -1114,7 +1113,7 @@ throws AsterixException { FunctionIdentifier fid = (lc.getType() == Type.ORDERED_LIST_CONSTRUCTOR) ? AsterixBuiltinFunctions.ORDERED_LIST_CONSTRUCTOR : AsterixBuiltinFunctions.UNORDERED_LIST_CONSTRUCTOR; - AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid)); + AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fid)); LogicalVariable v1 = context.newVar(); AssignOperator a = new AssignOperator(v1, new MutableObject<>(f)); Mutable<ILogicalOperator> topOp = tupSource; @@ -1140,7 +1139,7 @@ break; case NEGATIVE: AbstractFunctionCallExpression m = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NUMERIC_UNARY_MINUS)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NUMERIC_UNARY_MINUS)); m.getArguments().add(new MutableObject<>(eo.first)); a = new AssignOperator(v1, new MutableObject<>(m)); break; @@ -1195,7 +1194,7 @@ protected AbstractFunctionCallExpression createComparisonExpression(OperatorType t) { FunctionIdentifier fi = operatorTypeToFunctionIdentifier(t); - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi); + IFunctionInfo finfo = LangUtils.getFunctionInfo(fi); return new ScalarFunctionCallExpression(finfo); } @@ -1262,7 +1261,7 @@ default: throw new NotImplementedException("Operator " + t + " is not yet implemented"); } - return new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid)); + return new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(fid)); } private static boolean hasOnlyChild(ILogicalOperator parent, Mutable<ILogicalOperator> childCandidate) { @@ -1390,12 +1389,12 @@ case CONSTANT: case VARIABLE: return new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), argRefs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), argRefs); case FUNCTION_CALL: AbstractFunctionCallExpression fce = (AbstractFunctionCallExpression) expr; return (fce.getKind() == FunctionKind.UNNEST) ? expr : new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), argRefs); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), argRefs); default: return expr; } @@ -1541,7 +1540,7 @@ LogicalVariable branchVar = context.newVar(); AggregateOperator aggOp = new AggregateOperator(Collections.singletonList(branchVar), Collections.singletonList(new MutableObject<>(new AggregateFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.LISTIFY), false, Collections.singletonList( + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.LISTIFY), false, Collections.singletonList( new MutableObject<>(new VariableReferenceExpression(pBranch.second))))))); aggOp.getInputs().add(new MutableObject<>(pBranch.first)); ILogicalPlan planForBranch = new ALogicalPlanImpl(new MutableObject<>(aggOp)); @@ -1553,10 +1552,10 @@ // Processes EXISTS and NOT EXISTS. private AssignOperator processExists(ILogicalExpression inputExpr, LogicalVariable v1, boolean not) { AbstractFunctionCallExpression count = - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCALAR_COUNT)); + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCALAR_COUNT)); count.getArguments().add(new MutableObject<>(inputExpr)); AbstractFunctionCallExpression comparison = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(not ? AsterixBuiltinFunctions.EQ : AsterixBuiltinFunctions.NEQ)); + LangUtils.getFunctionInfo(not ? AsterixBuiltinFunctions.EQ : AsterixBuiltinFunctions.NEQ)); comparison.getArguments().add(new MutableObject<>(count)); comparison.getArguments() .add(new MutableObject<>(new ConstantExpression(new AsterixConstantValue(new AInt64(0L))))); @@ -1573,9 +1572,9 @@ arguments.add(generateAndNotIsUnknownWrap(inputBooleanExpr)); } Mutable<ILogicalExpression> hasBeenExecutedExprRef = new MutableObject<>( - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.OR), arguments)); + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.OR), arguments)); return new MutableObject<>( - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), new ArrayList<>(Collections.singletonList(hasBeenExecutedExprRef)))); } @@ -1584,13 +1583,13 @@ List<Mutable<ILogicalExpression>> arguments = new ArrayList<>(); arguments.add(new MutableObject<>(logicalExpr)); Mutable<ILogicalExpression> expr = new MutableObject<>( - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.IS_UNKOWN), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.IS_UNKOWN), new ArrayList<>(Collections.singletonList(new MutableObject<>(logicalExpr))))); arguments.add(new MutableObject<>( - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.NOT), + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.NOT), new ArrayList<>(Collections.singletonList(expr))))); return new MutableObject<>( - new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.AND), arguments)); + new ScalarFunctionCallExpression(LangUtils.getFunctionInfo(AsterixBuiltinFunctions.AND), arguments)); } // Generates the plan for "UNION ALL" or union expression from its input expressions. @@ -1608,7 +1607,7 @@ args.add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(opAndVar.second))); UnnestOperator unnestOp = new UnnestOperator(unnestVar, new MutableObject<ILogicalExpression>(new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), args))); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), args))); unnestOp.getInputs().add(new MutableObject<ILogicalOperator>(opAndVar.first)); inputOpRefsToUnion.add(new MutableObject<ILogicalOperator>(unnestOp)); vars.add(unnestVar); 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 982a334..25c23d3 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 @@ -39,7 +39,7 @@ import org.apache.asterix.lang.common.expression.VariableExpr; import org.apache.asterix.lang.common.literal.StringLiteral; import org.apache.asterix.lang.common.statement.Query; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.sqlpp.clause.AbstractBinaryCorrelateClause; import org.apache.asterix.lang.sqlpp.clause.FromClause; import org.apache.asterix.lang.sqlpp.clause.FromTerm; @@ -332,7 +332,7 @@ if (hasRightPosVar) { // Creates record to get correlation between the two aggregate variables. ScalarFunctionCallExpression recordCreationFunc = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.CLOSED_RECORD_CONSTRUCTOR), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.CLOSED_RECORD_CONSTRUCTOR), // Field name for the listified right unnest var. new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AString("unnestvar")))), @@ -386,12 +386,12 @@ if (hasRightPosVar) { ScalarFunctionCallExpression fieldAccessForRightUnnestVar = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(outerUnnestVar)), new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(0))))); ScalarFunctionCallExpression fieldAccessForRightPosVar = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.FIELD_ACCESS_BY_INDEX), new MutableObject<ILogicalExpression>(new VariableReferenceExpression(outerUnnestVar)), new MutableObject<ILogicalExpression>( new ConstantExpression(new AsterixConstantValue(new AInt32(1))))); @@ -526,7 +526,7 @@ // 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(AsterixBuiltinFunctions.AND), andArgs)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.AND), andArgs)); } // Translates the corresponding "THEN" expression. @@ -555,7 +555,7 @@ } arguments.add(new MutableObject<>(new VariableReferenceExpression(opAndVarForElse.second))); AbstractFunctionCallExpression swithCaseExpr = new ScalarFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SWITCH_CASE), arguments); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SWITCH_CASE), arguments); AssignOperator assignOp = new AssignOperator(selectVar, new MutableObject<>(swithCaseExpr)); assignOp.getInputs().add(new MutableObject<>(opAndVarForElse.first)); @@ -563,7 +563,7 @@ LogicalVariable unnestVar = context.newVar(); UnnestOperator unnestOp = new UnnestOperator(unnestVar, new MutableObject<>(new UnnestingFunctionCallExpression( - FunctionUtil.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), Collections + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.SCAN_COLLECTION), Collections .singletonList(new MutableObject<>(new VariableReferenceExpression(selectVar)))))); unnestOp.getInputs().add(new MutableObject<>(assignOp)); 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 63d1908..7095559 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 @@ -20,7 +20,7 @@ import java.util.List; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.base.AOrderedList; import org.apache.asterix.om.base.AString; import org.apache.asterix.om.base.IAObject; @@ -45,7 +45,7 @@ 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(AsterixBuiltinFunctions.META_KEY)); + LangUtils.getFunctionInfo(AsterixBuiltinFunctions.META_KEY)); metaKeyFunction.getArguments() .add(new MutableObject<ILogicalExpression>(new VariableReferenceExpression(resVar))); metaKeyFunction.getArguments() @@ -83,7 +83,7 @@ functionIdentifier = AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME; value = new AString(field.get(0)); } - IFunctionInfo finfoAccess = FunctionUtil.getFunctionInfo(functionIdentifier); + IFunctionInfo finfoAccess = LangUtils.getFunctionInfo(functionIdentifier); return new ScalarFunctionCallExpression(finfoAccess, new MutableObject<>(target), new MutableObject<>(new ConstantExpression(new AsterixConstantValue(value)))); } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/aql/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/aql/translator/QueryTranslator.java index d6065fb..8c69d9a 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/aql/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/aql/translator/QueryTranslator.java @@ -119,7 +119,7 @@ import org.apache.asterix.lang.common.statement.TypeDropStatement; import org.apache.asterix.lang.common.statement.WriteStatement; import org.apache.asterix.lang.common.struct.Identifier; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.metadata.IDatasetDetails; import org.apache.asterix.metadata.MetadataException; import org.apache.asterix.metadata.MetadataManager; @@ -2388,7 +2388,7 @@ CompiledSubscribeFeedStatement csfs = new CompiledSubscribeFeedStatement(bfs.getSubscriptionRequest(), bfs.getVarCounter()); - metadataProvider.getConfig().put(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS, "" + Boolean.TRUE); + metadataProvider.getConfig().put(LangUtils.IMPORT_PRIVATE_FUNCTIONS, "" + Boolean.TRUE); metadataProvider.getConfig().put(FeedActivityDetails.FEED_POLICY_NAME, "" + bfs.getPolicy()); metadataProvider.getConfig().put(FeedActivityDetails.COLLECT_LOCATIONS, StringUtils.join(bfs.getLocations(), ',')); diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java index 05a7dce..d9b1fbd 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java @@ -40,7 +40,7 @@ import org.apache.asterix.lang.common.statement.DataverseDecl; import org.apache.asterix.lang.common.statement.FunctionDecl; import org.apache.asterix.lang.common.statement.Query; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.sqlpp.parser.SqlppParserFactory; import org.apache.asterix.lang.sqlpp.rewrites.SqlppRewriterFactory; import org.apache.asterix.lang.sqlpp.util.SqlppAstPrintUtil; @@ -124,7 +124,7 @@ Map<String, String> config = mock(Map.class); when(aqlMetadataProvider.getDefaultDataverseName()).thenReturn(dvName); when(aqlMetadataProvider.getConfig()).thenReturn(config); - when(config.get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS)).thenReturn("true"); + when(config.get(LangUtils.IMPORT_PRIVATE_FUNCTIONS)).thenReturn("true"); when(aqlMetadataProvider.findDataset(anyString(), anyString())).thenReturn(mock(Dataset.class)); for (Statement st : statements) { diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java index 65f61f2..786adac 100644 --- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java +++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java @@ -44,7 +44,7 @@ import org.apache.asterix.lang.common.statement.FunctionDecl; import org.apache.asterix.lang.common.statement.Query; import org.apache.asterix.lang.common.struct.VarIdentifier; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.common.visitor.GatherFunctionCallsVisitor; import org.apache.asterix.metadata.MetadataManager; import org.apache.asterix.metadata.MetadataTransactionContext; @@ -126,7 +126,7 @@ if (expression == null) { return; } - String value = metadataProvider.getConfig().get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS); + String value = metadataProvider.getConfig().get(LangUtils.IMPORT_PRIVATE_FUNCTIONS); boolean includePrivateFunctions = (value != null) ? Boolean.valueOf(value.toLowerCase()) : false; Set<FunctionSignature> functionCalls = getFunctionCalls(expression); for (FunctionSignature signature : functionCalls) { diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java index 836de6a..930c3b6 100644 --- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java +++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/statement/SubscribeFeedStatement.java @@ -38,7 +38,7 @@ import org.apache.asterix.lang.common.base.Statement; import org.apache.asterix.lang.common.statement.InsertStatement; import org.apache.asterix.lang.common.statement.Query; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.common.visitor.base.ILangVisitor; import org.apache.asterix.metadata.MetadataException; import org.apache.asterix.metadata.MetadataManager; @@ -94,7 +94,7 @@ StringBuilder builder = new StringBuilder(); builder.append("use dataverse " + sourceFeedId.getDataverse() + ";\n"); - builder.append("set" + " " + FunctionUtil.IMPORT_PRIVATE_FUNCTIONS + " " + "'" + Boolean.TRUE + "'" + ";\n"); + builder.append("set" + " " + LangUtils.IMPORT_PRIVATE_FUNCTIONS + " " + "'" + Boolean.TRUE + "'" + ";\n"); builder.append("set" + " " + FeedActivity.FeedActivityDetails.FEED_POLICY_NAME + " " + "'" + connectionRequest.getPolicy() + "'" + ";\n"); 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/LangUtils.java similarity index 97% rename from asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java rename to asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangUtils.java index acd40d7..b9a69ce 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/LangUtils.java @@ -24,7 +24,7 @@ import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier; import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo; -public class FunctionUtil { +public class LangUtils { public static final String IMPORT_PRIVATE_FUNCTIONS = "import-private-functions"; diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java index 3f7cb31..36ae4cb 100644 --- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java +++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java @@ -30,7 +30,7 @@ import org.apache.asterix.lang.common.rewrites.LangRewritingContext; import org.apache.asterix.lang.common.statement.FunctionDecl; import org.apache.asterix.lang.common.statement.Query; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.lang.common.visitor.GatherFunctionCallsVisitor; import org.apache.asterix.lang.sqlpp.clause.AbstractBinaryCorrelateClause; import org.apache.asterix.lang.sqlpp.clause.FromClause; @@ -265,7 +265,7 @@ if (expression == null) { return; } - String value = metadataProvider.getConfig().get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS); + String value = metadataProvider.getConfig().get(LangUtils.IMPORT_PRIVATE_FUNCTIONS); boolean includePrivateFunctions = (value != null) ? Boolean.valueOf(value.toLowerCase()) : false; Set<FunctionSignature> functionCalls = getFunctionCalls(expression); for (FunctionSignature signature : functionCalls) { diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java index 6d19995..5245dd8 100644 --- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java +++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java @@ -24,7 +24,7 @@ import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.common.functions.FunctionConstants; import org.apache.asterix.common.functions.FunctionSignature; -import org.apache.asterix.lang.common.util.FunctionUtil; +import org.apache.asterix.lang.common.util.LangUtils; import org.apache.asterix.om.functions.AsterixBuiltinFunctions; import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier; import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo; @@ -54,7 +54,7 @@ * false otherwise. */ public static boolean isSql92AggregateFunction(FunctionSignature signature) throws AsterixException { - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, + IFunctionInfo finfo = LangUtils.getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, signature.getName().toLowerCase(), signature.getArity())); if (finfo == null) { return false; @@ -75,7 +75,7 @@ if (!name.startsWith(CORE_AGGREGATE_PREFIX)) { return false; } - IFunctionInfo finfo = FunctionUtil.getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, + IFunctionInfo finfo = LangUtils.getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, name.substring(CORE_AGGREGATE_PREFIX.length()), fs.getArity())); if (finfo == null) { return false; -- To view, visit https://asterix-gerrit.ics.uci.edu/1069 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic0034bd6ba7f449a03eda48070a8de614608c2dd Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Till Westmann <[email protected]>
