Steven Jacobs has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/1304
Change subject: ASTERIXDB-1573 Allow Extension of Rewrite Rules ...................................................................... ASTERIXDB-1573 Allow Extension of Rewrite Rules Add IRuleSetFactory which builds rewrite Rule Set Can be extended by Asterix Extensions Change-Id: I7f59dea86b0ef4ee9d31b56766a97bd2b34ec02c --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/DefaultRuleSetFactory.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/IRuleSetFactory.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/UnnestToDataScanRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java 10 files changed, 153 insertions(+), 72 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/04/1304/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java index 00affa8..af0ba73 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java @@ -49,4 +49,9 @@ return new AqlExpressionToPlanTranslatorFactory(); } + @Override + public IRuleSetFactory getRuleSetFactory() { + return new DefaultRuleSetFactory(); + } + } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/DefaultRuleSetFactory.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/DefaultRuleSetFactory.java new file mode 100644 index 0000000..ccae63c --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/DefaultRuleSetFactory.java @@ -0,0 +1,84 @@ +/* + * 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.compiler.provider; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.asterix.optimizer.base.RuleCollections; +import org.apache.hyracks.algebricks.common.utils.Pair; +import org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController; +import org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController; +import org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController; +import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; + +public class DefaultRuleSetFactory implements IRuleSetFactory { + + @Override + public List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildLogicalRewrites() { + return buildLogical(); + } + + @Override + public List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildPhysicalRewrites() { + return buildPhysical(); + } + + public static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildLogical() { + List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultLogicalRewrites = new ArrayList<>(); + SequentialFixpointRuleController seqCtrlNoDfs = new SequentialFixpointRuleController(false); + SequentialFixpointRuleController seqCtrlFullDfs = new SequentialFixpointRuleController(true); + SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true); + defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildInitialTranslationRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildTypeInferenceRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildAutogenerateIDRuleCollection())); + defaultLogicalRewrites + .add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildNormalizationRuleCollection())); + defaultLogicalRewrites + .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildLoadFieldsRuleCollection())); + // fj + defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildFuzzyJoinRuleCollection())); + // + defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildNormalizationRuleCollection())); + defaultLogicalRewrites + .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildLoadFieldsRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildDataExchangeRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildConsolidationRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildAccessMethodRuleCollection())); + defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildPlanCleanupRuleCollection())); + + //put TXnRuleCollection! + return defaultLogicalRewrites; + } + + public static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildPhysical() { + List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultPhysicalRewrites = new ArrayList<>(); + SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true); + SequentialOnceRuleController seqOnceTopLevel = new SequentialOnceRuleController(false); + defaultPhysicalRewrites + .add(new Pair<>(seqOnceCtrl, RuleCollections.buildPhysicalRewritesAllLevelsRuleCollection())); + defaultPhysicalRewrites + .add(new Pair<>(seqOnceTopLevel, RuleCollections.buildPhysicalRewritesTopLevelRuleCollection())); + defaultPhysicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.prepareForJobGenRuleCollection())); + return defaultPhysicalRewrites; + } + +} diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java index fbb55e9..f658be9 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java @@ -45,4 +45,9 @@ */ public ILangExpressionToPlanTranslatorFactory getExpressionToPlanTranslatorFactory(); + /** + * @return the rule set factory of a language implementation + */ + public IRuleSetFactory getRuleSetFactory(); + } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/IRuleSetFactory.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/IRuleSetFactory.java new file mode 100644 index 0000000..660ba43 --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/IRuleSetFactory.java @@ -0,0 +1,42 @@ +/* + * 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.compiler.provider; + +import java.util.List; + +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.common.utils.Pair; +import org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController; +import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; + +public interface IRuleSetFactory { + + /** + * @return the logical rewrites + * @throws AlgebricksException + */ + public List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildLogicalRewrites() + throws AlgebricksException; + + /** + * @return the physical rewrites + */ + public List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildPhysicalRewrites(); + +} diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java index 2b270df..70f8f92 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java @@ -49,4 +49,9 @@ return new SqlppExpressionToPlanTranslatorFactory(); } + @Override + public IRuleSetFactory getRuleSetFactory() { + return new DefaultRuleSetFactory(); + } + } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java index 56a3bd0..3efc4dc 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java @@ -22,7 +22,6 @@ import java.util.LinkedList; import java.util.List; -import org.apache.asterix.algebra.extension.IAlgebraExtensionManager; import org.apache.asterix.optimizer.rules.AddEquivalenceClassForRecordConstructorRule; import org.apache.asterix.optimizer.rules.AsterixExtractFunctionsFromJoinConditionRule; import org.apache.asterix.optimizer.rules.AsterixInlineVariablesRule; @@ -66,10 +65,10 @@ import org.apache.asterix.optimizer.rules.RemoveRedundantSelectRule; import org.apache.asterix.optimizer.rules.RemoveSortInFeedIngestionRule; import org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule; -import org.apache.asterix.optimizer.rules.SetupCommitExtensionOpRule; import org.apache.asterix.optimizer.rules.ResolveVariableRule; import org.apache.asterix.optimizer.rules.SetAsterixPhysicalOperatorsRule; import org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule; +import org.apache.asterix.optimizer.rules.SetupCommitExtensionOpRule; import org.apache.asterix.optimizer.rules.SimilarityCheckRule; import org.apache.asterix.optimizer.rules.SweepIllegalNonfunctionalFunctions; import org.apache.asterix.optimizer.rules.UnnestToDataScanRule; @@ -155,9 +154,7 @@ return autogen; } - //TODO(amoudi/yingyi): refactor this to use a provider instead of passing the extensionManager - public static final List<IAlgebraicRewriteRule> buildNormalizationRuleCollection( - IAlgebraExtensionManager algebraExtensionManager) { + public static final List<IAlgebraicRewriteRule> buildNormalizationRuleCollection() { List<IAlgebraicRewriteRule> normalization = new LinkedList<>(); normalization.add(new ResolveVariableRule()); normalization.add(new IntroduceUnnestForCollectionToSequenceRule()); @@ -183,7 +180,7 @@ normalization.add(new ListifyUnnestingFunctionRule()); normalization.add(new ConstantFoldingRule()); normalization.add(new RemoveRedundantSelectRule()); - normalization.add(new UnnestToDataScanRule(algebraExtensionManager)); + normalization.add(new UnnestToDataScanRule()); normalization.add(new MetaFunctionToMetaVariableRule()); normalization.add(new FuzzyEqRule()); normalization.add(new SimilarityCheckRule()); 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 c033214..dc49d6c 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 @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.List; -import org.apache.asterix.algebra.extension.IAlgebraExtensionManager; import org.apache.asterix.common.config.DatasetConfig.DatasetType; import org.apache.asterix.external.feed.watch.FeedActivityDetails; import org.apache.asterix.external.util.ExternalDataUtils; @@ -68,11 +67,6 @@ import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; public class UnnestToDataScanRule implements IAlgebraicRewriteRule { - private final IAlgebraExtensionManager algebraExtensionManager; - - public UnnestToDataScanRule(IAlgebraExtensionManager algebraExtensionManager) { - this.algebraExtensionManager = algebraExtensionManager; - } @Override public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) @@ -202,8 +196,6 @@ opRef.setValue(scan); context.computeAndSetTypeEnvironmentForOperator(scan); return true; - } else if (algebraExtensionManager != null) { - return algebraExtensionManager.unnestToDataScan(opRef, context, unnest, unnestExpr, f); } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java index eb1764c..376d9b9 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java @@ -21,13 +21,11 @@ import java.io.IOException; import java.io.PrintWriter; import java.rmi.RemoteException; -import java.util.ArrayList; import java.util.List; import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslator; import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslatorFactory; import org.apache.asterix.api.common.Job.SubmissionMode; -import org.apache.asterix.app.cc.CompilerExtensionManager; import org.apache.asterix.app.result.ResultUtil; import org.apache.asterix.common.config.AsterixCompilerProperties; import org.apache.asterix.common.config.AsterixExternalProperties; @@ -35,6 +33,7 @@ import org.apache.asterix.common.exceptions.ACIDException; import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.compiler.provider.ILangCompilationProvider; +import org.apache.asterix.compiler.provider.IRuleSetFactory; import org.apache.asterix.dataflow.data.common.AqlExpressionTypeComputer; import org.apache.asterix.dataflow.data.common.AqlMergeAggregationExpressionFactory; import org.apache.asterix.dataflow.data.common.AqlMissableTypeComputer; @@ -50,7 +49,6 @@ import org.apache.asterix.lang.common.statement.FunctionDecl; import org.apache.asterix.lang.common.statement.Query; import org.apache.asterix.metadata.declared.AqlMetadataProvider; -import org.apache.asterix.optimizer.base.RuleCollections; import org.apache.asterix.runtime.job.listener.JobEventListenerFactory; import org.apache.asterix.runtime.util.AsterixAppContextInfo; import org.apache.asterix.transaction.management.service.transaction.JobIdFactory; @@ -63,8 +61,6 @@ import org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder; import org.apache.hyracks.algebricks.compiler.api.ICompiler; import org.apache.hyracks.algebricks.compiler.api.ICompilerFactory; -import org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController; -import org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController; import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan; import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext; import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver; @@ -77,9 +73,7 @@ import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor; import org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPlotter; import org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter; -import org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController; import org.apache.hyracks.algebricks.core.rewriter.base.AlgebricksOptimizationContext; -import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; import org.apache.hyracks.algebricks.core.rewriter.base.IOptimizationContextFactory; import org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig; import org.apache.hyracks.api.client.IHyracksClientConnection; @@ -96,56 +90,13 @@ private final IRewriterFactory rewriterFactory; private final IAstPrintVisitorFactory astPrintVisitorFactory; private final ILangExpressionToPlanTranslatorFactory translatorFactory; - private final CompilerExtensionManager cExtensionManager; + private final IRuleSetFactory ruleSetFactory; - public APIFramework(ILangCompilationProvider compilationProvider, CompilerExtensionManager cExtensionManager) { + public APIFramework(ILangCompilationProvider compilationProvider) { this.rewriterFactory = compilationProvider.getRewriterFactory(); this.astPrintVisitorFactory = compilationProvider.getAstPrintVisitorFactory(); this.translatorFactory = compilationProvider.getExpressionToPlanTranslatorFactory(); - this.cExtensionManager = cExtensionManager; - } - - private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> - buildDefaultLogicalRewrites(CompilerExtensionManager ccExtensionManager) { - List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultLogicalRewrites = new ArrayList<>(); - SequentialFixpointRuleController seqCtrlNoDfs = new SequentialFixpointRuleController(false); - SequentialFixpointRuleController seqCtrlFullDfs = new SequentialFixpointRuleController(true); - SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true); - defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildInitialTranslationRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildTypeInferenceRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildAutogenerateIDRuleCollection())); - defaultLogicalRewrites - .add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildNormalizationRuleCollection(ccExtensionManager))); - defaultLogicalRewrites - .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildLoadFieldsRuleCollection())); - // fj - defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildFuzzyJoinRuleCollection())); - // - defaultLogicalRewrites - .add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildNormalizationRuleCollection(ccExtensionManager))); - defaultLogicalRewrites - .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildLoadFieldsRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.buildDataExchangeRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildConsolidationRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildAccessMethodRuleCollection())); - defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildPlanCleanupRuleCollection())); - - //put TXnRuleCollection! - return defaultLogicalRewrites; - } - - private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildDefaultPhysicalRewrites() { - List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultPhysicalRewrites = new ArrayList<>(); - SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true); - SequentialOnceRuleController seqOnceTopLevel = new SequentialOnceRuleController(false); - defaultPhysicalRewrites - .add(new Pair<>(seqOnceCtrl, RuleCollections.buildPhysicalRewritesAllLevelsRuleCollection())); - defaultPhysicalRewrites - .add(new Pair<>(seqOnceTopLevel, RuleCollections.buildPhysicalRewritesTopLevelRuleCollection())); - defaultPhysicalRewrites.add(new Pair<>(seqOnceCtrl, RuleCollections.prepareForJobGenRuleCollection())); - return defaultPhysicalRewrites; + this.ruleSetFactory = compilationProvider.getRuleSetFactory(); } private static class AqlOptimizationContextFactory implements IOptimizationContextFactory { @@ -258,8 +209,8 @@ HeuristicCompilerFactoryBuilder builder = new HeuristicCompilerFactoryBuilder(AqlOptimizationContextFactory.INSTANCE); builder.setPhysicalOptimizationConfig(OptimizationConfUtil.getPhysicalOptimizationConfig()); - builder.setLogicalRewrites(buildDefaultLogicalRewrites(cExtensionManager)); - builder.setPhysicalRewrites(buildDefaultPhysicalRewrites()); + builder.setLogicalRewrites(ruleSetFactory.buildLogicalRewrites()); + builder.setPhysicalRewrites(ruleSetFactory.buildPhysicalRewrites()); IDataFormat format = queryMetadataProvider.getFormat(); ICompilerFactory compilerFactory = builder.create(); builder.setExpressionEvalSizeComputer(format.getExpressionEvalSizeComputer()); diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java index b269ecf..fd9c6cd 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.java @@ -56,7 +56,7 @@ this.queryText = queryText; this.writer = writer; this.compilationProvider = compilationProvider; - this.apiFramework = new APIFramework(compilationProvider, null); + this.apiFramework = new APIFramework(compilationProvider); this.statementExecutorFactory = statementExecutorFactory; parserFactory = compilationProvider.getParserFactory(); } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java index d5b1415..df0461d 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java @@ -235,7 +235,7 @@ this.statements = aqlStatements; this.sessionConfig = conf; this.declaredFunctions = getDeclaredFunctions(aqlStatements); - this.apiFramework = new APIFramework(compliationProvider, ccExtensionManager); + this.apiFramework = new APIFramework(compliationProvider); this.rewriterFactory = compliationProvider.getRewriterFactory(); activeDefaultDataverse = MetadataBuiltinEntities.DEFAULT_DATAVERSE; } @@ -3123,7 +3123,7 @@ return (dataverse != null) ? dataverse : activeDefaultDataverse.getDataverseName(); } - protected String getActiveDataverse(Identifier dataverse) { + public String getActiveDataverse(Identifier dataverse) { return getActiveDataverseName(dataverse != null ? dataverse.getValue() : null); } -- To view, visit https://asterix-gerrit.ics.uci.edu/1304 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7f59dea86b0ef4ee9d31b56766a97bd2b34ec02c Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Steven Jacobs <sjaco...@ucr.edu>