diff --git a/asterixdb/asterix-algebra/pom.xml b/asterixdb/asterix-algebra/pom.xml
index 1013261..1a1af8f 100644
--- a/asterixdb/asterix-algebra/pom.xml
+++ b/asterixdb/asterix-algebra/pom.xml
@@ -40,28 +40,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.apache.asterix</groupId>
-        <artifactId>asterix-grammar-extension-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <configuration>
-          <base>${project.basedir}</base>
-          <gbase>../asterix-lang-aql/src/main/javacc/AQL.jj</gbase>
-          <gextension>src/main/javacc/AQLPlusExtension.jj</gextension>
-          <output>target/generated-resources/javacc/AQLPlus.jj</output>
-          <parserClassModifier>public</parserClassModifier>
-          <parserClassName>AQLPlusParser</parserClassName>
-          <packageName>org.apache.asterix.aqlplus.parser</packageName>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>grammarix</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>javacc-maven-plugin</artifactId>
         <version>2.6</version>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalMergeJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalMergeJoinPOperator.java
new file mode 100644
index 0000000..2b96176
--- /dev/null
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalMergeJoinPOperator.java
@@ -0,0 +1,195 @@
+/*
+ * 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.operators.physical;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.asterix.optimizer.rules.util.IntervalPartitions;
+import org.apache.asterix.runtime.operators.joins.interval.IntervalMergeJoinOperatorDescriptor;
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtilFactory;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.AbstractJoinPOperator;
+import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedFollowingProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedIntersectProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
+import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
+import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
+import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
+import org.apache.hyracks.api.job.IOperatorDescriptorRegistry;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class IntervalMergeJoinPOperator extends AbstractJoinPOperator {
+
+    private final List<LogicalVariable> keysLeftBranch;
+    private final List<LogicalVariable> keysRightBranch;
+    protected final IIntervalJoinUtilFactory mjcf;
+    protected final IntervalPartitions intervalPartitions;
+
+    private final int memSizeInFrames;
+
+    public IntervalMergeJoinPOperator(JoinKind kind, JoinPartitioningType partitioningType,
+            List<LogicalVariable> sideLeftOfEqualities, List<LogicalVariable> sideRightOfEqualities,
+            int memSizeInFrames, IIntervalJoinUtilFactory mjcf, IntervalPartitions intervalPartitions) {
+        super(kind, partitioningType);
+        this.keysLeftBranch = sideLeftOfEqualities;
+        this.keysRightBranch = sideRightOfEqualities;
+        this.mjcf = mjcf;
+        this.intervalPartitions = intervalPartitions;
+        this.memSizeInFrames = memSizeInFrames;
+    }
+
+    public IIntervalJoinUtilFactory getIntervalMergeJoinCheckerFactory() {
+        return mjcf;
+    }
+
+    @Override
+    public PhysicalOperatorTag getOperatorTag() {
+        return PhysicalOperatorTag.INTERVAL_MERGE_JOIN;
+    }
+
+    @Override
+    public String toString() {
+        return "INTERVAL_MERGE_JOIN" + " " + keysLeftBranch + " " + keysRightBranch;
+    }
+
+    @Override
+    public boolean isMicroOperator() {
+        return false;
+    }
+
+    @Override
+    public void computeDeliveredProperties(ILogicalOperator iop, IOptimizationContext context) {
+        List<OrderColumn> order = intervalPartitions.getLeftStartColumn();
+        IPartitioningProperty pp = new OrderedPartitionedProperty(order, null, intervalPartitions.getRangeMap());
+        List<ILocalStructuralProperty> propsLocal = new ArrayList<>();
+        propsLocal.add(new LocalOrderProperty(intervalPartitions.getLeftStartColumn()));
+        deliveredProperties = new StructuralPropertiesVector(pp, propsLocal);
+    }
+
+    @Override
+    public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator iop,
+            IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) {
+        StructuralPropertiesVector[] pv = new StructuralPropertiesVector[2];
+        AbstractLogicalOperator op = (AbstractLogicalOperator) iop;
+
+        //Create Left Local Order Column
+        IPartitioningProperty ppLeft = null;
+        List<ILocalStructuralProperty> ispLeft = new ArrayList<>();
+        ArrayList<OrderColumn> leftLocalOrderColumn = new ArrayList<>();
+        for (LogicalVariable v : keysLeftBranch) {
+            leftLocalOrderColumn.add(new OrderColumn(v, intervalPartitions.getLeftIntervalColumn().get(0).getOrder()));
+        }
+        ispLeft.add(new LocalOrderProperty(leftLocalOrderColumn));
+
+        //Create Right Local Order Column
+        IPartitioningProperty ppRight = null;
+        List<ILocalStructuralProperty> ispRight = new ArrayList<>();
+        ArrayList<OrderColumn> rightLocalOrderColumn = new ArrayList<>();
+        for (LogicalVariable v : keysRightBranch) {
+            rightLocalOrderColumn
+                    .add(new OrderColumn(v, intervalPartitions.getRightIntervalColumn().get(0).getOrder()));
+        }
+        ispRight.add(new LocalOrderProperty(rightLocalOrderColumn));
+
+        if (op.getExecutionMode() == AbstractLogicalOperator.ExecutionMode.PARTITIONED) {
+            INodeDomain targetNodeDomain = context.getComputationNodeDomain();
+
+            RangeMap rangeMapHint = intervalPartitions.getRangeMap();
+
+            //Assign Property
+            switch (intervalPartitions.getLeftPartitioningType()) {
+                case ORDERED_PARTITIONED:
+                    ppLeft = new OrderedPartitionedProperty(intervalPartitions.getLeftStartColumn(), targetNodeDomain,
+                            rangeMapHint);
+                    break;
+                case PARTIAL_BROADCAST_ORDERED_FOLLOWING:
+                    ppLeft = new PartialBroadcastOrderedFollowingProperty(intervalPartitions.getLeftStartColumn(),
+                            targetNodeDomain, rangeMapHint);
+                    break;
+                case PARTIAL_BROADCAST_ORDERED_INTERSECT:
+                    ppLeft = new PartialBroadcastOrderedIntersectProperty(intervalPartitions.getLeftIntervalColumn(),
+                            targetNodeDomain, rangeMapHint);
+                    break;
+            }
+            switch (intervalPartitions.getRightPartitioningType()) {
+                case ORDERED_PARTITIONED:
+                    ppRight = new OrderedPartitionedProperty(intervalPartitions.getRightStartColumn(), targetNodeDomain,
+                            rangeMapHint);
+                    break;
+                case PARTIAL_BROADCAST_ORDERED_FOLLOWING:
+                    ppRight = new PartialBroadcastOrderedFollowingProperty(intervalPartitions.getRightStartColumn(),
+                            targetNodeDomain, rangeMapHint);
+                    break;
+                case PARTIAL_BROADCAST_ORDERED_INTERSECT:
+                    ppRight = new PartialBroadcastOrderedIntersectProperty(intervalPartitions.getRightIntervalColumn(),
+                            targetNodeDomain, rangeMapHint);
+                    break;
+            }
+        }
+        pv[0] = new StructuralPropertiesVector(ppLeft, ispLeft);
+        pv[1] = new StructuralPropertiesVector(ppRight, ispRight);
+        IPartitioningRequirementsCoordinator prc = IPartitioningRequirementsCoordinator.NO_COORDINATION;
+        return new PhysicalRequirements(pv, prc);
+    }
+
+    @Override
+    public void contributeRuntimeOperator(IHyracksJobBuilder builder, JobGenContext context, ILogicalOperator op,
+            IOperatorSchema opSchema, IOperatorSchema[] inputSchemas, IOperatorSchema outerPlanSchema)
+            throws AlgebricksException {
+        int[] keysBuild = JobGenHelper.variablesToFieldIndexes(keysLeftBranch, inputSchemas[0]);
+        int[] keysProbe = JobGenHelper.variablesToFieldIndexes(keysRightBranch, inputSchemas[1]);
+
+        IOperatorDescriptorRegistry spec = builder.getJobSpec();
+        RecordDescriptor recordDescriptor =
+                JobGenHelper.mkRecordDescriptor(context.getTypeEnvironment(op), opSchema, context);
+
+        IOperatorDescriptor opDesc = getIntervalOperatorDescriptor(keysBuild, keysProbe, spec, recordDescriptor, mjcf);
+        contributeOpDesc(builder, (AbstractLogicalOperator) op, opDesc);
+
+        ILogicalOperator src1 = op.getInputs().get(0).getValue();
+        builder.contributeGraphEdge(src1, 0, op, 0);
+        ILogicalOperator src2 = op.getInputs().get(1).getValue();
+        builder.contributeGraphEdge(src2, 0, op, 1);
+    }
+
+    IOperatorDescriptor getIntervalOperatorDescriptor(int[] keysBuild, int[] keysProbe,
+            IOperatorDescriptorRegistry spec, RecordDescriptor recordDescriptor, IIntervalJoinUtilFactory mjcf) {
+        return new IntervalMergeJoinOperatorDescriptor(spec, memSizeInFrames, keysBuild, keysProbe, recordDescriptor,
+                mjcf);
+    }
+}
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 662010f..4a6735a 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
@@ -21,7 +21,7 @@
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslatorFactory;
 import org.apache.asterix.algebra.base.ILangExtension;
 import org.apache.asterix.lang.aql.parser.AQLParserFactory;
-import org.apache.asterix.lang.aql.rewrites.AQLRewriterFactory;
+import org.apache.asterix.lang.aql.rewrites.AqlRewriterFactory;
 import org.apache.asterix.lang.aql.visitor.AQLAstPrintVisitorFactory;
 import org.apache.asterix.lang.common.base.IAstPrintVisitorFactory;
 import org.apache.asterix.lang.common.base.IParserFactory;
@@ -42,7 +42,7 @@
 
     @Override
     public IRewriterFactory getRewriterFactory() {
-        return new AQLRewriterFactory(getParserFactory());
+        return new AqlRewriterFactory(getParserFactory());
     }
 
     @Override
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
index eb41204..ba42036 100644
--- 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
@@ -62,8 +62,6 @@
                 .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection()));
         defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildLoadFieldsRuleCollection(appCtx)));
         defaultLogicalRewrites
-                .add(new Pair<>(seqFirstRuleGateKeeperDfs, RuleCollections.buildFuzzyJoinRuleCollection()));
-        defaultLogicalRewrites
                 .add(new Pair<>(seqCtrlFullDfs, RuleCollections.buildNormalizationRuleCollection(appCtx)));
         defaultLogicalRewrites
                 .add(new Pair<>(seqCtrlNoDfs, RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection()));
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java
index 20673eb..51c03eb 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java
@@ -23,7 +23,6 @@
 import java.util.Set;
 
 import org.apache.asterix.metadata.declared.DataSource;
-import org.apache.asterix.metadata.declared.DataSourceId;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionEvalSizeComputer;
@@ -40,7 +39,7 @@
 
 public final class AsterixOptimizationContext extends AlgebricksOptimizationContext {
 
-    private final Int2ObjectMap<Set<DataSourceId>> dataSourceMap = new Int2ObjectOpenHashMap<>();
+    private final Int2ObjectMap<Set<DataSource>> dataSourceMap = new Int2ObjectOpenHashMap<>();
 
     public AsterixOptimizationContext(int varCounter, IExpressionEvalSizeComputer expressionEvalSizeComputer,
             IMergeAggregationExpressionFactory mergeAggregationExpressionFactory,
@@ -55,15 +54,15 @@
 
     public void addDataSource(DataSource dataSource) {
         byte type = dataSource.getDatasourceType();
-        Set<DataSourceId> set = dataSourceMap.get(type);
+        Set<DataSource> set = dataSourceMap.get(type);
         if (set == null) {
             set = new HashSet<>();
             dataSourceMap.put(type, set);
         }
-        set.add(dataSource.getId());
+        set.add(dataSource);
     }
 
-    public Int2ObjectMap<Set<DataSourceId>> getDataSourceMap() {
+    public Int2ObjectMap<Set<DataSource>> getDataSourceMap() {
         return dataSourceMap;
     }
 }
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 5b1ed0f..57ae375 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
@@ -30,7 +30,7 @@
 import org.apache.asterix.optimizer.rules.AsterixExtractFunctionsFromJoinConditionRule;
 import org.apache.asterix.optimizer.rules.AsterixInlineVariablesRule;
 import org.apache.asterix.optimizer.rules.AsterixIntroduceGroupByCombinerRule;
-import org.apache.asterix.optimizer.rules.AsterixPushAssignBelowUnionAllRule;
+import org.apache.asterix.optimizer.rules.AsterixPushMapOperatorThroughUnionRule;
 import org.apache.asterix.optimizer.rules.ByNameToByIndexFieldAccessRule;
 import org.apache.asterix.optimizer.rules.CancelUnnestSingletonListRule;
 import org.apache.asterix.optimizer.rules.CancelUnnestWithNestedListifyRule;
@@ -48,7 +48,6 @@
 import org.apache.asterix.optimizer.rules.FixReplicateOperatorOutputsRule;
 import org.apache.asterix.optimizer.rules.FullTextContainsParameterCheckRule;
 import org.apache.asterix.optimizer.rules.FuzzyEqRule;
-import org.apache.asterix.optimizer.rules.FuzzyJoinRule;
 import org.apache.asterix.optimizer.rules.InjectTypeCastForFunctionArgumentsRule;
 import org.apache.asterix.optimizer.rules.InjectTypeCastForUnionRule;
 import org.apache.asterix.optimizer.rules.InlineUnnestFunctionRule;
@@ -95,6 +94,7 @@
 import org.apache.asterix.optimizer.rules.subplan.AsterixMoveFreeVariableOperatorOutOfSubplanRule;
 import org.apache.asterix.optimizer.rules.subplan.InlineSubplanInputForNestedTupleSourceRule;
 import org.apache.asterix.optimizer.rules.temporal.TranslateIntervalExpressionRule;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
 import org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 import org.apache.hyracks.algebricks.rewriter.rules.BreakSelectIntoConjunctsRule;
@@ -128,10 +128,10 @@
 import org.apache.hyracks.algebricks.rewriter.rules.PushSelectIntoJoinRule;
 import org.apache.hyracks.algebricks.rewriter.rules.PushSortDownRule;
 import org.apache.hyracks.algebricks.rewriter.rules.PushSubplanWithAggregateDownThroughProductRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushUnnestDownThroughUnionRule;
 import org.apache.hyracks.algebricks.rewriter.rules.ReinferAllTypesRule;
 import org.apache.hyracks.algebricks.rewriter.rules.RemoveCartesianProductWithEmptyBranchRule;
 import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantGroupByDecorVarsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantVariablesInUnionRule;
 import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantVariablesRule;
 import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantWindowOperatorsRule;
 import org.apache.hyracks.algebricks.rewriter.rules.RemoveUnnecessarySortMergeExchange;
@@ -231,6 +231,8 @@
         condPushDownAndJoinInference.add(new RemoveCartesianProductWithEmptyBranchRule());
         condPushDownAndJoinInference.add(new PushMapOperatorDownThroughProductRule());
         condPushDownAndJoinInference.add(new PushSubplanWithAggregateDownThroughProductRule());
+        condPushDownAndJoinInference
+                .add(new AsterixPushMapOperatorThroughUnionRule(LogicalOperatorTag.ASSIGN, LogicalOperatorTag.SELECT));
         condPushDownAndJoinInference.add(new SubplanOutOfGroupRule());
         // The following rule must run before PushAggregateIntoNestedSubplanRule
         // (before common subplans diverge due to aggregate pushdown)
@@ -278,20 +280,6 @@
         return fieldLoads;
     }
 
-    public static final List<IAlgebraicRewriteRule> buildFuzzyJoinRuleCollection() {
-        List<IAlgebraicRewriteRule> fuzzy = new LinkedList<>();
-        fuzzy.add(new FuzzyJoinRule());
-        fuzzy.add(new ExtractCommonExpressionsRule());
-        fuzzy.add(new NestedSubplanToJoinRule());
-        fuzzy.add(new PushSelectIntoJoinRule());
-        fuzzy.add(new RemoveUnusedAssignAndAggregateRule());
-        fuzzy.add(new InlineSubplanInputForNestedTupleSourceRule());
-        fuzzy.add(new RemoveRedundantVariablesRule());
-        fuzzy.add(new AsterixInlineVariablesRule());
-        fuzzy.add(new RemoveUnusedAssignAndAggregateRule());
-        return fuzzy;
-    }
-
     public static final List<IAlgebraicRewriteRule> buildConsolidationRuleCollection() {
         List<IAlgebraicRewriteRule> consolidation = new LinkedList<>();
         consolidation.add(new ConsolidateSelectsRule());
@@ -306,8 +294,8 @@
         consolidation.add(new CountVarToCountOneRule());
         consolidation.add(new RemoveUnusedAssignAndAggregateRule());
         consolidation.add(new RemoveRedundantGroupByDecorVarsRule());
-        //PushUnnestDownUnion => RemoveRedundantListifyRule cause these rules are correlated
-        consolidation.add(new PushUnnestDownThroughUnionRule());
+        //PushUnnestThroughUnion => RemoveRedundantListifyRule cause these rules are correlated
+        consolidation.add(new AsterixPushMapOperatorThroughUnionRule(LogicalOperatorTag.UNNEST));
         consolidation.add(new RemoveRedundantListifyRule());
         // Window operator consolidation rules
         consolidation.add(new AsterixConsolidateWindowOperatorsRule());
@@ -333,9 +321,10 @@
     public static final List<IAlgebraicRewriteRule> buildPlanCleanupRuleCollection() {
         List<IAlgebraicRewriteRule> planCleanupRules = new LinkedList<>();
         planCleanupRules.add(new SwitchInnerJoinBranchRule());
-        planCleanupRules.add(new AsterixPushAssignBelowUnionAllRule());
+        planCleanupRules.add(new AsterixPushMapOperatorThroughUnionRule(LogicalOperatorTag.ASSIGN));
         planCleanupRules.add(new ExtractCommonExpressionsRule());
         planCleanupRules.add(new RemoveRedundantVariablesRule());
+        planCleanupRules.add(new RemoveRedundantVariablesInUnionRule()); // relies on RemoveUnusedAssignAndAggregateRule
         planCleanupRules.add(new PushProjectDownRule());
         planCleanupRules.add(new PushSelectDownRule());
         planCleanupRules.add(new SetClosedRecordConstructorsRule());
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushAssignBelowUnionAllRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushAssignBelowUnionAllRule.java
deleted file mode 100644
index 23ff7c6..0000000
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushAssignBelowUnionAllRule.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.optimizer.rules;
-
-import java.util.List;
-
-import org.apache.asterix.om.base.AInt32;
-import org.apache.asterix.om.constants.AsterixConstantValue;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.types.ARecordType;
-import org.apache.asterix.om.utils.ConstantExpressionUtil;
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.Triple;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-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.VariableReferenceExpression;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
-import org.apache.hyracks.algebricks.rewriter.rules.PushAssignBelowUnionAllRule;
-
-public class AsterixPushAssignBelowUnionAllRule extends PushAssignBelowUnionAllRule {
-
-    // modifies field-access-by-index by adjusting the index to match the one in the branch where assign is moved to
-    @Override
-    protected boolean modifyExpression(ILogicalExpression expression, UnionAllOperator unionOp,
-            IOptimizationContext ctx, int inputIndex) throws AlgebricksException {
-        if (expression.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
-            return true; // expressions other than functions need not be modified
-        }
-        AbstractFunctionCallExpression functionCall = (AbstractFunctionCallExpression) expression;
-        List<Mutable<ILogicalExpression>> arguments = functionCall.getArguments();
-        for (int k = 0, size = arguments.size(); k < size; k++) {
-            if (!modifyExpression(arguments.get(k).getValue(), unionOp, ctx, inputIndex)) {
-                return false;
-            }
-        }
-        // return true if any function other than field-access-by-index. otherwise, try to map the index.
-        return !functionCall.getFunctionIdentifier().equals(BuiltinFunctions.FIELD_ACCESS_BY_INDEX)
-                || mapFieldIndex(functionCall, unionOp, ctx, inputIndex);
-    }
-
-    private static boolean mapFieldIndex(AbstractFunctionCallExpression functionCall, UnionAllOperator unionOp,
-            IOptimizationContext ctx, int inputIndex) throws AlgebricksException {
-        // the record variable in the field access should match the output variable from union, i.e. $2.getField
-        ILogicalExpression recordExpr = functionCall.getArguments().get(0).getValue();
-        if (recordExpr.getExpressionTag() != LogicalExpressionTag.VARIABLE) {
-            return false;
-        }
-        Integer fieldIndex = ConstantExpressionUtil.getIntArgument(functionCall, 1);
-        if (fieldIndex == null) {
-            return false;
-        }
-        LogicalVariable recordVar = ((VariableReferenceExpression) recordExpr).getVariableReference();
-        for (Triple<LogicalVariable, LogicalVariable, LogicalVariable> varMap : unionOp.getVariableMappings()) {
-            if (varMap.third.equals(recordVar)) {
-                ARecordType unionType = (ARecordType) ctx.getOutputTypeEnvironment(unionOp).getVarType(varMap.third);
-                ILogicalOperator inputOpToUnion = unionOp.getInputs().get(inputIndex).getValue();
-                ARecordType inputType;
-                if (inputIndex == 0) {
-                    inputType = (ARecordType) ctx.getOutputTypeEnvironment(inputOpToUnion).getVarType(varMap.first);
-                } else {
-                    inputType = (ARecordType) ctx.getOutputTypeEnvironment(inputOpToUnion).getVarType(varMap.second);
-                }
-                String fieldName = unionType.getFieldNames()[fieldIndex];
-                fieldIndex = inputType.getFieldIndex(fieldName);
-                if (fieldIndex < 0) {
-                    return false;
-                }
-                functionCall.getArguments().get(1)
-                        .setValue(new ConstantExpression(new AsterixConstantValue(new AInt32(fieldIndex))));
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushMapOperatorThroughUnionRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushMapOperatorThroughUnionRule.java
new file mode 100644
index 0000000..20ad536
--- /dev/null
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/AsterixPushMapOperatorThroughUnionRule.java
@@ -0,0 +1,263 @@
+/*
+ * 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.optimizer.rules;
+
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.om.base.AInt32;
+import org.apache.asterix.om.constants.AsterixConstantValue;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.utils.ConstantExpressionUtil;
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.common.utils.Triple;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+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.IVariableTypeEnvironment;
+import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
+import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform;
+import org.apache.hyracks.algebricks.rewriter.rules.PushMapOperatorThroughUnionRule;
+
+public class AsterixPushMapOperatorThroughUnionRule extends PushMapOperatorThroughUnionRule {
+
+    private final FieldAccessByIndexCollector fieldAccessByIndexCollector = new FieldAccessByIndexCollector();
+
+    private final FieldAccessByIndexTransformer fieldAccessByIndexTransformer = new FieldAccessByIndexTransformer();
+
+    private final Set<LogicalOperatorTag> allowedKinds;
+
+    public AsterixPushMapOperatorThroughUnionRule(LogicalOperatorTag... allowedKinds) {
+        if (allowedKinds.length == 0) {
+            throw new IllegalArgumentException();
+        }
+        this.allowedKinds = EnumSet.noneOf(LogicalOperatorTag.class);
+        Collections.addAll(this.allowedKinds, allowedKinds);
+    }
+
+    @Override
+    protected boolean isOperatorKindPushableThroughUnion(ILogicalOperator op) {
+        //TODO(dmitry): support subplan operator
+        return allowedKinds.contains(op.getOperatorTag()) && super.isOperatorKindPushableThroughUnion(op);
+    }
+
+    @Override
+    protected Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> deepCopyForBranch(ILogicalOperator op,
+            Set<LogicalVariable> opUsedVars, UnionAllOperator unionAllOp, int branchIdx, IOptimizationContext context)
+            throws AlgebricksException {
+
+        if (((AbstractLogicalOperator) op).hasNestedPlans()) {
+            //TODO(dmitry): support subplan operator
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, op.getSourceLocation(),
+                    op.getOperatorTag().toString());
+        }
+
+        fieldAccessByIndexCollector.reset(unionAllOp, branchIdx, context);
+        op.acceptExpressionTransform(fieldAccessByIndexCollector);
+        if (fieldAccessByIndexCollector.failed) {
+            fieldAccessByIndexCollector.clear();
+            return null;
+        }
+
+        Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> newOpPair =
+                super.deepCopyForBranch(op, opUsedVars, unionAllOp, branchIdx, context);
+
+        if (fieldAccessByIndexCollector.hasFieldAccessMappings()) {
+            fieldAccessByIndexTransformer.reset(unionAllOp, branchIdx, context);
+            newOpPair.first.acceptExpressionTransform(fieldAccessByIndexTransformer);
+            fieldAccessByIndexTransformer.clear();
+        }
+
+        fieldAccessByIndexCollector.clear();
+        return newOpPair;
+    }
+
+    private static final class FieldAccessByIndexCollector extends AbstractFieldAccessByIndexTransformer {
+
+        private final Map<Pair<LogicalVariable, Integer>, Integer> fieldIndexMap = new HashMap<>();
+
+        private boolean failed;
+
+        @Override
+        void reset(UnionAllOperator unionAllOp, int branchIdx, IOptimizationContext context) {
+            super.reset(unionAllOp, branchIdx, context);
+            fieldIndexMap.clear();
+            failed = false;
+        }
+
+        @Override
+        void clear() {
+            super.clear();
+            fieldIndexMap.clear();
+        }
+
+        boolean hasFieldAccessMappings() {
+            return !fieldIndexMap.isEmpty();
+        }
+
+        @Override
+        public boolean transform(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            visit(exprRef);
+            return false;
+        }
+
+        private void visit(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            ILogicalExpression expr = exprRef.getValue();
+            if (expr.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
+                return;
+            }
+            AbstractFunctionCallExpression callExpr = (AbstractFunctionCallExpression) expr;
+            for (Mutable<ILogicalExpression> argExpr : callExpr.getArguments()) {
+                visit(argExpr);
+                if (failed) {
+                    return;
+                }
+            }
+
+            if (callExpr.getFunctionIdentifier().equals(BuiltinFunctions.FIELD_ACCESS_BY_INDEX)) {
+                boolean mapped = mapFieldIndex(callExpr);
+                if (!mapped) {
+                    failed = true;
+                }
+            }
+        }
+
+        private boolean mapFieldIndex(AbstractFunctionCallExpression callExpr) throws AlgebricksException {
+            // the record variable in the field access should match the output variable from union, i.e. $2.getField
+            ILogicalExpression recordExpr = callExpr.getArguments().get(0).getValue();
+            if (recordExpr.getExpressionTag() != LogicalExpressionTag.VARIABLE) {
+                return false;
+            }
+            Integer fieldIndexPostUnion = ConstantExpressionUtil.getIntArgument(callExpr, 1);
+            if (fieldIndexPostUnion == null) {
+                return false;
+            }
+            LogicalVariable recordVarPostUnion = ((VariableReferenceExpression) recordExpr).getVariableReference();
+            // 'recordVarPostUnion' is a post-union var, we need to find corresponding pre-union var
+            for (Triple<LogicalVariable, LogicalVariable, LogicalVariable> varMap : unionAllOp.getVariableMappings()) {
+                if (varMap.third.equals(recordVarPostUnion)) {
+                    LogicalVariable recordVarPreUnion = branchIdx == 0 ? varMap.first : varMap.second;
+
+                    IVariableTypeEnvironment typeEnvPostUnion = context.getOutputTypeEnvironment(unionAllOp);
+                    ARecordType recordTypePostUnion = (ARecordType) typeEnvPostUnion.getVarType(recordVarPostUnion);
+                    String fieldName = recordTypePostUnion.getFieldNames()[fieldIndexPostUnion];
+
+                    ILogicalOperator inputOpToUnion = unionAllOp.getInputs().get(branchIdx).getValue();
+                    IVariableTypeEnvironment typeEnvPreUnion = context.getOutputTypeEnvironment(inputOpToUnion);
+                    ARecordType recordTypePreUnion = (ARecordType) typeEnvPreUnion.getVarType(recordVarPreUnion);
+
+                    int fieldIndexPreUnion = recordTypePreUnion.getFieldIndex(fieldName);
+                    if (fieldIndexPreUnion >= 0) {
+                        // we save 'recordVar' pre-union because super.deepCopyForBranch() will replace
+                        // post-union variables with pre-union variables in the operator's expressions
+                        fieldIndexMap.put(new Pair<>(recordVarPreUnion, fieldIndexPostUnion), fieldIndexPreUnion);
+                        return true;
+                    } else {
+                        return false;
+                    }
+                }
+
+            }
+            return false;
+        }
+
+    }
+
+    private final class FieldAccessByIndexTransformer extends AbstractFieldAccessByIndexTransformer {
+
+        @Override
+        public boolean transform(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            ILogicalExpression expr = exprRef.getValue();
+            if (expr.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
+                return false;
+            }
+            boolean applied = false;
+            AbstractFunctionCallExpression callExpr = (AbstractFunctionCallExpression) expr;
+            for (Mutable<ILogicalExpression> argument : callExpr.getArguments()) {
+                applied |= transform(argument);
+            }
+
+            if (callExpr.getFunctionIdentifier().equals(BuiltinFunctions.FIELD_ACCESS_BY_INDEX)) {
+                transformFieldIndex(callExpr);
+                applied = true;
+            }
+            return applied;
+        }
+
+        private void transformFieldIndex(AbstractFunctionCallExpression callExpr) throws AlgebricksException {
+            ILogicalExpression recordExpr = callExpr.getArguments().get(0).getValue();
+            if (recordExpr.getExpressionTag() != LogicalExpressionTag.VARIABLE) {
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, callExpr.getSourceLocation(),
+                        recordExpr.getExpressionTag().toString());
+            }
+            Integer fieldIndexPostUnion = ConstantExpressionUtil.getIntArgument(callExpr, 1);
+            if (fieldIndexPostUnion == null) {
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, callExpr.getSourceLocation(), "");
+            }
+            // this 'recordVar' is pre-union because super.deepCopyForBranch() replaced
+            // post-union variables with pre-union variables in the operator's expressions
+            LogicalVariable recordVarPreUnion = ((VariableReferenceExpression) recordExpr).getVariableReference();
+            Integer fieldIndexPreUnion =
+                    fieldAccessByIndexCollector.fieldIndexMap.get(new Pair<>(recordVarPreUnion, fieldIndexPostUnion));
+            if (fieldIndexPreUnion == null) {
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, callExpr.getSourceLocation(),
+                        recordVarPreUnion.toString());
+            }
+            callExpr.getArguments().get(1)
+                    .setValue(new ConstantExpression(new AsterixConstantValue(new AInt32(fieldIndexPreUnion))));
+        }
+    }
+
+    private abstract static class AbstractFieldAccessByIndexTransformer
+            implements ILogicalExpressionReferenceTransform {
+
+        protected UnionAllOperator unionAllOp;
+
+        protected int branchIdx;
+
+        protected IOptimizationContext context;
+
+        void reset(UnionAllOperator unionAllOp, int branchIdx, IOptimizationContext context) {
+            this.unionAllOp = unionAllOp;
+            this.branchIdx = branchIdx;
+            this.context = context;
+        }
+
+        void clear() {
+            unionAllOp = null;
+            context = null;
+        }
+    }
+}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java
index 8c35ea3..4c227fa 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java
@@ -57,6 +57,7 @@
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeTagUtil;
 import org.apache.asterix.om.utils.ConstantExpressionUtil;
+import org.apache.asterix.runtime.base.UnnestingPositionWriterFactory;
 import org.apache.asterix.runtime.evaluators.functions.PointableHelper;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -71,6 +72,7 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ExpressionRuntimeProvider;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.StatefulFunctionCallExpression;
@@ -145,7 +147,8 @@
         jobGenCtx = new JobGenContext(null, metadataProvider, appCtx, SerializerDeserializerProvider.INSTANCE,
                 BinaryHashFunctionFactoryProvider.INSTANCE, BinaryHashFunctionFamilyProvider.INSTANCE,
                 BinaryComparatorFactoryProvider.INSTANCE, TypeTraitProvider.INSTANCE, BinaryBooleanInspector.FACTORY,
-                BinaryIntegerInspector.FACTORY, ADMPrinterFactoryProvider.INSTANCE, MissingWriterFactory.INSTANCE, null,
+                BinaryIntegerInspector.FACTORY, ADMPrinterFactoryProvider.INSTANCE, MissingWriterFactory.INSTANCE,
+                UnnestingPositionWriterFactory.INSTANCE, null,
                 new ExpressionRuntimeProvider(new QueryLogicalExpressionJobGen(metadataProvider.getFunctionManager())),
                 ExpressionTypeComputer.INSTANCE, null, null, null, null, GlobalConfig.DEFAULT_FRAME_SIZE, null,
                 NoOpWarningCollector.INSTANCE, 0);
@@ -209,7 +212,21 @@
         public Pair<Boolean, ILogicalExpression> visitScalarFunctionCallExpression(ScalarFunctionCallExpression expr,
                 Void arg) throws AlgebricksException {
             boolean changed = constantFoldArgs(expr, arg);
-            if (!allArgsConstant(expr) || !expr.isFunctional() || !canConstantFold(expr)) {
+            List<Mutable<ILogicalExpression>> argList = expr.getArguments();
+            int argConstantCount = countConstantArgs(argList);
+            if (argConstantCount != argList.size()) {
+                if (argConstantCount > 0 && expr.getFunctionIdentifier().equals(BuiltinFunctions.OR)
+                        && expr.isFunctional()) {
+                    if (foldOrArgs(expr)) {
+                        ILogicalExpression changedExpr =
+                                expr.getArguments().size() == 1 ? expr.getArguments().get(0).getValue() : expr;
+                        return new Pair<>(true, changedExpr);
+                    }
+                }
+                return new Pair<>(changed, expr);
+            }
+
+            if (!expr.isFunctional() || !canConstantFold(expr)) {
                 return new Pair<>(changed, expr);
             }
 
@@ -353,13 +370,14 @@
             return false;
         }
 
-        private boolean allArgsConstant(AbstractFunctionCallExpression expr) {
-            for (Mutable<ILogicalExpression> r : expr.getArguments()) {
-                if (r.getValue().getExpressionTag() != LogicalExpressionTag.CONSTANT) {
-                    return false;
+        private int countConstantArgs(List<Mutable<ILogicalExpression>> argList) {
+            int n = 0;
+            for (Mutable<ILogicalExpression> r : argList) {
+                if (r.getValue().getExpressionTag() == LogicalExpressionTag.CONSTANT) {
+                    n++;
                 }
             }
-            return true;
+            return n;
         }
 
         private boolean canConstantFold(ScalarFunctionCallExpression function) throws AlgebricksException {
@@ -402,6 +420,38 @@
             return true;
         }
 
+        private boolean foldOrArgs(ScalarFunctionCallExpression expr) {
+            // or(true,x,y) -> true; or(false,x,y) -> or(x,y)
+            boolean changed = false;
+            List<Mutable<ILogicalExpression>> argList = expr.getArguments();
+            Iterator<Mutable<ILogicalExpression>> argIter = argList.iterator();
+            Mutable<ILogicalExpression> argFalse = null;
+            while (argIter.hasNext()) {
+                Mutable<ILogicalExpression> argExprRef = argIter.next();
+                ILogicalExpression argExpr = argExprRef.getValue();
+                if (argExpr.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
+                    continue;
+                }
+                ConstantExpression cExpr = (ConstantExpression) argExpr;
+                IAlgebricksConstantValue cValue = cExpr.getValue();
+                if (cValue.isTrue()) {
+                    // or(true,x,y) -> true;
+                    argList.clear();
+                    argList.add(argExprRef);
+                    return true;
+                } else if (cValue.isFalse()) {
+                    // remove 'false' from arg list, but save the expression.
+                    argFalse = argExprRef;
+                    argIter.remove();
+                    changed = true;
+                }
+            }
+            if (argList.isEmpty() && argFalse != null) {
+                argList.add(argFalse);
+            }
+            return changed;
+        }
+
         // IEvaluatorContext
 
         @Override
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java
index 916fd75..e1bbacf 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java
@@ -18,9 +18,13 @@
  */
 package org.apache.asterix.optimizer.rules;
 
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.asterix.common.annotations.SkipSecondaryIndexSearchExpressionAnnotation;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.om.base.AOrderedList;
 import org.apache.asterix.om.constants.AsterixConstantValue;
@@ -39,6 +43,7 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.BroadcastExpressionAnnotation;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionAnnotation;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IndexedNLJoinExpressionAnnotation;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
@@ -89,6 +94,7 @@
         VariableReferenceExpression varEx = null;
         IAType valType = null;
         HashSet<AsterixConstantValue> values = new HashSet<AsterixConstantValue>();
+        Map<Object, IExpressionAnnotation> allAnnotations = Collections.emptyMap();
 
         for (Mutable<ILogicalExpression> arg : args) {
             AbstractFunctionCallExpression fctCall;
@@ -128,6 +134,12 @@
             if (!(haveVar && haveConst)) {
                 return false;
             }
+            if (!fctCall.getAnnotations().isEmpty()) {
+                if (allAnnotations.isEmpty()) {
+                    allAnnotations = new HashMap<>();
+                }
+                allAnnotations.putAll(fctCall.getAnnotations());
+            }
         }
 
         SourceLocation sourceLoc = select.getSourceLocation();
@@ -142,8 +154,9 @@
 
         ILogicalExpression cExp = new ConstantExpression(new AsterixConstantValue(list));
         Mutable<ILogicalExpression> mutCExp = new MutableObject<>(cExp);
-        IFunctionInfo scanFctInfo = BuiltinFunctions.getAsterixFunctionInfo(BuiltinFunctions.SCAN_COLLECTION);
-        UnnestingFunctionCallExpression scanExp = new UnnestingFunctionCallExpression(scanFctInfo, mutCExp);
+        UnnestingFunctionCallExpression scanExp = new UnnestingFunctionCallExpression(
+                BuiltinFunctions.getBuiltinFunctionInfo(BuiltinFunctions.SCAN_COLLECTION));
+        scanExp.getArguments().add(mutCExp);
         scanExp.setSourceLocation(sourceLoc);
         LogicalVariable scanVar = context.newVar();
         UnnestOperator unn = new UnnestOperator(scanVar, new MutableObject<>(scanExp));
@@ -151,18 +164,21 @@
         unn.getInputs().add(new MutableObject<>(ets));
         context.computeAndSetTypeEnvironmentForOperator(unn);
 
-        IFunctionInfo eqFctInfo = BuiltinFunctions.getAsterixFunctionInfo(AlgebricksBuiltinFunctions.EQ);
+        IFunctionInfo eqFctInfo = BuiltinFunctions.getBuiltinFunctionInfo(AlgebricksBuiltinFunctions.EQ);
         AbstractFunctionCallExpression eqExp = new ScalarFunctionCallExpression(eqFctInfo);
         eqExp.setSourceLocation(sourceLoc);
         VariableReferenceExpression scanVarRef = new VariableReferenceExpression(scanVar);
         scanVarRef.setSourceLocation(sourceLoc);
         eqExp.getArguments().add(new MutableObject<>(scanVarRef));
         eqExp.getArguments().add(new MutableObject<>(varEx.cloneExpression()));
-        eqExp.getAnnotations().put(IndexedNLJoinExpressionAnnotation.INSTANCE,
-                IndexedNLJoinExpressionAnnotation.INSTANCE);
+        if (!allAnnotations.containsKey(SkipSecondaryIndexSearchExpressionAnnotation.INSTANCE)) {
+            eqExp.getAnnotations().put(IndexedNLJoinExpressionAnnotation.INSTANCE,
+                    IndexedNLJoinExpressionAnnotation.INSTANCE);
+        }
         BroadcastExpressionAnnotation bcast = new BroadcastExpressionAnnotation();
         bcast.setObject(BroadcastExpressionAnnotation.BroadcastSide.LEFT); // Broadcast the OR predicates branch.
         eqExp.getAnnotations().put(bcast, bcast);
+        eqExp.getAnnotations().putAll(allAnnotations);
 
         InnerJoinOperator jOp = new InnerJoinOperator(new MutableObject<>(eqExp));
         jOp.setSourceLocation(sourceLoc);
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyJoinRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyJoinRule.java
deleted file mode 100644
index cc91c06..0000000
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FuzzyJoinRule.java
+++ /dev/null
@@ -1,504 +0,0 @@
-/*
- * 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.optimizer.rules;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-
-import org.apache.asterix.aqlplus.parser.AQLPlusParser;
-import org.apache.asterix.aqlplus.parser.ParseException;
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.lang.common.base.Clause;
-import org.apache.asterix.lang.common.struct.VarIdentifier;
-import org.apache.asterix.lang.common.util.FunctionUtil;
-import org.apache.asterix.metadata.declared.MetadataProvider;
-import org.apache.asterix.om.base.AFloat;
-import org.apache.asterix.om.constants.AsterixConstantValue;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.typecomputer.impl.TypeComputeUtils;
-import org.apache.asterix.om.types.BuiltinType;
-import org.apache.asterix.om.types.IAType;
-import org.apache.asterix.optimizer.base.FuzzyUtils;
-import org.apache.asterix.translator.AqlPlusExpressionToPlanTranslator;
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.core.algebra.base.Counter;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-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.base.LogicalExpressionTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-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.IndexedNLJoinExpressionAnnotation;
-import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
-import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import org.apache.hyracks.algebricks.core.algebra.functions.AlgebricksBuiltinFunctions;
-import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterJoinOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.SelectOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.IsomorphismUtilities;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.LogicalOperatorDeepCopyWithNewVariablesVisitor;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
-import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-public class FuzzyJoinRule implements IAlgebraicRewriteRule {
-
-    private static HashSet<FunctionIdentifier> simFuncs = new HashSet<>();
-
-    static {
-        simFuncs.add(BuiltinFunctions.SIMILARITY_JACCARD_CHECK);
-    }
-
-    private final List<Collection<LogicalVariable>> previousPKs = new ArrayList<>();
-
-    // Please correspond the value to the anchors $$RIGHT_##_0 and ##RIGHT_3 in AQLPLUS.
-    private static final int SUBSET_RIGHT_INDEX = 1; // Corresponds to $$RIGHT_1_0 and ##RIGHT_1
-    // private static final int LENGTH_LEFT_INDEX = 2;  // Corresponds to $$RIGHT_2_0 and ##RIGHT_2
-    private static final int LENGTH_RIGHT_INDEX = 3; // Corresponds to $$RIGHT_3_0 and ##RIGHT_3
-
-    // Step1: Initialize the host embedding aql to substitute the fuzzy equal condition such as $r.a ~= $s.b
-    private static final String AQLPLUS = ""
-            //
-            // -- - Stage 3 - --
-            //
-            + "((##LEFT_0), " + "  (join((##RIGHT_0), "
-            //
-            // -- -- - Stage 2 - --
-            //
-            + "    (" + "join( " + "( " + "##RIGHT_1 " + "      let $tokensUnrankedRight := %s($$RIGHT_1) "
-            + "    let $lenRight := len($tokensUnrankedRight) " + "      let $tokensRight := "
-            + "    for $token in $tokensUnrankedRight " + "for $tokenRanked at $i in "
-            //
-            // -- -- -- - Stage 1 - --
-            // Since we use the right join branch R to generate our token order, this can shorten the prefix length of S
-            // in case of R ~= S, where some tokens are in S but not in R.
-            + "          ##RIGHT_3 " + "let $id := $$RIGHTPK_3_0 " + "for $token in %s($$RIGHT_3) "
-            + "          /*+ hash */ " + "group by $tokenGroupped := $token with $id "
-            + "          order by count($id), $tokenGroupped return $tokenGroupped "
-            //
-            // -- -- -- -
-            //
-            + "        where $token = /*+ hash-bcast */ $tokenRanked " + "order by $i " + "return $i "
-            + "      for $prefixTokenRight in subset-collection($tokensRight, 0, prefix-len-%s(len($tokensRight), %ff)) "
-            + "      ), " + "( " + "##LEFT_1 " + "let $tokensUnrankedLeft := %s($$LEFT_1) "
-            + "      let $lenLeft := len($tokensUnrankedLeft) " + "let $tokensLeft := "
-            + "        for $token in $tokensUnrankedLeft " + "for $tokenRanked at $i in "
-            //
-            // -- -- -- - Stage 1 - --
-            + "          ##RIGHT_2 " + "let $id := $$RIGHTPK_2_0 " + "for $token in %s($$RIGHT_2) "
-            + "          /*+ hash */ " + "group by $tokenGroupped := $token with $id "
-            + "          order by count($id), $tokenGroupped return $tokenGroupped "
-            //
-            // -- -- -- -
-            //
-            + "        where $token = /*+ hash-bcast */ $tokenRanked " + "order by $i " + "return $i "
-            // We use the input string $tokensUnrankedLeft instead of $tokensLeft to ensure it will not miss similar
-            // pairs when the prefix of S has been reduced in case of R ~= S, where some tokens are in S but not in R.
-            + "      let $actualPreLen := prefix-len-%s(len($tokensUnrankedLeft), %ff) - $lenLeft + len($tokensLeft) "
-            + "      for $prefixTokenLeft in subset-collection($tokensLeft, 0, $actualPreLen)) "
-            + "      , $prefixTokenLeft = $prefixTokenRight) "
-            + "let $sim := similarity-%s-prefix($lenRight, $tokensRight, $lenLeft, $tokensLeft, $prefixTokenLeft, %ff) "
-            + "where $sim >= %ff " + "/*+ hash*/ " + "group by %s, %s with $sim "
-            //
-            // -- -- -
-            //
-            + "    ), %s)),  %s)";
-
-    private static final String GROUPBY_LEFT = "$idLeft_%d := $$LEFTPK_1_%d";
-    private static final String GROUPBY_RIGHT = "$idRight_%d := $$RIGHTPK_1_%d";
-    private static final String JOIN_COND_LEFT = "$$LEFTPK_0_%d = $idLeft_%d";
-    private static final String JOIN_COND_RIGHT = "$$RIGHTPK_0_%d = $idRight_%d";
-    private static final String AQLPLUS_INNER_JOIN = "join";
-    private static final String AQLPLUS_LEFTOUTER_JOIN = "loj";
-
-    @Override
-    public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
-            throws AlgebricksException {
-
-        AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
-        // current operator should be a join.
-        if (op.getOperatorTag() != LogicalOperatorTag.INNERJOIN
-                && op.getOperatorTag() != LogicalOperatorTag.LEFTOUTERJOIN) {
-            return false;
-        }
-
-        // Finds GET_ITEM function in the join condition.
-        AbstractBinaryJoinOperator joinOp = (AbstractBinaryJoinOperator) op;
-        Mutable<ILogicalExpression> exprRef = joinOp.getCondition();
-        Mutable<ILogicalExpression> getItemExprRef = getSimilarityExpression(exprRef);
-        if (getItemExprRef == null) {
-            return false;
-        }
-        // Checks if the GET_ITEM function is on the one of the supported similarity-check functions.
-        AbstractFunctionCallExpression getItemFuncExpr = (AbstractFunctionCallExpression) getItemExprRef.getValue();
-        Mutable<ILogicalExpression> argRef = getItemFuncExpr.getArguments().get(0);
-        AbstractFunctionCallExpression simFuncExpr = (AbstractFunctionCallExpression) argRef.getValue();
-        if (!simFuncs.contains(simFuncExpr.getFunctionIdentifier())) {
-            return false;
-        }
-        // Skips this rule based on annotations.
-        if (simFuncExpr.getAnnotations().containsKey(IndexedNLJoinExpressionAnnotation.INSTANCE)) {
-            return false;
-        }
-
-        // Gets both input branches of fuzzy join.
-        List<Mutable<ILogicalOperator>> inputOps = joinOp.getInputs();
-        ILogicalOperator leftInputOp = inputOps.get(0).getValue();
-        ILogicalOperator rightInputOp = inputOps.get(1).getValue();
-
-        List<Mutable<ILogicalExpression>> inputExprs = simFuncExpr.getArguments();
-        if (inputExprs.size() != 3) {
-            return false;
-        }
-
-        // Extracts Fuzzy similarity function.
-        ILogicalExpression leftOperatingExpr = inputExprs.get(0).getValue();
-        ILogicalExpression rightOperatingExpr = inputExprs.get(1).getValue();
-        ILogicalExpression thresholdConstantExpr = inputExprs.get(2).getValue();
-
-        // left and right expressions should be variables.
-        if (leftOperatingExpr.getExpressionTag() != LogicalExpressionTag.VARIABLE
-                || rightOperatingExpr.getExpressionTag() != LogicalExpressionTag.VARIABLE
-                || thresholdConstantExpr.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
-            return false;
-        }
-
-        LogicalVariable inputVar0 = ((VariableReferenceExpression) leftOperatingExpr).getVariableReference();
-        LogicalVariable inputVar1 = ((VariableReferenceExpression) rightOperatingExpr).getVariableReference();
-
-        LogicalVariable leftInputVar;
-        LogicalVariable rightInputVar;
-        Collection<LogicalVariable> liveVars = new HashSet<>();
-        VariableUtilities.getLiveVariables(leftInputOp, liveVars);
-        if (liveVars.contains(inputVar0)) {
-            leftInputVar = inputVar0;
-            rightInputVar = inputVar1;
-        } else {
-            leftInputVar = inputVar1;
-            rightInputVar = inputVar0;
-        }
-        // leftInputPKs in currrentPKs keeps all PKs derived from the left branch in the current similarity fuzzyjoin.
-        List<LogicalVariable> leftInputPKs = findPrimaryKeysInSubplan(liveVars, context);
-        liveVars.clear();
-        VariableUtilities.getLiveVariables(rightInputOp, liveVars);
-        // rightInputPKs in currentPKs keeps all PKs derived from the right branch in the current similarity fuzzyjoin.
-        List<LogicalVariable> rightInputPKs = findPrimaryKeysInSubplan(liveVars, context);
-        IAType leftType = (IAType) context.getOutputTypeEnvironment(leftInputOp).getVarType(leftInputVar);
-        if (!isPrefixFuzzyJoin(context, leftInputOp, rightInputOp, rightInputVar, leftInputPKs, rightInputPKs,
-                leftType)) {
-            return false;
-        }
-
-        //
-        // -- - FIRE - --
-        //
-        MetadataProvider metadataProvider = ((MetadataProvider) context.getMetadataProvider());
-        // Steps 1 and 2. Generate the prefix-based fuzzy jon template.
-        String aqlPlus = generateAqlTemplate(metadataProvider, joinOp, simFuncExpr, leftInputPKs, leftType,
-                rightInputPKs, thresholdConstantExpr);
-        // Steps 3 and 4. Generate the prefix-based fuzzy join subplan.
-        ILogicalOperator outputOp = generatePrefixFuzzyJoinSubplan(context, metadataProvider, aqlPlus, leftInputOp,
-                leftInputPKs, leftInputVar, rightInputOp, rightInputPKs, rightInputVar);
-
-        // Step 5. Bind the plan to the parent op referred by the following opRef.
-        SelectOperator extraSelect;
-        if (getItemExprRef != exprRef) {
-            // more than one join condition
-            getItemExprRef.setValue(ConstantExpression.TRUE);
-            switch (joinOp.getJoinKind()) {
-                case INNER: {
-                    extraSelect = new SelectOperator(exprRef, false, null);
-                    extraSelect.setSourceLocation(exprRef.getValue().getSourceLocation());
-                    extraSelect.getInputs().add(new MutableObject<>(outputOp));
-                    outputOp = extraSelect;
-                    break;
-                }
-                case LEFT_OUTER: {
-                    LeftOuterJoinOperator topJoin = (LeftOuterJoinOperator) outputOp;
-                    setConditionForLeftOuterJoin(topJoin, exprRef);
-                    break;
-                }
-                default: {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        opRef.setValue(outputOp);
-        OperatorPropertiesUtil.typeOpRec(opRef, context);
-        return true;
-    }
-
-    /**
-     * To handle multiple fuzzy-join conditions on a same pair of datasets, this rule checks the PKs in bottom-up way.
-     * The previousPKs list incrementally maintains the PKs from a previous fuzzy-join operator's input branches.
-     * In addition, the given fuzzy-join operator has been successfully translated into a prefix-based fuzzy join
-     * sub-plan of the current fuzzy-join operator. There are two cases:
-     * 1. If the previousPKs list contains the currentPKs list (the PKs from the input branches of the current
-     * fuzzy-join operator), this means that the current fuzzy-join condition has no new input branch. This case
-     * SHOULD BE regarded as a SELECT over one of the previous fuzzy-joins.
-     * 2. Otherwise, we can apply this rule to the current fuzzy-join operator to a new prefix-based fuzzy-join plan.
-     */
-    private boolean isPrefixFuzzyJoin(IOptimizationContext context, ILogicalOperator leftInputOp,
-            ILogicalOperator rightInputOp, LogicalVariable rightInputVar, List<LogicalVariable> leftInputPKs,
-            List<LogicalVariable> rightInputPKs, IAType leftType) throws AlgebricksException {
-        Collection<LogicalVariable> currentPKs = new HashSet<>();
-        currentPKs.addAll(leftInputPKs);
-        currentPKs.addAll(rightInputPKs);
-        // If PKs derived from the both branches are SAME as that of a previous fuzzyjoin, we treat this fuzzyjoin
-        // condition as a select over that fuzzyjoin.
-        for (int i = 0; i < previousPKs.size(); i++) {
-            if (previousPKs.get(i).containsAll(currentPKs) && currentPKs.containsAll(previousPKs.get(i))) {
-                return false;
-            }
-        }
-
-        //Suppose we want to query on the same dataset on the different fields, i.e. A.a1 ~= B.b1 AND A.a2 ~= B.b2
-        //We conduct this query as a select over a fuzzyjoin based on the PK inclusion relationship.
-        previousPKs.add(currentPKs);
-        // Avoids the duplicated PK generation in findPrimaryKeysInSubplan, especially for multiway fuzzy join.
-        // Refer to fj-dblp-csx-hybrid.aql in the optimized tests for example.
-        IsomorphismUtilities.mergeHomogeneousPK(leftInputOp, leftInputPKs);
-        // Fails if primary keys could not be inferred.
-        if (leftInputPKs.isEmpty() || rightInputPKs.isEmpty()) {
-            return false;
-        }
-
-        IAType rightType = (IAType) context.getOutputTypeEnvironment(rightInputOp).getVarType(rightInputVar);
-        // left-hand side and right-hand side of fuzzyjoin should be the same type
-        IAType actualLeftType = TypeComputeUtils.getActualType(leftType);
-        IAType actualRightType = TypeComputeUtils.getActualType(rightType);
-        if (!actualLeftType.deepEqual(actualRightType)) {
-            return false;
-        }
-        return true;
-    }
-
-    private String generateAqlTemplate(MetadataProvider metadataProvider, AbstractBinaryJoinOperator joinOp,
-            AbstractFunctionCallExpression simFuncExpr, List<LogicalVariable> leftInputPKs, IAType leftType,
-            List<LogicalVariable> rightInputPKs, ILogicalExpression thresholdConstantExpr) throws AlgebricksException {
-        FunctionIdentifier funcId = FuzzyUtils.getTokenizer(leftType.getTypeTag());
-        String tokenizer = "";
-        if (funcId != null) {
-            tokenizer = funcId.getName();
-        }
-
-        String simFunction = FuzzyUtils.getSimFunction(simFuncExpr.getFunctionIdentifier());
-        float simThreshold;
-        ConstantExpression constExpr = (ConstantExpression) thresholdConstantExpr;
-        AsterixConstantValue constVal = (AsterixConstantValue) constExpr.getValue();
-        if (constVal.getObject().getType().equals(BuiltinType.AFLOAT)) {
-            simThreshold = ((AFloat) constVal.getObject()).getFloatValue();
-        } else {
-            simThreshold = FuzzyUtils.getSimThreshold(metadataProvider);
-        }
-
-        // finalize AQL+ query
-        String prepareJoin;
-        switch (joinOp.getJoinKind()) {
-            case INNER:
-                prepareJoin = AQLPLUS_INNER_JOIN + AQLPLUS;
-                break;
-            case LEFT_OUTER:
-                prepareJoin = AQLPLUS_LEFTOUTER_JOIN + AQLPLUS;
-                break;
-            default:
-                throw new CompilationException(ErrorCode.COMPILATION_INVALID_EXPRESSION);
-        }
-        String groupByLeft = "";
-        String joinCondLeft = "";
-        // Step2. By default, we triggered the prefix fuzzy join strategy, which needs to initialize the mapping from
-        // the shared token to the actual tuples of the both sides. left(right)InputPKs is used to extract those
-        // mappings from prefix tokens to tuples.
-        for (int i = 0; i < leftInputPKs.size(); i++) {
-            if (i > 0) {
-                groupByLeft += ", ";
-                joinCondLeft += " and ";
-            }
-            groupByLeft += String.format(Locale.US, GROUPBY_LEFT, i, i);
-            joinCondLeft += String.format(Locale.US, JOIN_COND_LEFT, i, i);
-        }
-
-        String groupByRight = "";
-        String joinCondRight = "";
-        for (int i = 0; i < rightInputPKs.size(); i++) {
-            if (i > 0) {
-                groupByRight += ", ";
-                joinCondRight += " and ";
-            }
-            groupByRight += String.format(Locale.US, GROUPBY_RIGHT, i, i);
-            joinCondRight += String.format(Locale.US, JOIN_COND_RIGHT, i, i);
-        }
-        return String.format(Locale.US, prepareJoin, tokenizer, tokenizer, simFunction, simThreshold, tokenizer,
-                tokenizer, simFunction, simThreshold, simFunction, simThreshold, simThreshold, groupByLeft,
-                groupByRight, joinCondRight, joinCondLeft);
-    }
-
-    private ILogicalOperator generatePrefixFuzzyJoinSubplan(IOptimizationContext context,
-            MetadataProvider metadataProvider, String aqlPlus, ILogicalOperator leftInputOp,
-            List<LogicalVariable> leftInputPKs, LogicalVariable leftInputVar, ILogicalOperator rightInputOp,
-            List<LogicalVariable> rightInputPKs, LogicalVariable rightInputVar) throws AlgebricksException {
-        // Step3. Translate the tokenizer, join condition and group by (shared token) as shown
-        // in the above AQLPLUS template.
-        Counter counter = new Counter(context.getVarCounter());
-        // The translator will compile metadata internally. Run this compilation
-        // under the same transaction id as the "outer" compilation.
-        AqlPlusExpressionToPlanTranslator translator = new AqlPlusExpressionToPlanTranslator(metadataProvider, counter);
-
-        LogicalOperatorDeepCopyWithNewVariablesVisitor copyVisitor =
-                new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, context);
-
-        // Step3.1. Substitute the variable references of the above AQLPLUS template with
-        // the actually attached variables.
-        translator.addOperatorToMetaScope(new VarIdentifier("##LEFT_0"), leftInputOp);
-        translator.addVariableToMetaScope(new VarIdentifier("$$LEFT_0"), leftInputVar);
-        for (int i = 0; i < leftInputPKs.size(); i++) {
-            translator.addVariableToMetaScope(new VarIdentifier("$$LEFTPK_0_" + i), leftInputPKs.get(i));
-        }
-
-        // Step3.2. right side again.
-        translator.addOperatorToMetaScope(new VarIdentifier("##RIGHT_0"), rightInputOp);
-        translator.addVariableToMetaScope(new VarIdentifier("$$RIGHT_0"), rightInputVar);
-        for (int i = 0; i < rightInputPKs.size(); i++) {
-            translator.addVariableToMetaScope(new VarIdentifier("$$RIGHTPK_0_" + i), rightInputPKs.get(i));
-        }
-
-        // Step3.3. the suffix 0-3 is used for identifying the different level of variable references.
-        ILogicalOperator leftInputOpCopy = copyVisitor.deepCopy(leftInputOp);
-        translator.addOperatorToMetaScope(new VarIdentifier("##LEFT_1"), leftInputOpCopy);
-        LogicalVariable leftInputVarCopy = copyVisitor.varCopy(leftInputVar);
-        translator.addVariableToMetaScope(new VarIdentifier("$$LEFT_1"), leftInputVarCopy);
-        for (int i = 0; i < leftInputPKs.size(); i++) {
-            leftInputVarCopy = copyVisitor.varCopy(leftInputPKs.get(i));
-            translator.addVariableToMetaScope(new VarIdentifier("$$LEFTPK_1_" + i), leftInputVarCopy);
-        }
-        copyVisitor.updatePrimaryKeys(context);
-        copyVisitor.reset();
-
-        // Notice: pick side to run Stage 1, currently always picks RIGHT side. It means that the right side will
-        // produce the token order as well as its own token list.
-        for (int i = SUBSET_RIGHT_INDEX; i <= LENGTH_RIGHT_INDEX; i++) {
-            translator.addOperatorToMetaScope(new VarIdentifier("##RIGHT_" + i), copyVisitor.deepCopy(rightInputOp));
-            LogicalVariable rightInputVarCopy = copyVisitor.varCopy(rightInputVar);
-            translator.addVariableToMetaScope(new VarIdentifier("$$RIGHT_" + i), rightInputVarCopy);
-            for (int j = 0; j < rightInputPKs.size(); j++) {
-                rightInputVarCopy = copyVisitor.varCopy(rightInputPKs.get(j));
-                translator.addVariableToMetaScope(new VarIdentifier("$$RIGHTPK_" + i + "_" + j), rightInputVarCopy);
-            }
-            copyVisitor.updatePrimaryKeys(context);
-            copyVisitor.reset();
-        }
-        counter.set(context.getVarCounter());
-
-        AQLPlusParser parser = new AQLPlusParser(new StringReader(aqlPlus));
-        parser.initScope();
-        parser.setVarCounter(counter);
-        List<Clause> clauses;
-        try {
-            clauses = parser.Clauses();
-        } catch (ParseException e) {
-            throw CompilationException.create(ErrorCode.COMPILATION_TRANSLATION_ERROR, e);
-        }
-
-        // Step 4. The essential substitution with translator.
-        ILogicalPlan plan;
-        try {
-            plan = translator.translate(clauses);
-        } catch (CompilationException e) {
-            throw CompilationException.create(ErrorCode.COMPILATION_TRANSLATION_ERROR, e);
-        }
-        context.setVarCounter(counter.get());
-
-        return plan.getRoots().get(0).getValue();
-    }
-
-    // Since the generatePrefixFuzzyJoinSubplan generates the prefix-based join operators for the partial simJoin
-    // of expRef, we need to add the full condition expRef\getItemExprRef into the top-level operator of the plan.
-    // Notice: Any composite select on leftOuterJoin with fuzzyjoin condition inlined can be regarded as its example.
-    // Example: leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.aql or with more extra conditions inlined.
-    private void setConditionForLeftOuterJoin(LeftOuterJoinOperator topJoin, Mutable<ILogicalExpression> expRef) {
-        // Combine the conditions of top join of aqlplus plan and the original join
-        AbstractFunctionCallExpression andFunc =
-                new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(AlgebricksBuiltinFunctions.AND));
-
-        List<Mutable<ILogicalExpression>> conjs = new ArrayList<>();
-        if (topJoin.getCondition().getValue().splitIntoConjuncts(conjs)) {
-            andFunc.getArguments().addAll(conjs);
-        } else {
-            andFunc.getArguments().add(new MutableObject<>(topJoin.getCondition().getValue()));
-        }
-
-        List<Mutable<ILogicalExpression>> conjs2 = new ArrayList<>();
-        if (expRef.getValue().splitIntoConjuncts(conjs2)) {
-            andFunc.getArguments().addAll(conjs2);
-        } else {
-            andFunc.getArguments().add(expRef);
-        }
-        topJoin.getCondition().setValue(andFunc);
-    }
-
-    /**
-     * Look for GET_ITEM function call.
-     */
-    private Mutable<ILogicalExpression> getSimilarityExpression(Mutable<ILogicalExpression> exprRef) {
-        ILogicalExpression exp = exprRef.getValue();
-        if (exp.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
-            AbstractFunctionCallExpression funcExpr = (AbstractFunctionCallExpression) exp;
-            if (funcExpr.getFunctionIdentifier().equals(BuiltinFunctions.GET_ITEM)) {
-                return exprRef;
-            }
-            if (funcExpr.getFunctionIdentifier().equals(AlgebricksBuiltinFunctions.AND)) {
-                for (Mutable<ILogicalExpression> arg : funcExpr.getArguments()) {
-                    Mutable<ILogicalExpression> expRefRet = getSimilarityExpression(arg);
-                    if (expRefRet != null) {
-                        return expRefRet;
-                    }
-                }
-            }
-        }
-        return null;
-    }
-
-    // To extract all the PKs of the liveVars referenced by on of the fuzzyjoin branch branch.
-    private List<LogicalVariable> findPrimaryKeysInSubplan(Collection<LogicalVariable> liveVars,
-            IOptimizationContext context) {
-        Collection<LogicalVariable> primaryKeys = new HashSet<>();
-        for (LogicalVariable var : liveVars) {
-            List<LogicalVariable> pks = context.findPrimaryKey(var);
-            if (pks != null) {
-                primaryKeys.addAll(pks);
-            }
-        }
-        if (primaryKeys.isEmpty()) {
-            return new ArrayList<>();
-        }
-        return new ArrayList<>(primaryKeys);
-    }
-}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastForExternalFunctionRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastForExternalFunctionRule.java
index a00933a..d3eb0c2 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastForExternalFunctionRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastForExternalFunctionRule.java
@@ -19,9 +19,8 @@
 
 package org.apache.asterix.optimizer.rules;
 
-import org.apache.asterix.lang.common.util.FunctionUtil;
-import org.apache.asterix.metadata.functions.ExternalScalarFunctionInfo;
 import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.ExternalFunctionInfo;
 import org.apache.asterix.om.typecomputer.base.TypeCastUtils;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
@@ -69,7 +68,7 @@
             }
         }
         // if the current function is builtin function, skip the type casting
-        if (BuiltinFunctions.getBuiltinFunctionIdentifier(funcCallExpr.getFunctionIdentifier()) != null) {
+        if (BuiltinFunctions.getBuiltinFunctionInfo(funcCallExpr.getFunctionIdentifier()) != null) {
             return changed;
         }
         IAType inputType;
@@ -78,7 +77,7 @@
         for (int i = 0; i < funcCallExpr.getArguments().size(); i++) {
             Mutable<ILogicalExpression> argExpr = funcCallExpr.getArguments().get(i);
             inputType = (IAType) op.computeOutputTypeEnvironment(context).getType(argExpr.getValue());
-            reqArgType = ((ExternalScalarFunctionInfo) funcCallExpr.getFunctionInfo()).getArgumentTypes().get(i);
+            reqArgType = ((ExternalFunctionInfo) funcCallExpr.getFunctionInfo()).getParameterTypes().get(i);
 
             if (reqArgType.getTypeTag() == ATypeTag.OBJECT) {
                 castFlag = !IntroduceDynamicTypeCastRule.compatible((ARecordType) reqArgType, inputType,
@@ -97,8 +96,8 @@
                 checkUnknown = true;
             }
             if (castFlag || checkUnknown) {
-                AbstractFunctionCallExpression castFunc =
-                        new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.CAST_TYPE));
+                AbstractFunctionCallExpression castFunc = new ScalarFunctionCallExpression(
+                        BuiltinFunctions.getBuiltinFunctionInfo(BuiltinFunctions.CAST_TYPE));
                 castFunc.setSourceLocation(argExpr.getValue().getSourceLocation());
                 castFunc.getArguments().add(argExpr);
                 TypeCastUtils.setRequiredAndInputTypes(castFunc, reqArgType, inputType);
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceMaterializationForInsertWithSelfScanRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceMaterializationForInsertWithSelfScanRule.java
index f4d8419..d838d71 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceMaterializationForInsertWithSelfScanRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceMaterializationForInsertWithSelfScanRule.java
@@ -70,10 +70,12 @@
             materializeOperator.getInputs()
                     .add(new MutableObject<ILogicalOperator>(insertOp.getInputs().get(0).getValue()));
             context.computeAndSetTypeEnvironmentForOperator(materializeOperator);
+            materializeOperator.recomputeSchema();
 
             insertOp.getInputs().clear();
             insertOp.getInputs().add(new MutableObject<ILogicalOperator>(materializeOperator));
             context.computeAndSetTypeEnvironmentForOperator(insertOp);
+            insertOp.recomputeSchema();
             return true;
         } else {
             return false;
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java
index 4a75cb3..9195c5e 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java
@@ -75,6 +75,7 @@
         exchangeOp.setExecutionMode(em);
         exchangeOp.computeDeliveredPhysicalProperties(context);
         context.computeAndSetTypeEnvironmentForOperator(exchangeOp);
+        exchangeOp.recomputeSchema();
 
         AssignOperator assignOp = (AssignOperator) opRef.getValue();
         AssignPOperator assignPhyOp = (AssignPOperator) assignOp.getPhysicalOperator();
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 0b75be6..ed35026 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
@@ -76,6 +76,7 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.InsertDeleteUpsertOperator.Kind;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.TokenizeOperator;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 
@@ -351,31 +352,40 @@
 
                     // TokenizeOperator to tokenize [SK, PK] pairs
                     TokenizeOperator tokenUpdate = new TokenizeOperator(dataSourceIndex,
-                            primaryIndexModificationOp.getPrimaryKeyExpressions(), secondaryExpressions,
-                            tokenizeKeyVars, filterExpression, primaryIndexModificationOp.getOperation(),
-                            primaryIndexModificationOp.isBulkload(), isPartitioned, varTypes);
+                            OperatorManipulationUtil
+                                    .cloneExpressions(primaryIndexModificationOp.getPrimaryKeyExpressions()),
+                            secondaryExpressions, tokenizeKeyVars,
+                            filterExpression != null
+                                    ? new MutableObject<>(filterExpression.getValue().cloneExpression()) : null,
+                            primaryIndexModificationOp.getOperation(), primaryIndexModificationOp.isBulkload(),
+                            isPartitioned, varTypes);
                     tokenUpdate.setSourceLocation(sourceLoc);
                     tokenUpdate.getInputs().add(new MutableObject<ILogicalOperator>(currentTop));
                     context.computeAndSetTypeEnvironmentForOperator(tokenUpdate);
                     replicateOutput = tokenUpdate;
                     indexUpdate = new IndexInsertDeleteUpsertOperator(dataSourceIndex,
-                            primaryIndexModificationOp.getPrimaryKeyExpressions(), tokenizeKeyExprs, filterExpression,
-                            primaryIndexModificationOp.getOperation(), primaryIndexModificationOp.isBulkload(),
-                            primaryIndexModificationOp.getAdditionalNonFilteringExpressions() == null ? 0
-                                    : primaryIndexModificationOp.getAdditionalNonFilteringExpressions().size());
-                    indexUpdate.setSourceLocation(sourceLoc);
-                    indexUpdate.setAdditionalFilteringExpressions(filteringExpressions);
-                    indexUpdate.getInputs().add(new MutableObject<ILogicalOperator>(tokenUpdate));
-                } else {
-                    // When TokenizeOperator is not needed
-                    indexUpdate = new IndexInsertDeleteUpsertOperator(dataSourceIndex,
-                            primaryIndexModificationOp.getPrimaryKeyExpressions(), secondaryExpressions,
-                            filterExpression, primaryIndexModificationOp.getOperation(),
+                            OperatorManipulationUtil
+                                    .cloneExpressions(primaryIndexModificationOp.getPrimaryKeyExpressions()),
+                            tokenizeKeyExprs, filterExpression, primaryIndexModificationOp.getOperation(),
                             primaryIndexModificationOp.isBulkload(),
                             primaryIndexModificationOp.getAdditionalNonFilteringExpressions() == null ? 0
                                     : primaryIndexModificationOp.getAdditionalNonFilteringExpressions().size());
                     indexUpdate.setSourceLocation(sourceLoc);
-                    indexUpdate.setAdditionalFilteringExpressions(filteringExpressions);
+                    indexUpdate.setAdditionalFilteringExpressions(
+                            OperatorManipulationUtil.cloneExpressions(filteringExpressions));
+                    indexUpdate.getInputs().add(new MutableObject<ILogicalOperator>(tokenUpdate));
+                } else {
+                    // When TokenizeOperator is not needed
+                    indexUpdate = new IndexInsertDeleteUpsertOperator(dataSourceIndex,
+                            OperatorManipulationUtil
+                                    .cloneExpressions(primaryIndexModificationOp.getPrimaryKeyExpressions()),
+                            secondaryExpressions, filterExpression, primaryIndexModificationOp.getOperation(),
+                            primaryIndexModificationOp.isBulkload(),
+                            primaryIndexModificationOp.getAdditionalNonFilteringExpressions() == null ? 0
+                                    : primaryIndexModificationOp.getAdditionalNonFilteringExpressions().size());
+                    indexUpdate.setSourceLocation(sourceLoc);
+                    indexUpdate.setAdditionalFilteringExpressions(
+                            OperatorManipulationUtil.cloneExpressions(filteringExpressions));
                     replicateOutput = indexUpdate;
                     // We add the necessary expressions for upsert
                     if (primaryIndexModificationOp.getOperation() == Kind.UPSERT) {
@@ -479,12 +489,15 @@
                 }
                 DataSourceIndex dataSourceIndex = new DataSourceIndex(index, dataverseName, datasetName, mp);
                 indexUpdate = new IndexInsertDeleteUpsertOperator(dataSourceIndex,
-                        primaryIndexModificationOp.getPrimaryKeyExpressions(), secondaryExpressions, filterExpression,
-                        primaryIndexModificationOp.getOperation(), primaryIndexModificationOp.isBulkload(),
+                        OperatorManipulationUtil
+                                .cloneExpressions(primaryIndexModificationOp.getPrimaryKeyExpressions()),
+                        secondaryExpressions, filterExpression, primaryIndexModificationOp.getOperation(),
+                        primaryIndexModificationOp.isBulkload(),
                         primaryIndexModificationOp.getAdditionalNonFilteringExpressions() == null ? 0
                                 : primaryIndexModificationOp.getAdditionalNonFilteringExpressions().size());
                 indexUpdate.setSourceLocation(sourceLoc);
-                indexUpdate.setAdditionalFilteringExpressions(filteringExpressions);
+                indexUpdate.setAdditionalFilteringExpressions(
+                        OperatorManipulationUtil.cloneExpressions(filteringExpressions));
                 if (primaryIndexModificationOp.getOperation() == Kind.UPSERT) {
                     // set before op secondary key expressions
                     if (filteringFields != null) {
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/LoadRecordFieldsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/LoadRecordFieldsRule.java
index 6762e77..ce1312f 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/LoadRecordFieldsRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/LoadRecordFieldsRule.java
@@ -292,7 +292,7 @@
         VariableUtilities.getLiveVariables(assign, liveInputVars);
         usedVariables.removeAll(liveInputVars);
         if (usedVariables.isEmpty()) {
-            assign.getExpressions().get(0).setValue(fldExpr);
+            assign.getExpressions().get(0).setValue(fldExpr.cloneExpression());
             return true;
         } else {
             return false;
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RewriteDistinctAggregateRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RewriteDistinctAggregateRule.java
index 92b1ab6..9d0ee59 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RewriteDistinctAggregateRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RewriteDistinctAggregateRule.java
@@ -321,7 +321,7 @@
             if (regularAggForDistinct == null) {
                 throw new IllegalStateException(String.valueOf(callExpr.getFunctionIdentifier()));
             }
-            callExpr.setFunctionInfo(BuiltinFunctions.getAsterixFunctionInfo(regularAggForDistinct));
+            callExpr.setFunctionInfo(BuiltinFunctions.getBuiltinFunctionInfo(regularAggForDistinct));
 
             if (assignOp != null) {
                 callExpr.getArguments().get(0).setValue(distinctVarRef.cloneExpression());
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
index f4f8fa2..abe4b71 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
@@ -22,9 +22,8 @@
 import java.util.Set;
 import java.util.function.Predicate;
 
-import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.metadata.declared.DataSource;
-import org.apache.asterix.metadata.declared.DataSourceId;
+import org.apache.asterix.metadata.declared.FunctionDataSource;
 import org.apache.asterix.metadata.utils.MetadataConstants;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.optimizer.base.AsterixOptimizationContext;
@@ -53,13 +52,13 @@
     }
 
     private boolean forceMinMemoryBudget(AsterixOptimizationContext context) {
-        Int2ObjectMap<Set<DataSourceId>> dataSourceMap = context.getDataSourceMap();
+        Int2ObjectMap<Set<DataSource>> dataSourceMap = context.getDataSourceMap();
         if (dataSourceMap.isEmpty()) {
             return false;
         }
-        for (Int2ObjectMap.Entry<Set<DataSourceId>> me : dataSourceMap.int2ObjectEntrySet()) {
+        for (Int2ObjectMap.Entry<Set<DataSource>> me : dataSourceMap.int2ObjectEntrySet()) {
             int dataSourceType = me.getIntKey();
-            Predicate<DataSourceId> dataSourceTest;
+            Predicate<DataSource> dataSourceTest;
             switch (dataSourceType) {
                 case DataSource.Type.INTERNAL_DATASET:
                     dataSourceTest = SetAsterixMemoryRequirementsRule::isMinMemoryBudgetDataset;
@@ -77,13 +76,13 @@
         return true;
     }
 
-    private static boolean isMinMemoryBudgetDataset(DataSourceId dsId) {
-        return MetadataConstants.METADATA_DATAVERSE_NAME.equals(dsId.getDataverseName());
+    private static boolean isMinMemoryBudgetDataset(DataSource ds) {
+        return MetadataConstants.METADATA_DATAVERSE_NAME.equals(ds.getId().getDataverseName());
     }
 
-    private static boolean isMinMemoryBudgetFunction(DataSourceId dsId) {
-        return BuiltinFunctions.builtinFunctionHasProperty(
-                FunctionSignature.createFunctionIdentifier(dsId.getDataverseName(), dsId.getDatasourceName()),
+    private static boolean isMinMemoryBudgetFunction(DataSource ds) {
+        FunctionDataSource fds = (FunctionDataSource) ds;
+        return BuiltinFunctions.builtinFunctionHasProperty(fds.getFunctionId(),
                 BuiltinFunctions.DataSourceFunctionProperty.MIN_MEMORY_BUDGET);
     }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java
index 31de7ee..e662737 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java
@@ -34,6 +34,7 @@
 import org.apache.asterix.optimizer.base.AnalysisUtil;
 import org.apache.asterix.optimizer.rules.am.AccessMethodJobGenParams;
 import org.apache.asterix.optimizer.rules.am.BTreeJobGenParams;
+import org.apache.asterix.optimizer.rules.util.AsterixJoinUtils;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -53,6 +54,8 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractUnnestMapOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AggregateOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterJoinOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterUnnestMapOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
@@ -79,6 +82,26 @@
         }
 
         @Override
+        public IPhysicalOperator visitInnerJoinOperator(InnerJoinOperator op, Boolean topLevelOp)
+                throws AlgebricksException {
+            AsterixJoinUtils.setJoinAlgorithmAndExchangeAlgo(op, topLevelOp, context);
+            if (op.getPhysicalOperator() != null) {
+                return op.getPhysicalOperator();
+            }
+            return super.visitInnerJoinOperator(op, topLevelOp);
+        }
+
+        @Override
+        public IPhysicalOperator visitLeftOuterJoinOperator(LeftOuterJoinOperator op, Boolean topLevelOp)
+                throws AlgebricksException {
+            AsterixJoinUtils.setJoinAlgorithmAndExchangeAlgo(op, topLevelOp, context);
+            if (op.getPhysicalOperator() != null) {
+                return op.getPhysicalOperator();
+            }
+            return super.visitLeftOuterJoinOperator(op, topLevelOp);
+        }
+
+        @Override
         public ExternalGroupByPOperator createExternalGroupByPOperator(GroupByOperator gby) throws AlgebricksException {
             Mutable<ILogicalOperator> r0 = gby.getNestedPlans().get(0).getRoots().get(0);
             if (!r0.getValue().getOperatorTag().equals(LogicalOperatorTag.AGGREGATE)) {
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetupCommitExtensionOpRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetupCommitExtensionOpRule.java
index cc50dce4..fbf086b 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetupCommitExtensionOpRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetupCommitExtensionOpRule.java
@@ -110,6 +110,7 @@
         //update plan link
         extensionOperator.getInputs().add(eOp.getInputs().get(0));
         context.computeAndSetTypeEnvironmentForOperator(extensionOperator);
+        extensionOperator.recomputeSchema();
         opRef.setValue(extensionOperator);
         return true;
     }
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 0d02385..eabe977 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
@@ -19,6 +19,7 @@
 package org.apache.asterix.optimizer.rules;
 
 import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionToDataSourceRewriter;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
@@ -46,7 +47,12 @@
         if (f == null) {
             return false;
         }
-        return BuiltinFunctions.getDatasourceTransformer(f.getFunctionIdentifier()).rewrite(opRef, context);
+        IFunctionToDataSourceRewriter transformer =
+                BuiltinFunctions.getDatasourceTransformer(f.getFunctionIdentifier());
+        if (transformer == null) {
+            return false;
+        }
+        return transformer.rewrite(opRef, context);
     }
 
     public static AbstractFunctionCallExpression getFunctionCall(Mutable<ILogicalOperator> opRef) {
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 164a505..87a2d03 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
@@ -792,6 +792,9 @@
             } else {
                 keyVar = ((VariableReferenceExpression) searchKeyExpr).getVariableReference();
                 if (constExpression != null) {
+                    if (constExpression.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
+                        constExpression = constExpression.cloneExpression();
+                    }
                     assignKeyExprList.add(new MutableObject<>(constExpression));
                     assignKeyVarList.add(constExprVars[i]);
                 }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java
index 95b7e17..bd5d82a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java
@@ -89,21 +89,26 @@
         AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
 
         Dataset dataset = getDataset(op, context);
+        Integer filterSourceIndicator = null;
         List<String> filterFieldName = null;
-        ARecordType recType = null;
+        ARecordType itemType = null;
         MetadataProvider mp = (MetadataProvider) context.getMetadataProvider();
         if (dataset != null && dataset.getDatasetType() == DatasetType.INTERNAL) {
+            filterSourceIndicator = DatasetUtil.getFilterSourceIndicator(dataset);
             filterFieldName = DatasetUtil.getFilterField(dataset);
-            IAType itemType = mp.findType(dataset.getItemTypeDataverseName(), dataset.getItemTypeName());
-            if (itemType.getTypeTag() == ATypeTag.OBJECT) {
-                recType = (ARecordType) itemType;
+            IAType filterSourceType = filterSourceIndicator == null || filterSourceIndicator == 0
+                    ? mp.findType(dataset.getItemTypeDataverseName(), dataset.getItemTypeName())
+                    : mp.findType(dataset.getMetaItemTypeDataverseName(), dataset.getMetaItemTypeName());
+
+            if (filterSourceType.getTypeTag() == ATypeTag.OBJECT) {
+                itemType = (ARecordType) filterSourceType;
             }
         }
-        if (filterFieldName == null || recType == null) {
+        if (filterFieldName == null || itemType == null) {
             return false;
         }
 
-        IAType filterType = recType.getSubFieldType(filterFieldName);
+        IAType filterType = itemType.getSubFieldType(filterFieldName);
 
         typeEnvironment = context.getOutputTypeEnvironment(op);
         ILogicalExpression condExpr = ((SelectOperator) op).getCondition().getValue();
@@ -116,10 +121,11 @@
 
             for (int i = 0; i < analysisCtx.getMatchedFuncExprs().size(); i++) {
                 IOptimizableFuncExpr optFuncExpr = analysisCtx.getMatchedFuncExpr(i);
-                boolean found = findMacthedExprFieldName(optFuncExpr, op, dataset, recType, datasetIndexes, context);
-                // the field name source should be from the dataset record, i.e. source should be == 0
+                boolean found = findMacthedExprFieldName(optFuncExpr, op, dataset, itemType, datasetIndexes, context,
+                        filterSourceIndicator);
+                // the field name source should be consistent with the filter source indicator
                 if (found && optFuncExpr.getFieldName(0).equals(filterFieldName)
-                        && optFuncExpr.getFieldSource(0) == 0) {
+                        && optFuncExpr.getFieldSource(0) == filterSourceIndicator) {
                     optFuncExprs.add(optFuncExpr);
                 }
             }
@@ -490,8 +496,8 @@
     }
 
     private boolean findMacthedExprFieldName(IOptimizableFuncExpr optFuncExpr, AbstractLogicalOperator op,
-            Dataset dataset, ARecordType recType, List<Index> datasetIndexes, IOptimizationContext context)
-            throws AlgebricksException {
+            Dataset dataset, ARecordType filterSourceType, List<Index> datasetIndexes, IOptimizationContext context,
+            Integer filterSourceIndicator) throws AlgebricksException {
         AbstractLogicalOperator descendantOp = (AbstractLogicalOperator) op.getInputs().get(0).getValue();
         while (descendantOp != null) {
             if (descendantOp.getOperatorTag() == LogicalOperatorTag.ASSIGN) {
@@ -503,13 +509,16 @@
                     if (funcVarIndex == -1) {
                         continue;
                     }
-                    // TODO(ali): this SQ NPE should be investigated
-                    List<String> fieldName =
-                            getFieldNameFromSubAssignTree(optFuncExpr, descendantOp, varIndex, recType).second;
-                    if (fieldName == null) {
+                    Pair<ARecordType, List<String>> fieldNamePairs =
+                            getFieldNameFromSubAssignTree(optFuncExpr, descendantOp, varIndex, filterSourceType,
+                                    filterSourceIndicator, dataset.getPrimaryKeys().size());
+                    if (fieldNamePairs == null) {
                         return false;
                     }
-                    optFuncExpr.setFieldName(funcVarIndex, fieldName, 0);
+                    List<String> fieldName = fieldNamePairs.second;
+                    // Since we validated the filter source in getFieldNameFromSubAssignTree, we can safely set the
+                    // fieldSource to be filterSourceIndicator
+                    optFuncExpr.setFieldName(funcVarIndex, fieldName, filterSourceIndicator);
                     return true;
                 }
             } else if (descendantOp.getOperatorTag() == LogicalOperatorTag.DATASOURCESCAN) {
@@ -563,8 +572,11 @@
 
                     IAType metaItemType = ((MetadataProvider) context.getMetadataProvider())
                             .findType(dataset.getMetaItemTypeDataverseName(), dataset.getMetaItemTypeName());
+                    IAType recordItemType = ((MetadataProvider) context.getMetadataProvider())
+                            .findType(dataset.getMetaItemTypeDataverseName(), dataset.getItemTypeName());
+                    ARecordType recordType = (ARecordType) recordItemType;
                     ARecordType metaRecType = (ARecordType) metaItemType;
-                    int numSecondaryKeys = KeyFieldTypeUtil.getNumSecondaryKeys(index, recType, metaRecType);
+                    int numSecondaryKeys = KeyFieldTypeUtil.getNumSecondaryKeys(index, recordType, metaRecType);
                     List<String> fieldName;
                     int keySource;
                     if (varIndex >= numSecondaryKeys) {
@@ -596,7 +608,8 @@
     }
 
     private Pair<ARecordType, List<String>> getFieldNameFromSubAssignTree(IOptimizableFuncExpr optFuncExpr,
-            AbstractLogicalOperator op, int varIndex, ARecordType recType) {
+            AbstractLogicalOperator op, int varIndex, ARecordType filterSourceType, Integer filterSourceIndicator,
+            int numOfPKeys) {
         AbstractLogicalExpression expr = null;
         if (op.getOperatorTag() == LogicalOperatorTag.ASSIGN) {
             AssignOperator assignOp = (AssignOperator) op;
@@ -619,8 +632,12 @@
             for (int varCheck = 0; varCheck < op.getInputs().size(); varCheck++) {
                 AbstractLogicalOperator nestedOp = (AbstractLogicalOperator) op.getInputs().get(varCheck).getValue();
                 if (nestedOp.getOperatorTag() != LogicalOperatorTag.ASSIGN) {
-                    if (varCheck == op.getInputs().size() - 1) {
-
+                    if (nestedOp.getOperatorTag() != LogicalOperatorTag.DATASOURCESCAN) {
+                        return null;
+                    }
+                    List<LogicalVariable> scannedVars = ((DataSourceScanOperator) nestedOp).getScanVariables();
+                    if (scannedVars.indexOf(usedVar) != filterSourceIndicator + numOfPKeys) {
+                        return null;
                     }
                 } else {
                     int nestedAssignVar = ((AssignOperator) nestedOp).getVariables().indexOf(usedVar);
@@ -630,9 +647,10 @@
                     //get the nested info from the lower input
                     Pair<ARecordType, List<String>> lowerInfo = getFieldNameFromSubAssignTree(optFuncExpr,
                             (AbstractLogicalOperator) op.getInputs().get(varCheck).getValue(), nestedAssignVar,
-                            recType);
+                            filterSourceType, filterSourceIndicator, numOfPKeys);
                     if (lowerInfo != null) {
-                        recType = lowerInfo.first;
+                        // propagate filterSourceType in case the filter value comes from a nested attribute.
+                        filterSourceType = lowerInfo.first;
                         returnList = lowerInfo.second;
                     }
                 }
@@ -644,18 +662,18 @@
                     return null;
                 }
                 returnList.add(fieldName);
-                return new Pair<>(recType, returnList);
+                return new Pair<>(filterSourceType, returnList);
             } else if (funcIdent == BuiltinFunctions.FIELD_ACCESS_BY_INDEX) {
                 Integer fieldIndex = ConstantExpressionUtil.getIntArgument(funcExpr, 1);
                 if (fieldIndex == null) {
                     return null;
                 }
-                returnList.add(recType.getFieldNames()[fieldIndex]);
-                IAType subType = recType.getFieldTypes()[fieldIndex];
+                returnList.add(filterSourceType.getFieldNames()[fieldIndex]);
+                IAType subType = filterSourceType.getFieldTypes()[fieldIndex];
                 if (subType.getTypeTag() == ATypeTag.OBJECT) {
-                    recType = (ARecordType) subType;
+                    filterSourceType = (ARecordType) subType;
                 }
-                return new Pair<>(recType, returnList);
+                return new Pair<>(filterSourceType, returnList);
             }
 
         }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/AsterixJoinUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/AsterixJoinUtils.java
new file mode 100644
index 0000000..3a07e10
--- /dev/null
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/AsterixJoinUtils.java
@@ -0,0 +1,85 @@
+/*
+ * 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.optimizer.rules.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.asterix.common.annotations.RangeAnnotation;
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator;
+import org.apache.hyracks.api.exceptions.ErrorCode;
+import org.apache.hyracks.api.exceptions.IWarningCollector;
+import org.apache.hyracks.api.exceptions.Warning;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class AsterixJoinUtils {
+
+    private static final int LEFT = 0;
+    private static final int RIGHT = 1;
+
+    private AsterixJoinUtils() {
+    }
+
+    public static void setJoinAlgorithmAndExchangeAlgo(AbstractBinaryJoinOperator op, Boolean topLevelOp,
+            IOptimizationContext context) throws AlgebricksException {
+        if (!topLevelOp) {
+            return;
+        }
+        ILogicalExpression conditionLE = op.getCondition().getValue();
+        if (conditionLE.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
+            return;
+        }
+        List<LogicalVariable> sideLeft = new ArrayList<>(1);
+        List<LogicalVariable> sideRight = new ArrayList<>(1);
+        List<LogicalVariable> varsLeft = op.getInputs().get(LEFT).getValue().getSchema();
+        List<LogicalVariable> varsRight = op.getInputs().get(RIGHT).getValue().getSchema();
+        AbstractFunctionCallExpression fexp = (AbstractFunctionCallExpression) conditionLE;
+        FunctionIdentifier fi =
+                IntervalJoinUtils.isIntervalJoinCondition(fexp, varsLeft, varsRight, sideLeft, sideRight, LEFT, RIGHT);
+        if (fi == null) {
+            return;
+        }
+        RangeAnnotation rangeAnnotation = IntervalJoinUtils.findRangeAnnotation(fexp);
+        if (rangeAnnotation == null) {
+            return;
+        }
+        //Check RangeMap type
+        RangeMap rangeMap = (RangeMap) rangeAnnotation.getObject();
+        if (rangeMap.getTag(0, 0) != ATypeTag.DATETIME.serialize() && rangeMap.getTag(0, 0) != ATypeTag.DATE.serialize()
+                && rangeMap.getTag(0, 0) != ATypeTag.TIME.serialize()) {
+            IWarningCollector warningCollector = context.getWarningCollector();
+            if (warningCollector.shouldWarn()) {
+                warningCollector.warn(Warning.forHyracks(op.getSourceLocation(), ErrorCode.INAPPLICABLE_HINT,
+                        "Date, DateTime, and Time are only range hints types supported for interval joins"));
+            }
+            return;
+        }
+        IntervalPartitions intervalPartitions =
+                IntervalJoinUtils.createIntervalPartitions(op, fi, sideLeft, sideRight, rangeMap, context, LEFT, RIGHT);
+        IntervalJoinUtils.setSortMergeIntervalJoinOp(op, fi, sideLeft, sideRight, context, intervalPartitions);
+    }
+}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalJoinUtils.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalJoinUtils.java
new file mode 100644
index 0000000..fa5ef51
--- /dev/null
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalJoinUtils.java
@@ -0,0 +1,252 @@
+/*
+ * 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.optimizer.rules.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.asterix.algebra.operators.physical.IntervalMergeJoinPOperator;
+import org.apache.asterix.common.annotations.RangeAnnotation;
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.runtime.operators.joins.interval.utils.AfterIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.BeforeIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.CoveredByIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.CoversIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.OverlappedByIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.OverlappingIntervalJoinUtilFactory;
+import org.apache.asterix.runtime.operators.joins.interval.utils.OverlapsIntervalJoinUtilFactory;
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionAnnotation;
+import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.AbstractJoinPOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.AssignPOperator;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty.PartitioningType;
+import org.apache.hyracks.algebricks.core.algebra.properties.IntervalColumn;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class IntervalJoinUtils {
+
+    private static final Map<FunctionIdentifier, FunctionIdentifier> INTERVAL_JOIN_CONDITIONS = new HashMap<>();
+
+    static {
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_AFTER, BuiltinFunctions.INTERVAL_BEFORE);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_BEFORE, BuiltinFunctions.INTERVAL_AFTER);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_COVERED_BY, BuiltinFunctions.INTERVAL_COVERS);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_COVERS, BuiltinFunctions.INTERVAL_COVERED_BY);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_OVERLAPPED_BY, BuiltinFunctions.INTERVAL_OVERLAPS);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_OVERLAPPING, BuiltinFunctions.INTERVAL_OVERLAPPING);
+        INTERVAL_JOIN_CONDITIONS.put(BuiltinFunctions.INTERVAL_OVERLAPS, BuiltinFunctions.INTERVAL_OVERLAPPED_BY);
+    }
+
+    protected static RangeAnnotation findRangeAnnotation(AbstractFunctionCallExpression fexp) {
+        Iterator<IExpressionAnnotation> annotationIter = fexp.getAnnotations().values().iterator();
+        while (annotationIter.hasNext()) {
+            IExpressionAnnotation annotation = annotationIter.next();
+            if (annotation instanceof RangeAnnotation) {
+                return (RangeAnnotation) annotation;
+            }
+        }
+        return null;
+    }
+
+    protected static void setSortMergeIntervalJoinOp(AbstractBinaryJoinOperator op, FunctionIdentifier fi,
+            List<LogicalVariable> sideLeft, List<LogicalVariable> sideRight, IOptimizationContext context,
+            IntervalPartitions intervalPartitions) throws CompilationException {
+        IIntervalJoinUtilFactory mjcf = createIntervalJoinCheckerFactory(fi, intervalPartitions.getRangeMap());
+        op.setPhysicalOperator(new IntervalMergeJoinPOperator(op.getJoinKind(),
+                AbstractJoinPOperator.JoinPartitioningType.BROADCAST, sideLeft, sideRight,
+                context.getPhysicalOptimizationConfig().getMaxFramesForJoin(), mjcf, intervalPartitions));
+    }
+
+    /**
+     * Certain Relations not yet supported as seen below. Will default to regular join.
+     * Inserts partition sort key.
+     */
+    protected static IntervalPartitions createIntervalPartitions(AbstractBinaryJoinOperator op, FunctionIdentifier fi,
+            List<LogicalVariable> sideLeft, List<LogicalVariable> sideRight, RangeMap rangeMap,
+            IOptimizationContext context, int left, int right) throws AlgebricksException {
+
+        List<LogicalVariable> leftPartitionVar = new ArrayList<>(2);
+        leftPartitionVar.add(context.newVar());
+        leftPartitionVar.add(context.newVar());
+        List<LogicalVariable> rightPartitionVar = new ArrayList<>(2);
+        rightPartitionVar.add(context.newVar());
+        rightPartitionVar.add(context.newVar());
+
+        insertPartitionSortKey(op, left, leftPartitionVar, sideLeft.get(0), context);
+        insertPartitionSortKey(op, right, rightPartitionVar, sideRight.get(0), context);
+
+        List<IntervalColumn> leftIC = Collections.singletonList(new IntervalColumn(leftPartitionVar.get(0),
+                leftPartitionVar.get(1), OrderOperator.IOrder.OrderKind.ASC));
+        List<IntervalColumn> rightIC = Collections.singletonList(new IntervalColumn(rightPartitionVar.get(0),
+                rightPartitionVar.get(1), OrderOperator.IOrder.OrderKind.ASC));
+
+        //Set Partitioning Types
+        PartitioningType leftPartitioningType = PartitioningType.ORDERED_PARTITIONED;
+        PartitioningType rightPartitioningType = PartitioningType.ORDERED_PARTITIONED;
+        if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPPED_BY)) {
+            rightPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPS)) {
+            leftPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPPING)) {
+            leftPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+            rightPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_COVERS)) {
+            leftPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_COVERED_BY)) {
+            rightPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_BEFORE)) {
+            leftPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_FOLLOWING;
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_AFTER)) {
+            rightPartitioningType = PartitioningType.PARTIAL_BROADCAST_ORDERED_FOLLOWING;
+        } else {
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, fi.getName());
+        }
+        return new IntervalPartitions(rangeMap, leftIC, rightIC, leftPartitioningType, rightPartitioningType);
+    }
+
+    protected static FunctionIdentifier isIntervalJoinCondition(ILogicalExpression e,
+            Collection<LogicalVariable> inLeftAll, Collection<LogicalVariable> inRightAll,
+            Collection<LogicalVariable> outLeftFields, Collection<LogicalVariable> outRightFields, int left,
+            int right) {
+        FunctionIdentifier fiReturn;
+        boolean switchArguments = false;
+        if (e.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
+            return null;
+        }
+        AbstractFunctionCallExpression fexp = (AbstractFunctionCallExpression) e;
+        FunctionIdentifier fi = fexp.getFunctionIdentifier();
+        if (isIntervalFunction(fi)) {
+            fiReturn = fi;
+        } else {
+            return null;
+        }
+        ILogicalExpression opLeft = fexp.getArguments().get(left).getValue();
+        ILogicalExpression opRight = fexp.getArguments().get(right).getValue();
+        if (opLeft.getExpressionTag() != LogicalExpressionTag.VARIABLE
+                || opRight.getExpressionTag() != LogicalExpressionTag.VARIABLE) {
+            return null;
+        }
+        LogicalVariable var1 = ((VariableReferenceExpression) opLeft).getVariableReference();
+        if (inLeftAll.contains(var1) && !outLeftFields.contains(var1)) {
+            outLeftFields.add(var1);
+        } else if (inRightAll.contains(var1) && !outRightFields.contains(var1)) {
+            outRightFields.add(var1);
+            fiReturn = getInverseIntervalFunction(fi);
+            switchArguments = true;
+        } else {
+            return null;
+        }
+        LogicalVariable var2 = ((VariableReferenceExpression) opRight).getVariableReference();
+        if (inLeftAll.contains(var2) && !outLeftFields.contains(var2) && switchArguments) {
+            outLeftFields.add(var2);
+        } else if (inRightAll.contains(var2) && !outRightFields.contains(var2) && !switchArguments) {
+            outRightFields.add(var2);
+        } else {
+            return null;
+        }
+        return fiReturn;
+    }
+
+    /**
+     * Certain Relations not yet supported as seen below. Will default to regular join.
+     */
+    private static IIntervalJoinUtilFactory createIntervalJoinCheckerFactory(FunctionIdentifier fi, RangeMap rangeMap)
+            throws CompilationException {
+        IIntervalJoinUtilFactory mjcf;
+        if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPPED_BY)) {
+            mjcf = new OverlappedByIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPS)) {
+            mjcf = new OverlapsIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_COVERS)) {
+            mjcf = new CoversIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_COVERED_BY)) {
+            mjcf = new CoveredByIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_BEFORE)) {
+            mjcf = new BeforeIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_AFTER)) {
+            mjcf = new AfterIntervalJoinUtilFactory();
+        } else if (fi.equals(BuiltinFunctions.INTERVAL_OVERLAPPING)) {
+            mjcf = new OverlappingIntervalJoinUtilFactory(rangeMap);
+        } else {
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, fi.getName());
+        }
+        return mjcf;
+    }
+
+    private static boolean isIntervalFunction(FunctionIdentifier fi) {
+        return INTERVAL_JOIN_CONDITIONS.containsKey(fi);
+    }
+
+    private static FunctionIdentifier getInverseIntervalFunction(FunctionIdentifier fi) {
+        return INTERVAL_JOIN_CONDITIONS.get(fi);
+    }
+
+    private static void insertPartitionSortKey(AbstractBinaryJoinOperator op, int branch,
+            List<LogicalVariable> partitionVars, LogicalVariable intervalVar, IOptimizationContext context)
+            throws AlgebricksException {
+        Mutable<ILogicalExpression> intervalExp = new MutableObject<>(new VariableReferenceExpression(intervalVar));
+
+        List<Mutable<ILogicalExpression>> assignExps = new ArrayList<>();
+        // Start partition
+        IFunctionInfo startFi = FunctionUtil.getFunctionInfo(BuiltinFunctions.ACCESSOR_TEMPORAL_INTERVAL_START);
+        ScalarFunctionCallExpression startPartitionExp = new ScalarFunctionCallExpression(startFi, intervalExp);
+        assignExps.add(new MutableObject<>(startPartitionExp));
+        // End partition
+        IFunctionInfo endFi = FunctionUtil.getFunctionInfo(BuiltinFunctions.ACCESSOR_TEMPORAL_INTERVAL_END);
+        ScalarFunctionCallExpression endPartitionExp = new ScalarFunctionCallExpression(endFi, intervalExp);
+        assignExps.add(new MutableObject<>(endPartitionExp));
+
+        AssignOperator ao = new AssignOperator(partitionVars, assignExps);
+        ao.setSourceLocation(op.getSourceLocation());
+        ao.setExecutionMode(op.getExecutionMode());
+        AssignPOperator apo = new AssignPOperator();
+        ao.setPhysicalOperator(apo);
+        Mutable<ILogicalOperator> aoRef = new MutableObject<>(ao);
+        ao.getInputs().add(op.getInputs().get(branch));
+        op.getInputs().set(branch, aoRef);
+
+        context.computeAndSetTypeEnvironmentForOperator(ao);
+        ao.recomputeSchema();
+    }
+}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalPartitions.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalPartitions.java
new file mode 100644
index 0000000..bc78017
--- /dev/null
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/IntervalPartitions.java
@@ -0,0 +1,82 @@
+/*
+ * 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.optimizer.rules.util;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty.PartitioningType;
+import org.apache.hyracks.algebricks.core.algebra.properties.IntervalColumn;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class IntervalPartitions {
+
+    private final RangeMap rangeMap;
+    private final List<IntervalColumn> leftIntervalColumn;
+    private final List<IntervalColumn> rightIntervalColumn;
+    private final PartitioningType leftPartitioningType;
+    private final PartitioningType rightPartitioningType;
+
+    IntervalPartitions(RangeMap rangeMap, List<IntervalColumn> leftIntervalColumn,
+            List<IntervalColumn> rightIntervalColumn, PartitioningType leftPartitioningType,
+            PartitioningType rightPartitioningType) {
+        this.rangeMap = rangeMap;
+        this.leftIntervalColumn = leftIntervalColumn;
+        this.rightIntervalColumn = rightIntervalColumn;
+        this.leftPartitioningType = leftPartitioningType;
+        this.rightPartitioningType = rightPartitioningType;
+    }
+
+    public RangeMap getRangeMap() {
+        return rangeMap;
+    }
+
+    public PartitioningType getLeftPartitioningType() {
+        return leftPartitioningType;
+    }
+
+    public PartitioningType getRightPartitioningType() {
+        return rightPartitioningType;
+    }
+
+    public List<IntervalColumn> getLeftIntervalColumn() {
+        return leftIntervalColumn;
+    }
+
+    public List<IntervalColumn> getRightIntervalColumn() {
+        return rightIntervalColumn;
+    }
+
+    public List<OrderColumn> getLeftStartColumn() {
+        LogicalVariable leftStartLogicalVariable = leftIntervalColumn.get(0).getStartColumn();
+        List<OrderColumn> leftOrderColumn =
+                Arrays.asList(new OrderColumn(leftStartLogicalVariable, leftIntervalColumn.get(0).getOrder()));
+        return leftOrderColumn;
+    }
+
+    public List<OrderColumn> getRightStartColumn() {
+        LogicalVariable rightStartLogicalVariable = rightIntervalColumn.get(0).getStartColumn();
+        List<OrderColumn> rightOrderColumn =
+                Arrays.asList(new OrderColumn(rightStartLogicalVariable, rightIntervalColumn.get(0).getOrder()));
+        return rightOrderColumn;
+    }
+}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
index c0d6f82..c82029b 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
@@ -89,8 +89,7 @@
         } else {
             LogicalVariable pVar = context.newVarFromExpression(fc.getPosVarExpr());
             // We set the positional variable type as INT64 type.
-            returnedOp = new UnnestOperator(v, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64,
-                    new PositionWriter());
+            returnedOp = new UnnestOperator(v, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64);
         }
         returnedOp.getInputs().add(pUnnestExpr.second);
         return new Pair<>(returnedOp, v);
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
deleted file mode 100644
index 531de59..0000000
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * 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.translator;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.lang.aql.clause.JoinClause;
-import org.apache.asterix.lang.aql.clause.MetaVariableClause;
-import org.apache.asterix.lang.aql.expression.MetaVariableExpr;
-import org.apache.asterix.lang.aql.visitor.base.IAQLPlusVisitor;
-import org.apache.asterix.lang.common.base.Clause;
-import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.expression.VariableExpr;
-import org.apache.asterix.lang.common.struct.Identifier;
-import org.apache.asterix.metadata.declared.MetadataProvider;
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.Pair;
-import org.apache.hyracks.algebricks.core.algebra.base.Counter;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterJoinOperator;
-import org.apache.hyracks.algebricks.core.algebra.plan.ALogicalPlanImpl;
-
-/**
- * This class is an extension of AQLExpressionToPlanTranslator. Specifically, it contains the visitor for
- * three extensions (MetaVariable, MetaClause, and JoinClause) to AQL in AQL+.
- * Meta-Variable ($$) refers the primary key or variable(s) in the logical plan.
- * Meta-Clause (##) refers the operator in the logical plan.
- * Join-Clause (join, loj) is required to build an explicit join in AQL level.
- * For more details of AQL+, refer to this thesis: www.ics.uci.edu/~rares/pub/phd-thesis-vernica.pdf
- */
-
-public class AqlPlusExpressionToPlanTranslator extends AqlExpressionToPlanTranslator
-        implements IAQLPlusVisitor<Pair<ILogicalOperator, LogicalVariable>, Mutable<ILogicalOperator>> {
-
-    private MetaScopeLogicalVariable metaScopeExp = new MetaScopeLogicalVariable();
-    private MetaScopeILogicalOperator metaScopeOp = new MetaScopeILogicalOperator();
-
-    public AqlPlusExpressionToPlanTranslator(MetadataProvider metadataProvider, Counter currentVarCounter)
-            throws AlgebricksException {
-        super(metadataProvider, currentVarCounter);
-        this.context.setTopFlwor(false);
-    }
-
-    public ILogicalPlan translate(List<Clause> clauses) throws AlgebricksException, CompilationException {
-        if (clauses == null) {
-            return null;
-        }
-
-        Mutable<ILogicalOperator> opRef = new MutableObject<ILogicalOperator>(new EmptyTupleSourceOperator());
-        Pair<ILogicalOperator, LogicalVariable> p = null;
-        for (Clause c : clauses) {
-            p = c.accept(this, opRef);
-            opRef = new MutableObject<ILogicalOperator>(p.first);
-        }
-
-        ArrayList<Mutable<ILogicalOperator>> globalPlanRoots = new ArrayList<Mutable<ILogicalOperator>>();
-
-        ILogicalOperator topOp = p.first;
-
-        globalPlanRoots.add(new MutableObject<ILogicalOperator>(topOp));
-        ILogicalPlan plan = new ALogicalPlanImpl(globalPlanRoots);
-        return plan;
-    }
-
-    @Override
-    public Pair<ILogicalOperator, LogicalVariable> visitMetaVariableClause(MetaVariableClause mc,
-            Mutable<ILogicalOperator> tupSource) throws CompilationException {
-        return new Pair<ILogicalOperator, LogicalVariable>(metaScopeOp.get(mc.getVar()), null);
-    }
-
-    @Override
-    public Pair<ILogicalOperator, LogicalVariable> visitJoinClause(JoinClause jc, Mutable<ILogicalOperator> tupSource)
-            throws CompilationException {
-        Mutable<ILogicalOperator> opRef = tupSource;
-        Pair<ILogicalOperator, LogicalVariable> leftSide = null;
-        for (Clause c : jc.getLeftClauses()) {
-            leftSide = c.accept(this, opRef);
-            opRef = new MutableObject<ILogicalOperator>(leftSide.first);
-        }
-
-        opRef = tupSource;
-        Pair<ILogicalOperator, LogicalVariable> rightSide = null;
-        for (Clause c : jc.getRightClauses()) {
-            rightSide = c.accept(this, opRef);
-            opRef = new MutableObject<ILogicalOperator>(rightSide.first);
-        }
-
-        Pair<ILogicalExpression, Mutable<ILogicalOperator>> whereCond =
-                langExprToAlgExpression(jc.getWhereExpr(), tupSource);
-
-        AbstractBinaryJoinOperator join;
-        switch (jc.getKind()) {
-            case INNER:
-                join = new InnerJoinOperator(new MutableObject<ILogicalExpression>(whereCond.first));
-                break;
-            case LEFT_OUTER:
-                join = new LeftOuterJoinOperator(new MutableObject<ILogicalExpression>(whereCond.first));
-                break;
-            default:
-                throw new CompilationException(ErrorCode.COMPILATION_AQLPLUS_NO_SUCH_JOIN_TYPE);
-        }
-        join.getInputs().add(new MutableObject<ILogicalOperator>(leftSide.first));
-        join.getInputs().add(new MutableObject<ILogicalOperator>(rightSide.first));
-        return new Pair<ILogicalOperator, LogicalVariable>(join, null);
-    }
-
-    @Override
-    public Pair<ILogicalOperator, LogicalVariable> visitMetaVariableExpr(MetaVariableExpr me,
-            Mutable<ILogicalOperator> tupSource) throws CompilationException {
-        LogicalVariable var = context.newVar();
-        AssignOperator a = new AssignOperator(var,
-                new MutableObject<ILogicalExpression>(metaScopeExp.getVariableReferenceExpression(me.getVar())));
-        a.getInputs().add(tupSource);
-        return new Pair<ILogicalOperator, LogicalVariable>(a, var);
-    }
-
-    public void addVariableToMetaScope(Identifier id, LogicalVariable var) {
-        metaScopeExp.put(id, var);
-    }
-
-    public void addOperatorToMetaScope(Identifier id, ILogicalOperator op) {
-        metaScopeOp.put(id, op);
-    }
-
-    // This method was overridden because of METAVARIABLE_EXPRESSION case.
-    @Override
-    protected Pair<ILogicalExpression, Mutable<ILogicalOperator>> langExprToAlgExpression(Expression expr,
-            Mutable<ILogicalOperator> topOpRef) throws CompilationException {
-        switch (expr.getKind()) {
-            case METAVARIABLE_EXPRESSION:
-                ILogicalExpression le = metaScopeExp.getVariableReferenceExpression(((VariableExpr) expr).getVar());
-                return new Pair<ILogicalExpression, Mutable<ILogicalOperator>>(le, topOpRef);
-            default:
-                return super.langExprToAlgExpression(expr, topOpRef);
-        }
-    }
-
-    /**
-     * This class refers to the primary-key or other variables in the given plan in AQL+ statements level.
-     */
-    private class MetaScopeLogicalVariable {
-        private HashMap<Identifier, LogicalVariable> map = new HashMap<Identifier, LogicalVariable>();
-
-        public VariableReferenceExpression getVariableReferenceExpression(Identifier id) throws CompilationException {
-            LogicalVariable var = map.get(id);
-            if (var == null) {
-                throw new CompilationException(ErrorCode.COMPILATION_AQLPLUS_IDENTIFIER_NOT_FOUND, id.toString());
-            }
-            return new VariableReferenceExpression(var);
-        }
-
-        public void put(Identifier id, LogicalVariable var) {
-            map.put(id, var);
-        }
-    }
-
-    /**
-     * This class refers to the operators in the given plan in AQL+ statements level.
-     */
-    private class MetaScopeILogicalOperator {
-        private HashMap<Identifier, ILogicalOperator> map = new HashMap<Identifier, ILogicalOperator>();
-
-        public ILogicalOperator get(Identifier id) throws CompilationException {
-            ILogicalOperator op = map.get(id);
-            if (op == null) {
-                throw new CompilationException(ErrorCode.COMPILATION_AQLPLUS_IDENTIFIER_NOT_FOUND, id.toString());
-            }
-            return op;
-        }
-
-        public void put(Identifier id, ILogicalOperator op) {
-            map.put(id, op);
-        }
-    }
-
-}
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 0f8a790..3c56a98 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
@@ -36,7 +36,6 @@
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.functions.FunctionConstants;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.Expression;
@@ -90,8 +89,8 @@
 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.functions.BuiltinFunctionInfo;
 import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.functions.FunctionInfo;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.IAType;
@@ -263,6 +262,7 @@
             assign.setExplicitOrderingProperty(new LocalOrderProperty(orderColumns));
         }
 
+        // Load does not support meta record now.
         List<String> additionalFilteringField = DatasetUtil.getFilterField(targetDatasource.getDataset());
         List<LogicalVariable> additionalFilteringVars;
         List<Mutable<ILogicalExpression>> additionalFilteringAssignExpressions;
@@ -366,70 +366,52 @@
             topOp.getInputs().get(0).setValue(assignCollectionToSequence);
             ProjectOperator projectOperator = (ProjectOperator) topOp;
             projectOperator.getVariables().set(0, seqVar);
-            resVar = seqVar;
+
             DatasetDataSource targetDatasource =
                     validateDatasetInfo(metadataProvider, stmt.getDataverseName(), stmt.getDatasetName(), sourceLoc);
             List<Integer> keySourceIndicator =
                     ((InternalDatasetDetails) targetDatasource.getDataset().getDatasetDetails())
                             .getKeySourceIndicator();
-            ArrayList<LogicalVariable> vars = new ArrayList<>();
-            ArrayList<Mutable<ILogicalExpression>> exprs = new ArrayList<>();
+            ArrayList<LogicalVariable> pkeyVars = new ArrayList<>();
+            ArrayList<Mutable<ILogicalExpression>> pkeyExprs = new ArrayList<>();
             List<Mutable<ILogicalExpression>> varRefsForLoading = new ArrayList<>();
             List<List<String>> partitionKeys = targetDatasource.getDataset().getPrimaryKeys();
             int numOfPrimaryKeys = partitionKeys.size();
             for (int i = 0; i < numOfPrimaryKeys; i++) {
                 if (keySourceIndicator == null || keySourceIndicator.get(i).intValue() == 0) {
                     // record part
-                    PlanTranslationUtil.prepareVarAndExpression(partitionKeys.get(i), resVar, vars, exprs,
+                    PlanTranslationUtil.prepareVarAndExpression(partitionKeys.get(i), seqVar, pkeyVars, pkeyExprs,
                             varRefsForLoading, context, sourceLoc);
                 } else {
                     // meta part
-                    PlanTranslationUtil.prepareMetaKeyAccessExpression(partitionKeys.get(i), unnestVar, exprs, vars,
-                            varRefsForLoading, context, sourceLoc);
+                    PlanTranslationUtil.prepareMetaKeyAccessExpression(partitionKeys.get(i), unnestVar, pkeyExprs,
+                            pkeyVars, varRefsForLoading, context, sourceLoc);
                 }
             }
 
-            AssignOperator assign = new AssignOperator(vars, exprs);
-            assign.setSourceLocation(sourceLoc);
-            List<String> additionalFilteringField = DatasetUtil.getFilterField(targetDatasource.getDataset());
-            List<LogicalVariable> additionalFilteringVars;
-            List<Mutable<ILogicalExpression>> additionalFilteringAssignExpressions;
-            List<Mutable<ILogicalExpression>> additionalFilteringExpressions = null;
-            AssignOperator additionalFilteringAssign = null;
-            if (additionalFilteringField != null) {
-                additionalFilteringVars = new ArrayList<>();
-                additionalFilteringAssignExpressions = new ArrayList<>();
-                additionalFilteringExpressions = new ArrayList<>();
+            AssignOperator pkeyAssignOp = new AssignOperator(pkeyVars, pkeyExprs);
+            pkeyAssignOp.setSourceLocation(sourceLoc);
+            pkeyAssignOp.getInputs().add(new MutableObject<>(topOp));
 
-                PlanTranslationUtil.prepareVarAndExpression(additionalFilteringField, resVar, additionalFilteringVars,
-                        additionalFilteringAssignExpressions, additionalFilteringExpressions, context, sourceLoc);
+            // the filters and metas could be handled here once we have unified processing for metas in
+            // all insert/upsert/delete
 
-                additionalFilteringAssign =
-                        new AssignOperator(additionalFilteringVars, additionalFilteringAssignExpressions);
-                additionalFilteringAssign.getInputs().add(new MutableObject<>(topOp));
-                additionalFilteringAssign.setSourceLocation(sourceLoc);
-                assign.getInputs().add(new MutableObject<>(additionalFilteringAssign));
-            } else {
-                assign.getInputs().add(new MutableObject<>(topOp));
-            }
-
-            VariableReferenceExpression resVarRef2 = new VariableReferenceExpression(resVar);
-            resVarRef2.setSourceLocation(sourceLoc);
-            Mutable<ILogicalExpression> varRef = new MutableObject<>(resVarRef2);
+            VariableReferenceExpression seqVarRef = new VariableReferenceExpression(seqVar);
+            seqVarRef.setSourceLocation(sourceLoc);
+            Mutable<ILogicalExpression> seqRef = new MutableObject<>(seqVarRef);
             ILogicalOperator leafOperator;
             switch (stmt.getKind()) {
                 case INSERT:
-                    leafOperator = translateInsert(targetDatasource, varRef, varRefsForLoading,
-                            additionalFilteringExpressions, assign, stmt, resultMetadata);
+                    leafOperator = translateInsert(targetDatasource, seqRef, varRefsForLoading, seqVar, pkeyAssignOp,
+                            stmt, resultMetadata);
                     break;
                 case UPSERT:
-                    leafOperator = translateUpsert(targetDatasource, varRef, varRefsForLoading,
-                            additionalFilteringExpressions, assign, additionalFilteringField, unnestVar, topOp, exprs,
-                            resVar, additionalFilteringAssign, stmt, resultMetadata);
+                    leafOperator = translateUpsert(targetDatasource, seqRef, varRefsForLoading, pkeyAssignOp, unnestVar,
+                            topOp, pkeyExprs, seqVar, stmt, resultMetadata);
                     break;
                 case DELETE:
-                    leafOperator = translateDelete(targetDatasource, varRef, varRefsForLoading,
-                            additionalFilteringExpressions, assign, stmt);
+                    leafOperator =
+                            translateDelete(targetDatasource, seqRef, varRefsForLoading, seqVar, pkeyAssignOp, stmt);
                     break;
                 default:
                     throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
@@ -443,9 +425,8 @@
         return plan;
     }
 
-    private ILogicalOperator translateDelete(DatasetDataSource targetDatasource, Mutable<ILogicalExpression> varRef,
-            List<Mutable<ILogicalExpression>> varRefsForLoading,
-            List<Mutable<ILogicalExpression>> additionalFilteringExpressions, ILogicalOperator assign,
+    protected ILogicalOperator translateDelete(DatasetDataSource targetDatasource, Mutable<ILogicalExpression> varRef,
+            List<Mutable<ILogicalExpression>> varRefsForLoading, LogicalVariable seqVar, ILogicalOperator pkeyAssignOp,
             ICompiledDmlStatement stmt) throws AlgebricksException {
         SourceLocation sourceLoc = stmt.getSourceLocation();
         if (targetDatasource.getDataset().hasMetaPart()) {
@@ -453,10 +434,19 @@
                     targetDatasource.getDataset().getDatasetName()
                             + ": delete from dataset is not supported on Datasets with Meta records");
         }
+
+        List<String> filterField = DatasetUtil.getFilterField(targetDatasource.getDataset());
+        List<Mutable<ILogicalExpression>> filterExprs = null;
+
+        // currently, meta-datasets cannot be inserted.
+        if (filterField != null) {
+            filterExprs = generatedFilterExprs(pkeyAssignOp, filterField, seqVar, sourceLoc);
+        }
+
         InsertDeleteUpsertOperator deleteOp = new InsertDeleteUpsertOperator(targetDatasource, varRef,
                 varRefsForLoading, InsertDeleteUpsertOperator.Kind.DELETE, false);
-        deleteOp.setAdditionalFilteringExpressions(additionalFilteringExpressions);
-        deleteOp.getInputs().add(new MutableObject<>(assign));
+        deleteOp.setAdditionalFilteringExpressions(filterExprs);
+        deleteOp.getInputs().add(new MutableObject<>(pkeyAssignOp));
         deleteOp.setSourceLocation(sourceLoc);
         DelegateOperator leafOperator = new DelegateOperator(new CommitOperator(true));
         leafOperator.getInputs().add(new MutableObject<>(deleteOp));
@@ -464,12 +454,11 @@
         return leafOperator;
     }
 
-    private ILogicalOperator translateUpsert(DatasetDataSource targetDatasource, Mutable<ILogicalExpression> varRef,
-            List<Mutable<ILogicalExpression>> varRefsForLoading,
-            List<Mutable<ILogicalExpression>> additionalFilteringExpressions, ILogicalOperator assign,
-            List<String> additionalFilteringField, LogicalVariable unnestVar, ILogicalOperator topOp,
-            List<Mutable<ILogicalExpression>> exprs, LogicalVariable resVar, AssignOperator additionalFilteringAssign,
-            ICompiledDmlStatement stmt, IResultMetadata resultMetadata) throws AlgebricksException {
+    protected ILogicalOperator translateUpsert(DatasetDataSource targetDatasource,
+            Mutable<ILogicalExpression> payloadVarRef, List<Mutable<ILogicalExpression>> varRefsForLoading,
+            ILogicalOperator pkeyAssignOp, LogicalVariable unnestVar, ILogicalOperator topOp,
+            List<Mutable<ILogicalExpression>> pkeyExprs, LogicalVariable seqVar, ICompiledDmlStatement stmt,
+            IResultMetadata resultMetadata) throws AlgebricksException {
         SourceLocation sourceLoc = stmt.getSourceLocation();
         if (!targetDatasource.getDataset().allow(topOp, DatasetUtil.OP_UPSERT)) {
             throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
@@ -481,15 +470,15 @@
         Expression returnExpression = compiledUpsert.getReturnExpression();
         InsertDeleteUpsertOperator upsertOp;
         ILogicalOperator rootOperator;
+        List<String> filterField = DatasetUtil.getFilterField(targetDatasource.getDataset());
+
         if (targetDatasource.getDataset().hasMetaPart()) {
             if (returnExpression != null) {
                 throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
                         "Returning not allowed on datasets with Meta records");
             }
-            AssignOperator metaAndKeysAssign;
             List<LogicalVariable> metaAndKeysVars;
             List<Mutable<ILogicalExpression>> metaAndKeysExprs;
-            List<Mutable<ILogicalExpression>> metaExpSingletonList;
             metaAndKeysVars = new ArrayList<>();
             metaAndKeysExprs = new ArrayList<>();
             // add the meta function
@@ -501,18 +490,16 @@
             metaFunction.setSourceLocation(sourceLoc);
             // create assign for the meta part
             LogicalVariable metaVar = context.newVar();
-            metaExpSingletonList = new ArrayList<>(1);
             VariableReferenceExpression metaVarRef = new VariableReferenceExpression(metaVar);
             metaVarRef.setSourceLocation(sourceLoc);
-            metaExpSingletonList.add(new MutableObject<>(metaVarRef));
             metaAndKeysVars.add(metaVar);
             metaAndKeysExprs.add(new MutableObject<>(metaFunction));
             project.getVariables().add(metaVar);
             varRefsForLoading.clear();
-            for (Mutable<ILogicalExpression> assignExpr : exprs) {
+            for (Mutable<ILogicalExpression> assignExpr : pkeyExprs) {
                 if (assignExpr.getValue().getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
                     AbstractFunctionCallExpression funcCall = (AbstractFunctionCallExpression) assignExpr.getValue();
-                    funcCall.substituteVar(resVar, unnestVar);
+                    funcCall.substituteVar(seqVar, unnestVar);
                     LogicalVariable pkVar = context.newVar();
                     metaAndKeysVars.add(pkVar);
                     metaAndKeysExprs.add(new MutableObject<>(assignExpr.getValue()));
@@ -521,54 +508,68 @@
                 }
             }
             // A change feed, we don't need the assign to access PKs
-            upsertOp = new InsertDeleteUpsertOperator(targetDatasource, varRef, varRefsForLoading, metaExpSingletonList,
-                    InsertDeleteUpsertOperator.Kind.UPSERT, false);
+            upsertOp = new InsertDeleteUpsertOperator(targetDatasource, payloadVarRef, varRefsForLoading,
+                    Collections.singletonList(new MutableObject<>(metaVarRef)), InsertDeleteUpsertOperator.Kind.UPSERT,
+                    false);
             upsertOp.setUpsertIndicatorVar(context.newVar());
             upsertOp.setUpsertIndicatorVarType(BuiltinType.ABOOLEAN);
             // Create and add a new variable used for representing the original record
             upsertOp.setPrevRecordVar(context.newVar());
             upsertOp.setPrevRecordType(targetDatasource.getItemType());
             upsertOp.setSourceLocation(sourceLoc);
-            if (targetDatasource.getDataset().hasMetaPart()) {
-                List<LogicalVariable> metaVars = new ArrayList<>();
-                metaVars.add(context.newVar());
-                upsertOp.setPrevAdditionalNonFilteringVars(metaVars);
-                List<Object> metaTypes = new ArrayList<>();
-                metaTypes.add(targetDatasource.getMetaItemType());
-                upsertOp.setPrevAdditionalNonFilteringTypes(metaTypes);
-            }
 
-            if (additionalFilteringField != null) {
-                upsertOp.setPrevFilterVar(context.newVar());
-                upsertOp.setPrevFilterType(
-                        ((ARecordType) targetDatasource.getItemType()).getFieldType(additionalFilteringField.get(0)));
-                additionalFilteringAssign.getInputs().clear();
-                additionalFilteringAssign.getInputs().add(assign.getInputs().get(0));
-                upsertOp.getInputs().add(new MutableObject<>(additionalFilteringAssign));
-            } else {
-                upsertOp.getInputs().add(assign.getInputs().get(0));
-            }
-            metaAndKeysAssign = new AssignOperator(metaAndKeysVars, metaAndKeysExprs);
+            List<LogicalVariable> metaVars = new ArrayList<>();
+            metaVars.add(context.newVar());
+            upsertOp.setPrevAdditionalNonFilteringVars(metaVars);
+            List<Object> metaTypes = new ArrayList<>();
+            metaTypes.add(targetDatasource.getMetaItemType());
+            upsertOp.setPrevAdditionalNonFilteringTypes(metaTypes);
+
+            // insert meta key assign before project
+            AssignOperator metaAndKeysAssign = new AssignOperator(metaAndKeysVars, metaAndKeysExprs);
             metaAndKeysAssign.getInputs().add(topOp.getInputs().get(0));
             metaAndKeysAssign.setSourceLocation(sourceLoc);
             topOp.getInputs().set(0, new MutableObject<>(metaAndKeysAssign));
-            upsertOp.setAdditionalFilteringExpressions(additionalFilteringExpressions);
+
+            // insert filter assign
+            if (filterField != null) {
+                LogicalVariable filterSourceVar =
+                        DatasetUtil.getFilterSourceIndicator(targetDatasource.getDataset()) == 0 ? seqVar : metaVar;
+                ARecordType filterSourceType = DatasetUtil.getFilterSourceIndicator(targetDatasource.getDataset()) == 0
+                        ? (ARecordType) targetDatasource.getItemType()
+                        : (ARecordType) targetDatasource.getMetaItemType();
+
+                List<Mutable<ILogicalExpression>> filterExprs =
+                        generatedFilterExprs(pkeyAssignOp, filterField, filterSourceVar, sourceLoc);
+
+                upsertOp.setPrevFilterVar(context.newVar());
+                upsertOp.setPrevFilterType(filterSourceType.getFieldType(filterField.get(0)));
+                upsertOp.setAdditionalFilteringExpressions(filterExprs);
+                upsertOp.getInputs().add(pkeyAssignOp.getInputs().get(0));
+            } else {
+                upsertOp.getInputs().add(new MutableObject<>(topOp));
+                upsertOp.setAdditionalFilteringExpressions(null);
+            }
         } else {
-            upsertOp = new InsertDeleteUpsertOperator(targetDatasource, varRef, varRefsForLoading,
+            ARecordType recordType = (ARecordType) targetDatasource.getItemType();
+            List<Mutable<ILogicalExpression>> filterExprs = null;
+            upsertOp = new InsertDeleteUpsertOperator(targetDatasource, payloadVarRef, varRefsForLoading,
                     InsertDeleteUpsertOperator.Kind.UPSERT, false);
-            upsertOp.setAdditionalFilteringExpressions(additionalFilteringExpressions);
-            upsertOp.getInputs().add(new MutableObject<>(assign));
+
+            if (filterField != null) {
+                // add filter assign
+                filterExprs = generatedFilterExprs(pkeyAssignOp, filterField, seqVar, sourceLoc);
+                upsertOp.setPrevFilterVar(context.newVar());
+                upsertOp.setPrevFilterType(recordType.getFieldType(filterField.get(0)));
+            }
+            upsertOp.getInputs().add(new MutableObject<>(pkeyAssignOp));
+            upsertOp.setAdditionalFilteringExpressions(filterExprs);
             upsertOp.setSourceLocation(sourceLoc);
             upsertOp.setUpsertIndicatorVar(context.newVar());
             upsertOp.setUpsertIndicatorVarType(BuiltinType.ABOOLEAN);
             // Create and add a new variable used for representing the original record
-            ARecordType recordType = (ARecordType) targetDatasource.getItemType();
             upsertOp.setPrevRecordVar(context.newVar());
             upsertOp.setPrevRecordType(recordType);
-            if (additionalFilteringField != null) {
-                upsertOp.setPrevFilterVar(context.newVar());
-                upsertOp.setPrevFilterType(recordType.getFieldType(additionalFilteringField.get(0)));
-            }
         }
         DelegateOperator delegateOperator = new DelegateOperator(new CommitOperator(returnExpression == null));
         delegateOperator.getInputs().add(new MutableObject<>(upsertOp));
@@ -579,9 +580,8 @@
         return processReturningExpression(rootOperator, upsertOp, compiledUpsert, resultMetadata);
     }
 
-    private ILogicalOperator translateInsert(DatasetDataSource targetDatasource, Mutable<ILogicalExpression> varRef,
-            List<Mutable<ILogicalExpression>> varRefsForLoading,
-            List<Mutable<ILogicalExpression>> additionalFilteringExpressions, ILogicalOperator assign,
+    protected ILogicalOperator translateInsert(DatasetDataSource targetDatasource, Mutable<ILogicalExpression> varRef,
+            List<Mutable<ILogicalExpression>> varRefsForLoading, LogicalVariable seqVar, ILogicalOperator pkeyAssignOp,
             ICompiledDmlStatement stmt, IResultMetadata resultMetadata) throws AlgebricksException {
         SourceLocation sourceLoc = stmt.getSourceLocation();
         if (targetDatasource.getDataset().hasMetaPart()) {
@@ -589,11 +589,20 @@
                     targetDatasource.getDataset().getDatasetName()
                             + ": insert into dataset is not supported on Datasets with Meta records");
         }
+
+        List<String> filterField = DatasetUtil.getFilterField(targetDatasource.getDataset());
+        List<Mutable<ILogicalExpression>> filterExprs = null;
+
+        // currently, meta-datasets cannot be inserted.
+        if (filterField != null) {
+            filterExprs = generatedFilterExprs(pkeyAssignOp, filterField, seqVar, sourceLoc);
+        }
+
         // Adds the insert operator.
         InsertDeleteUpsertOperator insertOp = new InsertDeleteUpsertOperator(targetDatasource, varRef,
                 varRefsForLoading, InsertDeleteUpsertOperator.Kind.INSERT, false);
-        insertOp.setAdditionalFilteringExpressions(additionalFilteringExpressions);
-        insertOp.getInputs().add(new MutableObject<>(assign));
+        insertOp.setAdditionalFilteringExpressions(filterExprs);
+        insertOp.getInputs().add(new MutableObject<>(pkeyAssignOp));
         insertOp.setSourceLocation(sourceLoc);
 
         // Adds the commit operator.
@@ -607,9 +616,24 @@
         return processReturningExpression(rootOperator, insertOp, compiledInsert, resultMetadata);
     }
 
+    protected List<Mutable<ILogicalExpression>> generatedFilterExprs(ILogicalOperator pkeyAssignOp,
+            List<String> filterField, LogicalVariable seqVar, SourceLocation sourceLoc) {
+        List<LogicalVariable> filterVars = new ArrayList<>();
+        List<Mutable<ILogicalExpression>> filterAssignExprs = new ArrayList<>();
+        List<Mutable<ILogicalExpression>> filterExprs = new ArrayList<>();
+
+        PlanTranslationUtil.prepareVarAndExpression(filterField, seqVar, filterVars, filterAssignExprs, filterExprs,
+                context, sourceLoc);
+        AssignOperator additionalFilteringAssign = new AssignOperator(filterVars, filterAssignExprs);
+        additionalFilteringAssign.getInputs().add(pkeyAssignOp.getInputs().get(0));
+        additionalFilteringAssign.setSourceLocation(sourceLoc);
+        pkeyAssignOp.getInputs().set(0, new MutableObject<>(additionalFilteringAssign));
+        return filterExprs;
+    }
+
     // Stitches the translated operators for the returning expression into the query
     // plan.
-    private ILogicalOperator processReturningExpression(ILogicalOperator inputOperator,
+    protected ILogicalOperator processReturningExpression(ILogicalOperator inputOperator,
             InsertDeleteUpsertOperator insertOp, CompiledInsertStatement compiledInsert, IResultMetadata resultMetadata)
             throws AlgebricksException {
         Expression returnExpression = compiledInsert.getReturnExpression();
@@ -620,8 +644,8 @@
 
         //Create an assign operator that makes the variable used by the return expression
         LogicalVariable insertedVar = context.newVar();
-        AssignOperator insertedVarAssignOperator =
-                new AssignOperator(insertedVar, new MutableObject<>(insertOp.getPayloadExpression().getValue()));
+        AssignOperator insertedVarAssignOperator = new AssignOperator(insertedVar,
+                new MutableObject<>(insertOp.getPayloadExpression().getValue().cloneExpression()));
         insertedVarAssignOperator.getInputs().add(insertOp.getInputs().get(0));
         insertedVarAssignOperator.setSourceLocation(sourceLoc);
         insertOp.getInputs().set(0, new MutableObject<>(insertedVarAssignOperator));
@@ -651,7 +675,7 @@
         return distResultOperator;
     }
 
-    private DatasetDataSource validateDatasetInfo(MetadataProvider metadataProvider, DataverseName dataverseName,
+    protected DatasetDataSource validateDatasetInfo(MetadataProvider metadataProvider, DataverseName dataverseName,
             String datasetName, SourceLocation sourceLoc) throws AlgebricksException {
         Dataset dataset = metadataProvider.findDataset(dataverseName, datasetName);
         if (dataset == null) {
@@ -671,7 +695,7 @@
                 dataset.getDatasetDetails(), domain);
     }
 
-    private FileSplit getDefaultOutputFileLocation(ICcApplicationContext appCtx) throws AlgebricksException {
+    protected FileSplit getDefaultOutputFileLocation(ICcApplicationContext appCtx) throws AlgebricksException {
         String outputDir = System.getProperty("java.io.tmpDir");
         String filePath =
                 outputDir + System.getProperty("file.separator") + OUTPUT_FILE_PREFIX + outputFileID.incrementAndGet();
@@ -732,31 +756,48 @@
         // Expression pair
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> expressionPair =
                 langExprToAlgExpression(ia.getExpr(), tupSource);
+
         LogicalVariable v = context.newVar();
-        AbstractFunctionCallExpression f;
 
-        // Index expression
-        Pair<ILogicalExpression, Mutable<ILogicalOperator>> indexPair = null;
-
-        if (ia.isAny()) {
-            f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.ANY_COLLECTION_MEMBER));
-            f.getArguments().add(new MutableObject<>(expressionPair.first));
-        } else {
-            indexPair = langExprToAlgExpression(ia.getIndexExpr(), expressionPair.second);
-            f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(BuiltinFunctions.GET_ITEM));
-            f.getArguments().add(new MutableObject<>(expressionPair.first));
-            f.getArguments().add(new MutableObject<>(indexPair.first));
+        FunctionIdentifier fid;
+        ILogicalExpression farg0, farg1 = null;
+        Mutable<ILogicalOperator> assignInput;
+        switch (ia.getIndexKind()) {
+            case ANY:
+                fid = BuiltinFunctions.ANY_COLLECTION_MEMBER;
+                farg0 = expressionPair.first;
+                assignInput = expressionPair.second;
+                break;
+            case STAR:
+                fid = BuiltinFunctions.ARRAY_STAR;
+                farg0 = expressionPair.first;
+                assignInput = expressionPair.second;
+                break;
+            case ELEMENT:
+                Pair<ILogicalExpression, Mutable<ILogicalOperator>> indexPair =
+                        langExprToAlgExpression(ia.getIndexExpr(), expressionPair.second);
+                fid = BuiltinFunctions.GET_ITEM;
+                farg0 = expressionPair.first;
+                farg1 = indexPair.first;
+                assignInput = indexPair.second;
+                break;
+            default:
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, ia.getSourceLocation(),
+                        ia.getIndexKind());
         }
 
+        AbstractFunctionCallExpression f =
+                new ScalarFunctionCallExpression(BuiltinFunctions.getBuiltinFunctionInfo(fid));
         f.setSourceLocation(sourceLoc);
-        AssignOperator a = new AssignOperator(v, new MutableObject<>(f));
-
-        if (ia.isAny()) {
-            a.getInputs().add(expressionPair.second);
-        } else {
-            a.getInputs().add(indexPair.second); // NOSONAR: Called only if value exists
+        f.getArguments().add(new MutableObject<>(farg0));
+        if (farg1 != null) {
+            f.getArguments().add(new MutableObject<>(farg1));
         }
+
+        AssignOperator a = new AssignOperator(v, new MutableObject<>(f));
         a.setSourceLocation(sourceLoc);
+        a.getInputs().add(assignInput);
+
         return new Pair<>(a, v);
     }
 
@@ -845,7 +886,7 @@
         AbstractFunctionCallExpression f = lookupFunction(signature, args, sourceLoc);
 
         if (f == null) {
-            throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature.getName());
+            throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature.toString(false));
         }
 
         if (fcall.hasAggregateFilterExpr()) {
@@ -883,7 +924,7 @@
             List<Mutable<ILogicalExpression>> args, SourceLocation sourceLoc) throws CompilationException {
         AbstractFunctionCallExpression f;
         if ((f = lookupUserDefinedFunction(signature, args, sourceLoc)) == null) {
-            f = lookupBuiltinFunction(signature.getName(), signature.getArity(), args, sourceLoc);
+            f = lookupBuiltinFunction(signature, args, sourceLoc);
         }
         return f;
     }
@@ -891,29 +932,29 @@
     private AbstractFunctionCallExpression lookupUserDefinedFunction(FunctionSignature signature,
             List<Mutable<ILogicalExpression>> args, SourceLocation sourceLoc) throws CompilationException {
         try {
-            Function function =
-                    FunctionUtil.lookupUserDefinedFunctionDecl(metadataProvider.getMetadataTxnContext(), signature);
+            Function function = metadataProvider.lookupUserDefinedFunction(signature);
             if (function == null) {
                 return null;
             }
-            IFunctionInfo finfo = function.isExternal()
-                    ? ExternalFunctionCompilerUtil.getExternalFunctionInfo(metadataProvider, function)
-                    : FunctionUtil.getFunctionInfo(signature);
+            if (!function.isExternal()) {
+                // all non-external UDFs should've been inlined by now
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc, signature);
+            }
+            IFunctionInfo finfo = ExternalFunctionCompilerUtil.getExternalFunctionInfo(metadataProvider, function);
             AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(finfo, args);
             f.setSourceLocation(sourceLoc);
             return f;
+        } catch (CompilationException e) {
+            throw e;
         } catch (AlgebricksException e) {
-            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, e.getMessage(), e);
+            throw new CompilationException(ErrorCode.COMPILATION_ERROR, e, sourceLoc, e.getMessage());
         }
     }
 
-    private AbstractFunctionCallExpression lookupBuiltinFunction(String functionName, int arity,
-            List<Mutable<ILogicalExpression>> args, SourceLocation sourceLoc) {
+    private AbstractFunctionCallExpression lookupBuiltinFunction(FunctionSignature signature,
+            List<Mutable<ILogicalExpression>> args, SourceLocation sourceLoc) throws CompilationException {
         AbstractFunctionCallExpression f;
-        FunctionIdentifier fi = getBuiltinFunctionIdentifier(functionName, arity);
-        if (fi == null) {
-            return null;
-        }
+        FunctionIdentifier fi = signature.createFunctionIdentifier();
         if (BuiltinFunctions.isBuiltinAggregateFunction(fi)) {
             f = BuiltinFunctions.makeAggregateFunctionExpression(fi, args);
         } else if (BuiltinFunctions.isBuiltinUnnestingFunction(fi)) {
@@ -924,29 +965,17 @@
         } else if (BuiltinFunctions.isWindowFunction(fi)) {
             f = BuiltinFunctions.makeWindowFunctionExpression(fi, args);
         } else {
-            f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fi), args);
+            BuiltinFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi);
+            if (finfo == null) {
+                // should've been resolved earlier
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc, fi);
+            }
+            f = new ScalarFunctionCallExpression(finfo, args);
         }
         f.setSourceLocation(sourceLoc);
         return f;
     }
 
-    protected FunctionIdentifier getBuiltinFunctionIdentifier(String functionName, int arity) {
-        FunctionIdentifier fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity);
-        FunctionInfo afi = BuiltinFunctions.lookupFunction(fi);
-        FunctionIdentifier builtinAquafi = afi == null ? null : afi.getFunctionIdentifier();
-
-        if (builtinAquafi != null) {
-            fi = builtinAquafi;
-        } else {
-            fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity);
-            afi = BuiltinFunctions.lookupFunction(fi);
-            if (afi == null) {
-                return null;
-            }
-        }
-        return fi;
-    }
-
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FunctionDecl fd, Mutable<ILogicalOperator> tupSource) {
         throw new IllegalStateException("Function declarations should be inlined at AST rewriting phase.");
@@ -1761,7 +1790,7 @@
      *            the query plan.
      * @throws CompilationException
      */
-    private void eliminateSharedOperatorReferenceForPlan(ILogicalPlan plan) throws CompilationException {
+    protected void eliminateSharedOperatorReferenceForPlan(ILogicalPlan plan) throws CompilationException {
         for (Mutable<ILogicalOperator> opRef : plan.getRoots()) {
             Set<Mutable<ILogicalOperator>> opRefSet = new HashSet<>();
             eliminateSharedOperatorReference(opRef, opRefSet);
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/PositionWriter.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/PositionWriter.java
deleted file mode 100644
index 6f8b64f..0000000
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/PositionWriter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.translator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.apache.asterix.om.types.BuiltinType;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
-
-public class PositionWriter implements IUnnestingPositionWriter, Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    public void write(DataOutput dataOutput, long position) throws IOException {
-        dataOutput.writeByte(BuiltinType.AINT64.getTypeTag().serialize());
-        dataOutput.writeLong(position);
-    }
-
-}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
index ec4fb6f..84bee6a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
@@ -18,6 +18,7 @@
  */
 package org.apache.asterix.translator;
 
+import java.net.InetSocketAddress;
 import java.util.UUID;
 
 import org.apache.asterix.common.api.IClientRequest;
@@ -33,16 +34,12 @@
 
 public class Receptionist implements IReceptionist {
 
-    private final String node;
-
-    public Receptionist(String node) {
-        this.node = node;
-    }
-
     @Override
     public IRequestReference welcome(IServletRequest request) {
         final String uuid = UUID.randomUUID().toString();
-        final RequestReference ref = RequestReference.of(uuid, node, System.currentTimeMillis());
+        final InetSocketAddress localAddress = request.getLocalAddress();
+        final RequestReference ref =
+                RequestReference.of(uuid, NetworkUtil.toHostPort(localAddress), System.currentTimeMillis());
         ref.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT));
         ref.setRemoteAddr(NetworkUtil.toHostPort(request.getRemoteAddress()));
         return ref;
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 c3fc56c..c77774c 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
@@ -109,10 +109,12 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractLogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionAnnotation;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractUnnestNonMapOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractUnnestOperator;
@@ -318,8 +320,7 @@
         if (fromTerm.hasPositionalVariable()) {
             LogicalVariable pVar = context.newVarFromExpression(fromTerm.getPositionalVariable());
             // We set the positional variable type as BIGINT type.
-            unnestOp = new UnnestOperator(fromVar, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64,
-                    new PositionWriter());
+            unnestOp = new UnnestOperator(fromVar, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64);
         } else {
             unnestOp = new UnnestOperator(fromVar, new MutableObject<>(pUnnestExpr.first));
         }
@@ -535,10 +536,9 @@
             LogicalVariable pVar = context.newVarFromExpression(binaryCorrelate.getPositionalVariable());
             // We set the positional variable type as BIGINT type.
             unnestOp = innerUnnest
-                    ? new UnnestOperator(rightVar, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64,
-                            new PositionWriter())
+                    ? new UnnestOperator(rightVar, new MutableObject<>(pUnnestExpr.first), pVar, BuiltinType.AINT64)
                     : new LeftOuterUnnestOperator(rightVar, new MutableObject<>(pUnnestExpr.first), pVar,
-                            BuiltinType.AINT64, new PositionWriter());
+                            BuiltinType.AINT64);
         } else {
             unnestOp = innerUnnest ? new UnnestOperator(rightVar, new MutableObject<>(pUnnestExpr.first))
                     : new LeftOuterUnnestOperator(rightVar, new MutableObject<>(pUnnestExpr.first));
@@ -855,6 +855,14 @@
                 outFieldBindings.add(getFieldBinding(var, outFieldNames));
             }
         }
+        if (groupbyClause.hasDecorList()) {
+            for (GbyVariableExpressionPair pair : groupbyClause.getDecorPairList()) {
+                VariableExpr var = pair.getVar();
+                if (gbyKeyVars.add(var)) {
+                    outFieldBindings.add(getFieldBinding(var, outFieldNames));
+                }
+            }
+        }
         if (groupbyClause.hasGroupVar()) {
             outFieldBindings.add(getFieldBinding(groupbyClause.getGroupVar(), outFieldNames));
         }
@@ -983,7 +991,9 @@
 
         QuantifiedPair qp = qe.getQuantifiedList().get(0);
         VariableExpr varExpr = qp.getVarExpr();
-        List<Expression> operandExprs = ((OperatorExpr) qe.getSatisfiesExpr()).getExprList();
+        OperatorExpr condExpr = (OperatorExpr) qe.getSatisfiesExpr();
+        List<IExpressionAnnotation> condExprHints = condExpr.getHints();
+        List<Expression> operandExprs = condExpr.getExprList();
         int varIdx = operandExprs.indexOf(varExpr);
         Expression operandExpr = operandExprs.get(1 - varIdx);
 
@@ -1016,7 +1026,7 @@
                             throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc,
                                     itemExpr.getKind());
                     }
-                    ILogicalExpression eqExpr = createEqExpr(operandVar, inValue, sourceLoc);
+                    ILogicalExpression eqExpr = createEqExpr(operandVar, inValue, condExprHints, sourceLoc);
                     disjuncts.add(new MutableObject<>(eqExpr));
                 }
                 break;
@@ -1027,7 +1037,7 @@
                 inVarCursor.reset();
                 while (inVarCursor.next()) {
                     IAObject inValue = inVarCursor.get();
-                    ILogicalExpression eqExpr = createEqExpr(operandVar, inValue, sourceLoc);
+                    ILogicalExpression eqExpr = createEqExpr(operandVar, inValue, condExprHints, sourceLoc);
                     disjuncts.add(new MutableObject<>(eqExpr));
                 }
                 break;
@@ -1035,25 +1045,25 @@
                 throw new IllegalStateException(String.valueOf(inExpr.getKind()));
         }
 
-        MutableObject<ILogicalExpression> condExpr;
+        MutableObject<ILogicalExpression> disjunctiveExpr;
         if (disjuncts.size() == 1) {
-            condExpr = disjuncts.get(0);
+            disjunctiveExpr = disjuncts.get(0);
         } else {
             AbstractFunctionCallExpression orExpr =
                     createFunctionCallExpressionForBuiltinOperator(OperatorType.OR, sourceLoc);
             orExpr.getArguments().addAll(disjuncts);
-            condExpr = new MutableObject<>(orExpr);
+            disjunctiveExpr = new MutableObject<>(orExpr);
         }
 
         LogicalVariable assignVar = context.newVar();
-        AssignOperator assignOp = new AssignOperator(assignVar, condExpr);
+        AssignOperator assignOp = new AssignOperator(assignVar, disjunctiveExpr);
         assignOp.getInputs().add(topOp);
         assignOp.setSourceLocation(sourceLoc);
         return new Pair<>(assignOp, assignVar);
     }
 
-    private ILogicalExpression createEqExpr(LogicalVariable lhsVar, IAObject rhsValue, SourceLocation sourceLoc)
-            throws CompilationException {
+    private ILogicalExpression createEqExpr(LogicalVariable lhsVar, IAObject rhsValue,
+            List<IExpressionAnnotation> hints, SourceLocation sourceLoc) throws CompilationException {
         VariableReferenceExpression lhsExpr = new VariableReferenceExpression(lhsVar);
         lhsExpr.setSourceLocation(sourceLoc);
         ILogicalExpression rhsExpr = translateConstantValue(rhsValue, sourceLoc);
@@ -1061,6 +1071,11 @@
                 createFunctionCallExpressionForBuiltinOperator(OperatorType.EQ, sourceLoc);
         opExpr.getArguments().add(new MutableObject<>(lhsExpr));
         opExpr.getArguments().add(new MutableObject<>(rhsExpr));
+        if (hints != null) {
+            for (IExpressionAnnotation hint : hints) {
+                opExpr.getAnnotations().put(hint, hint);
+            }
+        }
         return opExpr;
     }
 
@@ -1071,11 +1086,12 @@
         List<Expression> fargs = winExpr.getExprList();
 
         FunctionSignature fs = winExpr.getFunctionSignature();
-        FunctionIdentifier fi = getBuiltinFunctionIdentifier(fs.getName(), fs.getArity());
-        if (fi == null) {
+        IFunctionInfo finfo = BuiltinFunctions.getBuiltinFunctionInfo(fs.createFunctionIdentifier());
+        if (finfo == null) {
             throw new CompilationException(ErrorCode.COMPILATION_EXPECTED_WINDOW_FUNCTION, winExpr.getSourceLocation(),
                     fs.getName());
         }
+        FunctionIdentifier fi = finfo.getFunctionIdentifier();
         boolean isWin = BuiltinFunctions.isWindowFunction(fi);
         boolean isWinAgg = isWin && BuiltinFunctions.builtinFunctionHasProperty(fi,
                 BuiltinFunctions.WindowFunctionProperty.HAS_LIST_ARG);
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
index e587e70..2869313 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
@@ -45,10 +45,14 @@
     /**
      * Validates the field that will be used as filter for the components of an LSM index.
      *
-     * @param dataset
-     *            the dataset
      * @param recordType
      *            the record type
+     * @param metaType
+     *            the meta record type
+     * @param filterSourceIndicator
+     *            indicates where the filter attribute comes from, 0 for record, 1 for meta record.
+     *            since this method is called only when a filter field presents, filterSourceIndicator will not be null
+     *
      * @param filterField
      *            the full name of the field
      * @param sourceLoc
@@ -57,9 +61,10 @@
      *             if field type can't be a filter type.
      *             if field type is nullable.
      */
-    public static void validateFilterField(ARecordType recordType, List<String> filterField, SourceLocation sourceLoc)
-            throws AlgebricksException {
-        IAType fieldType = recordType.getSubFieldType(filterField);
+    public static void validateFilterField(ARecordType recordType, ARecordType metaType, Integer filterSourceIndicator,
+            List<String> filterField, SourceLocation sourceLoc) throws AlgebricksException {
+        ARecordType itemType = filterSourceIndicator == 0 ? recordType : metaType;
+        IAType fieldType = itemType.getSubFieldType(filterField);
         if (fieldType == null) {
             throw new CompilationException(ErrorCode.COMPILATION_FIELD_NOT_FOUND, sourceLoc,
                     RecordUtil.toFullyQualifiedName(filterField));
diff --git a/asterixdb/asterix-algebra/src/main/javacc/AQLPlusExtension.jj b/asterixdb/asterix-algebra/src/main/javacc/AQLPlusExtension.jj
deleted file mode 100644
index 35e8ff0..0000000
--- a/asterixdb/asterix-algebra/src/main/javacc/AQLPlusExtension.jj
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// 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.
-//
-// This is not a complete javacc file.
-// This file is used by asterix-grammar-extension-maven-plugin to extend the AQL grammar to AQL+ grammar.
-// For more details about how to use this plugin, refer to asterix-grammar-extension-maven-plugin.
-
-// If you want to put an additional import, just add import statements like the following.
-// import package name
-import org.apache.asterix.lang.aql.clause.JoinClause;
-import org.apache.asterix.lang.aql.clause.MetaVariableClause;
-import org.apache.asterix.lang.aql.expression.MetaVariableExpr;
-
-// To remove an import, use the keyword unimport
-// unimport package name
-
-// If you want to add a method in the class definition (before PARSER_END), use the following phrase and attach
-// new method right after the phrase.
-// @new_at_the_end
-@new_at_the_class_def
-    public void initScope() {
-            scopeStack.push(RootScopeFactory.createRootScope(this));
-    }
-
-// Merging of non-terminals can only be done on non-terminals which conform to the following structure.
-// Content will simply be prepended or appended to the base blocks.
-// Note: refrain from using the strings "before:" and "after:" in the merge areas as that will break the merge.
-// As a workaround, you can always override
-// one additional possible change is direct replacement and it can be done through the followin syntax:
-// @merge replace "base phrase" with "extension phrase" true/false
-// Here, true/false tells whether the tool needs to process the three blocks.
-// If true, like normal @merge case, before and after clause in each block will be processed
-// after "base phrase" in the blocks have been replaced with "new phrase".
-// If false, then it just expects the blank form that consists of three blocks and not process them.
-// Only, "base phrase" in the blocks will be replaced with "new phrase".
-@merge
-Clause Clause() throws ParseException :
-{
-  // merge area 1
-  before:
-  after:
-}
-{
-  (
-    // merge area 2
-    before:
-    after:    | clause = MetaVariableClause()
-              | clause = JoinClause())
-  {
-    // merge area 3
-  }
-}
-
-@merge
-Expression PrimaryExpr()throws ParseException:
-{
-  // merge area 1
-  before:
-  after:
-}
-{
-  (
-    // merge area 2
-    before:
-    after:    | expr = MetaVariableRef())
-  {
-    // merge area 3
-  }
-}
-
-// In the following case, all instances of "tmp = LetClause() {clauseList.add(tmp);}" will be replaced
-// with "tmp = LetClause() {clauseList.add(tmp);} | tmp = MetaVariableClause() {clauseList.add(tmp);}".
-// Also, we don't check "before:" and "after:" section of each area. That check will be ignored since
-// the last parameter is set to false.
-@merge replace "tmp = LetClause() {clauseList.add(tmp);}" with "tmp = LetClause() {clauseList.add(tmp);} | tmp = MetaVariableClause() {clauseList.add(tmp);}" false
-Expression FLWOGR() throws ParseException:
-{
-  // merge area 1
-}
-{
-    (
-    // merge area 2
-    )
-    {
-      // merge area 3
-    }
-}
-
-// The default option when you don't specify any @optiontype.
-// Adding a new node. if a node exists, it will throw an exception.
-@new
-Clause MetaVariableClause() throws ParseException :
-{
-}
-{
-    <METAVARIABLECLAUSE>
-    {
-      VarIdentifier var = new VarIdentifier(token.image);
-      return new MetaVariableClause(var);
-    }
-}
-
-@new
-MetaVariableExpr MetaVariableRef() throws ParseException:
-{
-}
-{
-    <METAVARIABLE>
-    {
-      VarIdentifier var = new VarIdentifier(token.image);
-      return new MetaVariableExpr(var);
-    }
-}
-
-@new
-Clause JoinClause() throws ParseException :
-{
-    Expression whereExpr;
-    List<Clause> leftClauses, rightClauses;
-    JoinClause.JoinKind kind = JoinClause.JoinKind.INNER;
-}
-{
-    ("join" | "loj" { kind = JoinClause.JoinKind.LEFT_OUTER; } )
-      <LEFTPAREN> <LEFTPAREN> leftClauses = Clauses() <RIGHTPAREN> <COMMA>
-      <LEFTPAREN> rightClauses = Clauses() <RIGHTPAREN> <COMMA>
-      whereExpr = Expression() <RIGHTPAREN>
-    {
-      JoinClause jc = new JoinClause(kind);
-      jc.setLeftClauses(leftClauses);
-      jc.setRightClauses(rightClauses);
-      jc.setWhereExpr(whereExpr);
-      return jc;
-    }
-}
-
-@new
-List<Clause> Clauses() throws ParseException:
-{
-    List<Clause> clauses = new ArrayList<Clause>();
-    Clause c = null;
-}
-{
-    (
-        (
-            c = Clause() {
-                clauses.add(c);
-            }
-        )*
-    )
-    {
-        return clauses;
-    }
-}
-
-// Overriding a non-terminal. if exists in base, it will be overriden, otherwise, it will be added.
-// @override
-
-
-// If something needs to be added at the end of file, you can use @new_at_the_end like the following.
-@new_at_the_end
-<DEFAULT,IN_DBL_BRACE>
-TOKEN :
-{
-    <METAVARIABLE : "$$" <IDENTIFIER> >
-}
-
-@new_at_the_end
-<DEFAULT,IN_DBL_BRACE>
-TOKEN :
-{
-   <METAVARIABLECLAUSE : "##" <IDENTIFIER> >
-}
diff --git a/asterixdb/asterix-app/data/dblp-small/dblp-small-nulls-string-as-primary-key.adm b/asterixdb/asterix-app/data/dblp-small/dblp-small-nulls-string-as-primary-key.adm
new file mode 100644
index 0000000..b092b64
--- /dev/null
+++ b/asterixdb/asterix-app/data/dblp-small/dblp-small-nulls-string-as-primary-key.adm
@@ -0,0 +1,100 @@
+{ "id": "2", "dblpid": "books/acm/kim95/Blakeley95", "title": "OQL[C++]  Extending C++ with an Object Query Capability.", "authors": "José A. Blakeley", "misc": "2002-01-03 69-88 Modern Database Systems db/books/collections/kim95.html#Blakeley95 1995" }
+{ "id": "4", "dblpid": "books/acm/kim95/ChristodoulakisK95", "title": "Multimedia Information Systems  Issues and Approaches.", "authors": "Stavros Christodoulakis Leonidas Koveos", "misc": "2002-01-03 318-337 1995 Modern Database Systems db/books/collections/kim95.html#ChristodoulakisK95" }
+{ "id": "6", "dblpid": "books/acm/kim95/DittrichD95", "title": "Where Object-Oriented DBMSs Should Do Better  A Critique Based on Early Experiences.", "authors": "Angelika Kotz Dittrich Klaus R. Dittrich", "misc": "2002-01-03 238-254 1995 Modern Database Systems db/books/collections/kim95.html#DittrichD95" }
+{ "id": "8", "dblpid": "books/acm/kim95/Goodman95", "title": "An Object-Oriented DBMS War Story  Developing a Genome Mapping Database in C++.", "authors": "Nathan Goodman", "misc": "2002-01-03 216-237 1995 Modern Database Systems db/books/collections/kim95.html#Goodman95" }
+{ "id": "10", "dblpid": "books/acm/kim95/KelleyGKRG95", "title": "Schema Architecture of the UniSQL/M Multidatabase System", "authors": "William Kelley Sunit K. Gala Won Kim Tom C. Reyes Bruce Graham", "misc": "2004-03-08 Modern Database Systems books/acm/Kim95 621-648 1995 db/books/collections/kim95.html#KelleyGKRG95" }
+{ "id": "12", "dblpid": "books/acm/kim95/Kim95", "authors": "Won Kim", "misc": "2002-01-03 5-17 1995 Modern Database Systems db/books/collections/kim95.html#Kim95" }
+{ "id": "14", "dblpid": "books/acm/kim95/Kim95b", "title": "Introduction to Part 2  Technology for Interoperating Legacy Databases.", "authors": "Won Kim", "misc": "2002-01-03 515-520 1995 Modern Database Systems db/books/collections/kim95.html#Kim95b" }
+{ "id": "16", "dblpid": "books/acm/kim95/KimG95", "authors": "Won Kim Jorge F. Garza", "misc": "2002-01-03 203-215 1995 Modern Database Systems db/books/collections/kim95.html#KimG95" }
+{ "id": "18", "dblpid": "books/acm/kim95/Kowalski95", "title": "The POSC Solution to Managing E&P Data.", "authors": "Vincent J. Kowalski", "misc": "2002-01-03 281-301 1995 Modern Database Systems db/books/collections/kim95.html#Kowalski95" }
+{ "id": "20", "dblpid": "books/acm/kim95/Lunt95", "title": "Authorization in Object-Oriented Databases.", "authors": "Teresa F. Lunt", "misc": "2002-01-03 130-145 1995 Modern Database Systems db/books/collections/kim95.html#Lunt95" }
+{ "id": "22", "dblpid": "books/acm/kim95/Motro95", "authors": "Amihai Motro", "misc": "2002-01-03 457-476 1995 Modern Database Systems db/books/collections/kim95.html#Motro95" }
+{ "id": "24", "dblpid": "books/acm/kim95/OzsuB95", "authors": "M. Tamer Özsu José A. Blakeley", "misc": "2002-01-03 146-174 1995 Modern Database Systems db/books/collections/kim95.html#OzsuB95" }
+{ "id": "26", "dblpid": "books/acm/kim95/Samet95", "title": "Spatial Data Structures.", "authors": "Hanan Samet", "misc": "2004-03-08 361-385 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#Samet95 1995" }
+{ "id": "28", "dblpid": "books/acm/kim95/ShanADDK95", "title": "Pegasus  A Heterogeneous Information Management System.", "authors": "Ming-Chien Shan Rafi Ahmed Jim Davis Weimin Du William Kent", "misc": "2004-03-08 664-682 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#ShanADDK95 1995" }
+{ "id": "30", "dblpid": "books/acm/kim95/SoleyK95", "title": "The OMG Object Model.", "authors": "Richard Mark Soley William Kent", "misc": "2002-01-03 18-41 1995 Modern Database Systems db/books/collections/kim95.html#SoleyK95" }
+{ "id": "32", "dblpid": "books/acm/kim95/Thompson95", "title": "The Changing Database Standards Landscape.", "authors": "Craig W. Thompson", "misc": "2002-01-03 302-317 1995 Modern Database Systems db/books/collections/kim95.html#Thompson95" }
+{ "id": "34", "dblpid": "books/acm/Kim95", "title": "Modern Database Systems  The Object Model, Interoperability, and Beyond.", "authors": "", "misc": "2004-03-08 Won Kim Modern Database Systems ACM Press and Addison-Wesley 1995 0-201-59098-0 db/books/collections/kim95.html" }
+{ "id": "36", "dblpid": "books/aw/kimL89/BjornerstedtH89", "title": "Version Control in an Object-Oriented Architecture.", "authors": "Anders Björnerstedt Christer Hulten", "misc": "2006-02-24 451-485 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#BjornerstedtH89" }
+{ "id": "38", "dblpid": "books/aw/kimL89/CareyDRS89", "title": "Storage Management in EXODUS.", "authors": "Michael J. Carey David J. DeWitt Joel E. Richardson Eugene J. Shekita", "misc": "2002-01-03 341-369 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#CareyDRS89" }
+{ "id": "40", "dblpid": "books/aw/kimL89/DiederichM89", "title": "Objects, Messages, and Rules in Database Design.", "authors": "Jim Diederich Jack Milton", "misc": "2002-01-03 177-197 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#DiederichM89" }
+{ "id": "42", "dblpid": "books/aw/kimL89/FishmanABCCDHHKLLMNRSW89", "title": "Overview of the Iris DBMS.", "authors": "Daniel H. Fishman Jurgen Annevelink David Beech E. C. Chow Tim Connors J. W. Davis Waqar Hasan C. G. Hoch William Kent S. Leichner Peter Lyngbæk Brom Mahbod Marie-Anne Neimat Tore Risch Ming-Chien Shan W. Kevin Wilkinson", "misc": "2002-01-03 219-250 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#FishmanABCCDHHKLLMNRSW89" }
+{ "id": "44", "dblpid": "books/aw/kimL89/KimKD89", "title": "Indexing Techniques for Object-Oriented Databases.", "authors": "Won Kim Kyung-Chang Kim Alfred G. Dale", "misc": "2002-01-03 371-394 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#KimKD89" }
+{ "id": "46", "dblpid": "books/aw/kimL89/Maier89", "title": "Making Database Systems Fast Enough for CAD Applications.", "authors": "David Maier", "misc": "2002-01-03 573-582 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Maier89" }
+{ "id": "48", "dblpid": "books/aw/kimL89/Moon89", "title": "The Common List Object-Oriented Programming Language Standard.", "authors": "David A. Moon", "misc": "2002-01-03 49-78 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Moon89" }
+{ "id": "50", "dblpid": "books/aw/kimL89/Nierstrasz89", "title": "A Survey of Object-Oriented Concepts.", "authors": "Oscar Nierstrasz", "misc": "2002-01-03 3-21 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Nierstrasz89" }
+{ "id": "52", "dblpid": "books/aw/kimL89/Russinoff89", "title": "Proteus  A Frame-Based Nonmonotonic Inference System.", "authors": "David M. Russinoff", "misc": "2002-01-03 127-150 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#Russinoff89" }
+{ "id": "54", "dblpid": "books/aw/kimL89/SteinLU89", "authors": "Lynn Andrea Stein Henry Lieberman David Ungar", "misc": "2002-01-03 31-48 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#SteinLU89" }
+{ "id": "56", "dblpid": "books/aw/kimL89/TomlinsonS89", "title": "Concurrent Object-Oriented Programming Languages.", "authors": "Chris Tomlinson Mark Scheevel", "misc": "2002-01-03 79-124 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#TomlinsonS89" }
+{ "id": "58", "dblpid": "books/aw/kimL89/Wand89", "title": "A Proposal for a Formal Model of Objects.", "authors": "Yair Wand", "misc": "2002-01-03 537-559 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Wand89" }
+{ "id": "60", "dblpid": "books/aw/stonebraker86/RoweS86", "authors": "Lawrence A. Rowe Michael Stonebraker", "misc": "2002-01-03 63-82 1986 The INGRES Papers db/books/collections/Stonebraker86.html#RoweS86 db/books/collections/Stonebraker86/RoweS86.html ingres/P063.pdf" }
+{ "id": "62", "dblpid": "books/aw/stonebraker86/Stonebraker86a", "title": "Supporting Studies on Relational Systems (Introduction to Section 2).", "authors": "Michael Stonebraker", "misc": "2002-01-03 83-85 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86a db/books/collections/Stonebraker86/Stonebraker86a.html ingres/P083.pdf" }
+{ "id": "64", "dblpid": "books/aw/stonebraker86/Stonebraker86c", "authors": "Michael Stonebraker", "misc": "2002-01-03 187-196 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86c db/books/collections/Stonebraker86/Stonebraker86c.html ingres/P187.pdf" }
+{ "id": "66", "dblpid": "books/aw/stonebraker86/Stonebraker86e", "title": "Extended Semantics for the Relational Model (Introduction to Section 5).", "authors": "Michael Stonebraker", "misc": "2002-01-03 313-316 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86e db/books/collections/Stonebraker86/Stonebraker86e.html ingres/P313.pdf" }
+{ "id": "68", "dblpid": "books/aw/stonebraker86/X86", "title": "Title, Preface, Contents.", "authors": "", "misc": "2002-01-03 1986 The INGRES Papers db/books/collections/Stonebraker86.html#X86 db/books/collections/Stonebraker86/X86.html ingres/frontmatter.pdf" }
+{ "id": "70", "dblpid": "books/aw/Knuth86a", "title": "TeX  The Program", "authors": "Donald E. Knuth", "misc": "2002-01-03 Addison-Wesley 1986 0-201-13437-3" }
+{ "id": "72", "dblpid": "books/aw/Lamport86", "title": "LaTeX  User's Guide & Reference Manual", "authors": "Leslie Lamport", "misc": "2002-01-03 Addison-Wesley 1986 0-201-15790-X" }
+{ "id": "74", "dblpid": "books/aw/Lamport2002", "title": "Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers", "authors": "Leslie Lamport", "misc": "2005-07-28 Addison-Wesley 2002 0-3211-4306-X http //research.microsoft.com/users/lamport/tla/book.html" }
+{ "id": "76", "dblpid": "books/aw/LewisBK01", "title": "Databases and Transaction Processing  An Application-Oriented Approach", "authors": "Philip M. Lewis Arthur J. Bernstein Michael Kifer", "misc": "2002-01-03 Addison-Wesley 2001 0-201-70872-8" }
+{ "id": "78", "dblpid": "books/aw/LindholmY97", "title": "The Java Virtual Machine Specification", "authors": "Tim Lindholm Frank Yellin", "misc": "2002-01-28 Addison-Wesley 1997 0-201-63452-X" }
+{ "id": "80", "dblpid": "books/aw/Sedgewick83", "title": "Algorithms", "authors": "Robert Sedgewick", "misc": "2002-01-03 Addison-Wesley 1983 0-201-06672-6" }
+{ "id": "82", "dblpid": "conf/focs/AspnesW92", "title": "Randomized Consensus in Expected O(n log ^2 n) Operations Per Processor", "authors": "James Aspnes Orli Waarts", "misc": "2006-04-25 137-146 conf/focs/FOCS33 1992 FOCS db/conf/focs/focs92.html#AspnesW92" }
+{ "id": "84", "dblpid": "conf/stoc/Bloniarz80", "title": "A Shortest-Path Algorithm with Expected Time O(n^2 log n log ^* n)", "authors": "Peter A. Bloniarz", "misc": "2006-04-25 378-384 conf/stoc/STOC12 1980 STOC db/conf/stoc/stoc80.html#Bloniarz80" }
+{ "id": "86", "dblpid": "conf/focs/Megiddo82", "title": "Linear-Time Algorithms for Linear Programming in R^3 and Related Problems", "authors": "Nimrod Megiddo", "misc": "2006-04-25 329-338 conf/focs/FOCS23 1982 FOCS db/conf/focs/focs82.html#Megiddo82" }
+{ "id": "88", "dblpid": "conf/focs/MoffatT85", "title": "An All Pairs Shortest Path Algorithm with Expected Running Time O(n^2 log n)", "authors": "Alistair Moffat Tadao Takaoka", "misc": "2006-04-25 101-105 conf/focs/FOCS26 1985 FOCS db/conf/focs/focs85.html#MoffatT85" }
+{ "id": "90", "dblpid": "conf/hicss/SchonfeldL99", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases ¾ Visual Search Engine.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-01-03 1999 HICSS http //computer.org/proceedings/hicss/0001/00013/00013006abs.htm db/conf/hicss/hicss1999-3.html#SchonfeldL99" }
+{ "id": "92", "dblpid": "conf/stacs/Laue08", "title": "Geometric Set Cover and Hitting Sets for Polytopes in R³.", "authors": "Sören Laue", "misc": "2008-03-04 2008 STACS 479-490 http //drops.dagstuhl.de/opus/volltexte/2008/1367 conf/stacs/2008 db/conf/stacs/stacs2008.html#Laue08" }
+{ "id": "94", "dblpid": "conf/awoc/IbarraJRC88", "title": "On Some Languages in NC.", "authors": "Oscar H. Ibarra Tao Jiang Bala Ravikumar Jik H. Chang", "misc": "2002-08-06 64-73 1988 conf/awoc/1988 AWOC db/conf/awoc/awoc88.html#IbarraJRC88" }
+{ "id": "96", "dblpid": "conf/focs/GalilHLSW82", "title": "An O(n^3 log n) Deterministic and an O(n^3) Probabilistic Isomorphism Test for Trivalent Graphs", "authors": "Zvi Galil Christoph M. Hoffmann Eugene M. Luks Claus-Peter Schnorr Andreas Weber", "misc": "2006-04-25 118-125 conf/focs/FOCS23 1982 FOCS db/conf/focs/focs82.html#GalilHLSW82" }
+{ "id": "98", "dblpid": "conf/focs/GalilT86", "title": "An O(n^2 (m + n log n) log n) Min-Cost Flow Algorithm", "authors": "Zvi Galil Éva Tardos", "misc": "2006-04-25 1-9 conf/focs/FOCS27 1986 FOCS db/conf/focs/focs86.html#GalilT86" }
+{ "id": "100", "dblpid": "series/synthesis/2009Brozos", "title": "The Geometry of Walker Manifolds", "authors": "Miguel Brozos-Vázquez Eduardo García-Río Peter Gilkey Stana Nikcevic Rámon Vázquez-Lorenzo", "misc": "2009-09-06 The Geometry of Walker Manifolds http //dx.doi.org/10.2200/S00197ED1V01Y200906MAS005 http //dx.doi.org/10.2200/S00197ED1V01Y200906MAS005 2009 Synthesis Lectures on Mathematics & Statistics Morgan & Claypool Publishers" }
+{ "id": "1", "dblpid": "books/acm/kim95/AnnevelinkACFHK95", "title": "Object SQL - A Language for the Design and Implementation of Object Databases.", "authors": "Jurgen Annevelink Rafiul Ahad Amelia Carlson Daniel H. Fishman Michael L. Heytens William Kent", "misc": "2002-01-03 42-68 1995 Modern Database Systems db/books/collections/kim95.html#AnnevelinkACFHK95" }
+{ "id": "3", "dblpid": "books/acm/kim95/BreitbartGS95", "title": "Transaction Management in Multidatabase Systems.", "authors": "Yuri Breitbart Hector Garcia-Molina Abraham Silberschatz", "misc": "2004-03-08 573-591 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#BreitbartGS95 1995" }
+{ "id": "5", "dblpid": "books/acm/kim95/DayalHW95", "title": "Active Database Systems.", "authors": "Umeshwar Dayal Eric N. Hanson Jennifer Widom", "misc": "2002-01-03 434-456 1995 Modern Database Systems db/books/collections/kim95.html#DayalHW95" }
+{ "id": "7", "dblpid": "books/acm/kim95/Garcia-MolinaH95", "title": "Distributed Databases.", "authors": "Hector Garcia-Molina Meichun Hsu", "misc": "2002-01-03 477-493 1995 Modern Database Systems db/books/collections/kim95.html#Garcia-MolinaH95" }
+{ "id": "9", "dblpid": "books/acm/kim95/Kaiser95", "title": "Cooperative Transactions for Multiuser Environments.", "authors": "Gail E. Kaiser", "misc": "2002-01-03 409-433 1995 Modern Database Systems db/books/collections/kim95.html#Kaiser95" }
+{ "id": "11", "dblpid": "books/acm/kim95/KemperM95", "title": "Physical Object Management.", "authors": "Alfons Kemper Guido Moerkotte", "misc": "2002-01-03 175-202 1995 Modern Database Systems db/books/collections/kim95.html#KemperM95" }
+{ "id": "13", "dblpid": "books/acm/kim95/Kim95a", "title": "Object-Oriented Database Systems  Promises, Reality, and Future.", "authors": "Won Kim", "misc": "2002-01-03 255-280 1995 Modern Database Systems db/books/collections/kim95.html#Kim95a" }
+{ "id": "15", "dblpid": "books/acm/kim95/KimCGS95", "title": "On Resolving Schematic Heterogeneity in Multidatabase Systems.", "authors": "Won Kim Injun Choi Sunit K. Gala Mark Scheevel", "misc": "2002-01-03 521-550 1995 Modern Database Systems db/books/collections/kim95.html#KimCGS95" }
+{ "id": "17", "dblpid": "books/acm/kim95/KimK95", "title": "On View Support in Object-Oriented Databases Systems.", "authors": "Won Kim William Kelley", "misc": "2002-01-03 108-129 1995 Modern Database Systems db/books/collections/kim95.html#KimK95" }
+{ "id": "19", "dblpid": "books/acm/kim95/KriegerA95", "title": "C++ Bindings to an Object Database.", "authors": "David Krieger Tim Andrews", "misc": "2002-01-03 89-107 1995 Modern Database Systems db/books/collections/kim95.html#KriegerA95" }
+{ "id": "21", "dblpid": "books/acm/kim95/MengY95", "title": "Query Processing in Multidatabase Systems.", "authors": "Weiyi Meng Clement T. Yu", "misc": "2002-01-03 551-572 1995 Modern Database Systems db/books/collections/kim95.html#MengY95" }
+{ "id": "23", "dblpid": "books/acm/kim95/Omiecinski95", "title": "Parallel Relational Database Systems.", "authors": "Edward Omiecinski", "misc": "2002-01-03 494-512 1995 Modern Database Systems db/books/collections/kim95.html#Omiecinski95" }
+{ "id": "25", "dblpid": "books/acm/kim95/RusinkiewiczS95", "title": "Specification and Execution of Transactional Workflows.", "authors": "Marek Rusinkiewicz Amit P. Sheth", "misc": "2004-03-08 592-620 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#RusinkiewiczS95 1995" }
+{ "id": "27", "dblpid": "books/acm/kim95/SametA95", "title": "Spatial Data Models and Query Processing.", "authors": "Hanan Samet Walid G. Aref", "misc": "2002-01-03 338-360 1995 Modern Database Systems db/books/collections/kim95.html#SametA95" }
+{ "id": "29", "dblpid": "books/acm/kim95/Snodgrass95", "title": "Temporal Object-Oriented Databases  A Critical Comparison.", "authors": "Richard T. Snodgrass", "misc": "2002-01-03 386-408 1995 Modern Database Systems db/books/collections/kim95.html#Snodgrass95" }
+{ "id": "31", "dblpid": "books/acm/kim95/Stout95", "title": "EDA/SQL.", "authors": "Ralph L. Stout", "misc": "2004-03-08 649-663 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#Stout95 1995" }
+{ "id": "33", "dblpid": "books/acm/kim95/BreitbartR95", "title": "Overview of the ADDS System.", "authors": "Yuri Breitbart Tom C. Reyes", "misc": "2009-06-12 683-701 Modern Database Systems books/acm/Kim95 db/books/collections/kim95.html#BreitbartR95 1995" }
+{ "id": "35", "dblpid": "books/ap/MarshallO79", "title": "Inequalities  Theory of Majorization and Its Application.", "authors": "Albert W. Marshall Ingram Olkin", "misc": "2002-01-03 Academic Press 1979 0-12-473750-1" }
+{ "id": "37", "dblpid": "books/aw/kimL89/BretlMOPSSWW89", "title": "The GemStone Data Management System.", "authors": "Robert Bretl David Maier Allen Otis D. Jason Penney Bruce Schuchardt Jacob Stein E. Harold Williams Monty Williams", "misc": "2002-01-03 283-308 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#BretlMOPSSWW89" }
+{ "id": "39", "dblpid": "books/aw/kimL89/Decouchant89", "title": "A Distributed Object Manager for the Smalltalk-80 System.", "authors": "Dominique Decouchant", "misc": "2002-01-03 487-520 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Decouchant89" }
+{ "id": "41", "dblpid": "books/aw/kimL89/EllisG89", "title": "Active Objects  Ealities and Possibilities.", "authors": "Clarence A. Ellis Simon J. Gibbs", "misc": "2002-01-03 561-572 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#EllisG89" }
+{ "id": "43", "dblpid": "books/aw/kimL89/KimBCGW89", "title": "Features of the ORION Object-Oriented Database System.", "authors": "Won Kim Nat Ballou Hong-Tai Chou Jorge F. Garza Darrell Woelk", "misc": "2002-01-03 251-282 Object-Oriented Concepts, Databases, and Applications ACM Press and Addison-Wesley 1989 db/books/collections/kim89.html#KimBCGW89" }
+{ "id": "45", "dblpid": "books/aw/kimL89/King89", "title": "My Cat Is Object-Oriented.", "authors": "Roger King", "misc": "2002-01-03 23-30 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#King89" }
+{ "id": "47", "dblpid": "books/aw/kimL89/MellenderRS89", "authors": "Fred Mellender Steve Riegel Andrew Straw", "misc": "2002-01-03 423-450 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#MellenderRS89" }
+{ "id": "49", "dblpid": "books/aw/kimL89/Moss89", "title": "Object Orientation as Catalyst for Language-Database Inegration.", "authors": "J. Eliot B. Moss", "misc": "2002-01-03 583-592 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#Moss89" }
+{ "id": "51", "dblpid": "books/aw/kimL89/NierstraszT89", "title": "Integrated Office Systems.", "authors": "Oscar Nierstrasz Dennis Tsichritzis", "misc": "2002-01-03 199-215 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#NierstraszT89" }
+{ "id": "53", "dblpid": "books/aw/kimL89/SkarraZ89", "title": "Concurrency Control and Object-Oriented Databases.", "authors": "Andrea H. Skarra Stanley B. Zdonik", "misc": "2002-01-03 395-421 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#SkarraZ89" }
+{ "id": "55", "dblpid": "books/aw/kimL89/TarltonT89", "title": "Pogo  A Declarative Representation System for Graphics.", "authors": "Mark A. Tarlton P. Nong Tarlton", "misc": "2002-01-03 151-176 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#TarltonT89" }
+{ "id": "57", "dblpid": "books/aw/kimL89/TsichritzisN89", "title": "Directions in Object-Oriented Research.", "authors": "Dennis Tsichritzis Oscar Nierstrasz", "misc": "2002-01-03 523-536 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#TsichritzisN89" }
+{ "id": "59", "dblpid": "books/aw/kimL89/WeiserL89", "title": "OZ+  An Object-Oriented Database System.", "authors": "Stephen P. Weiser Frederick H. Lochovsky", "misc": "2002-01-03 309-337 1989 Object-Oriented Concepts, Databases, and Applications db/books/collections/kim89.html#WeiserL89" }
+{ "id": "61", "dblpid": "books/aw/stonebraker86/Stonebraker86", "title": "Design of Relational Systems (Introduction to Section 1).", "authors": "Michael Stonebraker", "misc": "2002-01-03 1-3 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86 db/books/collections/Stonebraker86/Stonebraker86.html ingres/P001.pdf" }
+{ "id": "63", "dblpid": "books/aw/stonebraker86/Stonebraker86b", "title": "Distributed Database Systems (Introduction to Section 3).", "authors": "Michael Stonebraker", "misc": "2002-01-03 183-186 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86b db/books/collections/Stonebraker86/Stonebraker86b.html ingres/P183.pdf" }
+{ "id": "65", "dblpid": "books/aw/stonebraker86/Stonebraker86d", "title": "User Interfaces for Database Systems (Introduction to Section 4).", "authors": "Michael Stonebraker", "misc": "2002-01-03 243-245 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86d db/books/collections/Stonebraker86/Stonebraker86d.html ingres/P243.pdf" }
+{ "id": "67", "dblpid": "books/aw/stonebraker86/Stonebraker86f", "authors": "Michael Stonebraker", "misc": "2002-01-03 393-394 1986 The INGRES Papers db/books/collections/Stonebraker86.html#Stonebraker86f db/books/collections/Stonebraker86/Stonebraker86f.html ingres/P393.pdf" }
+{ "id": "69", "dblpid": "books/aw/stonebraker86/X86a", "title": "References.", "authors": "", "misc": "2002-01-03 429-444 1986 The INGRES Papers db/books/collections/Stonebraker86.html#X86a db/books/collections/Stonebraker86/X86a.html ingres/P429.pdf" }
+{ "id": "71", "dblpid": "books/aw/AbiteboulHV95", "title": "Foundations of Databases.", "authors": "Serge Abiteboul Richard Hull Victor Vianu", "misc": "2002-01-03 Addison-Wesley 1995 0-201-53771-0 AHV/Toc.pdf ... ... journals/tods/AstrahanBCEGGKLMMPTWW76 books/bc/AtzeniA93 journals/tcs/AtzeniABM82 journals/jcss/AbiteboulB86 journals/csur/AtkinsonB87 conf/pods/AtzeniB87 journals/vldb/AbiteboulB95 conf/sigmod/AbiteboulB91 conf/dood/AtkinsonBDDMZ89 conf/vldb/AlbanoBGO93 ... conf/icdt/Abiteboul88 journals/ipl/Abiteboul89 conf/ds/Abrial74 journals/tods/AhoBU79 books/mk/minker88/AptBW88 conf/vldb/AroraC78 conf/stoc/AfratiC89 journals/tods/AlbanoCO85 conf/pods/AfratiCY91 conf/pods/AusielloDM85 conf/vldb/AbiteboulG85 journals/jacm/AjtaiG87 conf/focs/AjtaiG89 journals/tods/AbiteboulG91 ... ... journals/tods/AbiteboulH87 conf/sigmod/AbiteboulH88 ... conf/sigmod/AbiteboulK89 journals/tcs/AbiteboulKG91 journals/jcss/AbiteboulKRW95 conf/sigmod/AbiteboulLUW93 conf/pods/AtzeniP82 conf/pods/AfratiP87 conf/pods/AptP87 conf/wg/AndriesP91 conf/pods/AfratiPPRSU86 books/el/leeuwen90/Apt90 conf/ifip/Armstrong74 journals/siamcomp/AhoSSU81 journals/tods/AhoSU79 journals/siamcomp/AhoSU79 conf/pods/AbiteboulSV90 journals/is/AtzeniT93 conf/popl/AhoU79 conf/pods/AbiteboulV87 conf/jcdkb/AbiteboulV88 journals/jacm/AbiteboulV88 conf/pods/AbiteboulV88 journals/jacm/AbiteboulV89 journals/jcss/AbiteboulV90 journals/jcss/AbiteboulV91 conf/stoc/AbiteboulV91 journals/amai/AbiteboulV91 journals/jcss/AbiteboulV95 journals/jacm/AptE82 conf/coco/AbiteboulVV92 conf/iclp/AptB88 conf/oopsla/BobrowKKMSZ86 journals/tse/BatoryBGSTTW88 conf/mfcs/Bancilhon78 ... conf/db-workshops/Bancilhon85 books/el/leeuwen90/Barendregt90 ... journals/tods/BeeriB79 books/el/leeuwen90/BerstelB90 conf/icdt/BeneventanoB92 conf/vldb/BernsteinBC80 conf/vldb/BeeriBG78 conf/sigmod/BorgidaBMR89 journals/tods/BunemanC79 journals/jacm/BernsteinC81 conf/dbpl/BancilhonCD89 books/bc/tanselCGSS93/BaudinetCW93 conf/sigmod/BiskupDB79 journals/jacm/BeeriDFS84 books/mk/BancilhonDK92 conf/edbt/BryDM88 conf/pods/BunemanDW88 journals/jcss/BunemanDW91 journals/tods/Beeri80 journals/dke/Beeri90 ... journals/tods/Bernstein76 conf/lics/BidoitF87 journals/iandc/BidoitF91 conf/sigmod/BeeriFH77 conf/stoc/BeeriFMMUY81 journals/jacm/BeeriFMY83 journals/tods/BunemanFN82 journals/siamcomp/BernsteinG81 journals/iandc/BlassGK85 conf/ijcai/BrachmanGL85 journals/tods/BernsteinGWRR81 books/aw/BernsteinHG87 ... journals/tcs/Bidoit91 journals/tcs/Biskup80 conf/adbt/Biskup79 journals/tods/Biskup83 journals/tcs/BunemanJO91 journals/tods/BeeriK86 conf/pods/BeeriKBR87 conf/icdt/BidoitL90 journals/csur/BatiniL86 conf/sigmod/BlakeleyLT86 conf/vldb/BeeriM91 conf/sigmod/BlakeleyMG93 journals/siamcomp/BeeriMSU81 conf/pods/BancilhonMSU86 conf/pods/BeeriNRST87 journals/software/Borgida85 conf/icalp/BraP83 conf/fgcs/BalbinMR88 ... conf/pods/BeeriR87 journals/jlp/BalbinR87 conf/sigmod/BancilhonR86 books/mk/minker88/BancilhonR88 journals/jlp/BeeriR91 conf/vldb/BancilhonRS82 conf/pods/BeeriRSS92 conf/dood/Bry89 journals/tods/BancilhonS81 journals/cogsci/BrachmanS85 journals/tods/BergamaschiS92 conf/sigmod/BernsteinST75 conf/dbpl/TannenBN91 conf/icdt/TannenBW92 ... journals/jacm/BeeriV84 conf/icalp/BeeriV81 conf/adbt/BeeriV79 journals/siamcomp/BeeriV84 journals/iandc/BeeriV84 journals/jacm/BeeriV84 journals/tcs/BeeriV85 journals/ibmrd/ChamberlinAEGLMRW76 ... journals/iandc/Cardelli88 books/mk/Cattell94 conf/sigmod/CacaceCCTZ90 conf/vldb/CastilhoCF82 conf/adbt/CasanovaF82 conf/focs/CaiFI89 journals/jcss/CasanovaFP84 conf/stoc/CosmadakisGKV88 conf/dood/CorciuloGP93 books/sp/CeriGT90 conf/focs/ChandraH80 journals/jcss/ChandraH80 journals/jcss/ChandraH82 journals/jlp/ChandraH85 conf/popl/Chandra81 conf/adbt/Chang79 conf/pods/Chandra88 ... journals/tods/Chen76 conf/ride/ChenHM94 conf/icde/Chomicki92 conf/pods/Chomicki92 ... ... ... conf/stoc/CosmadakisK85 journals/acr/CosmadakisK86 ... journals/jcss/CosmadakisKS86 journals/jacm/CosmadakisKV90 ... conf/pods/CalvaneseL94 conf/adbt/Clark77 conf/stoc/ChandraLM81 conf/stoc/ChandraM77 conf/pods/ConsensM90 conf/sigmod/ConsensM93 conf/icdt/ConsensM90 journals/cacm/Codd70 conf/sigmod/Codd71a persons/Codd71a persons/Codd72 conf/ifip/Codd74 ... conf/sigmod/Codd79 journals/cacm/Codd82 ... conf/sigmod/Cohen89 journals/cacm/Cohen90 ... journals/jcss/Cook74 conf/pods/Cosmadakis83 conf/focs/Cosmadakis87 books/el/leeuwen90/Courcelle90a journals/jacm/CosmadakisP84 conf/edbt/CeriCGLLTZ88 ... conf/vldb/CeriT87 conf/vldb/CasanovaTF88 ... conf/pods/CasanovaV83 journals/siamcomp/ChandraV85 conf/pods/ChaudhuriV92 conf/pods/ChaudhuriV93 conf/pods/ChaudhuriV94 journals/csur/CardelliW85 conf/pods/ChenW89 conf/pods/CohenW89 conf/vldb/CeriW90 conf/vldb/CeriW91 conf/iclp/ChenW92 conf/vldb/CeriW93 ... conf/birthday/Dahlhaus87 conf/vldb/Date81 books/aw/Date86 ... conf/dbpl/Dayal89 journals/tods/DayalB82 journals/ibmrd/DelobelC73 conf/icde/DelcambreD89 ... journals/tods/Delobel78 journals/jacm/Demolombe92 journals/tods/DateF92 ... conf/vldb/DayalHL91 journals/jacm/Paola69a conf/caap/DahlhausM86 journals/acr/DAtriM86 journals/iandc/DahlhausM92 conf/sigmod/DerrMP93 conf/vldb/MaindrevilleS88 conf/pods/Dong92 conf/adbt/BraP82 ... conf/dbpl/DongS91 journals/iandc/DongS95 conf/dbpl/DongS93 conf/dbpl/DongS93 conf/icdt/DongT92 conf/vldb/DenninghoffV91 conf/pods/DenninghoffV93 ... ... books/acm/kim95/DayalHW95 ... conf/pods/EiterGM94 conf/pods/Escobar-MolanoHJ93 ... books/el/leeuwen90/Emerson90 books/bc/ElmasriN89 ... conf/icse/Eswaran76 conf/sigmod/EpsteinSW78 ... ... conf/vldb/Fagin77 journals/tods/Fagin77 conf/sigmod/Fagin79 journals/tods/Fagin81 journals/ipl/FaginV83 journals/jacm/Fagin82 journals/jacm/Fagin83 journals/tcs/Fagin93 books/sp/kimrb85/FurtadoC85 ... journals/jlp/Fitting85a journals/tcs/FischerJT83 journals/acr/FaginKUV86 conf/icdt/FernandezM92 journals/tods/FaginMU82 conf/vldb/FaloutsosNS91 ... journals/ai/Forgy82 ... conf/sigmod/Freytag87 ... journals/siamcomp/FischerT83 journals/siamcomp/FaginMUY83 conf/pods/FaginUV83 conf/icalp/FaginV84 ... ... ... ... conf/sigmod/GraefeD87 conf/ride/GatziuD94 conf/sigmod/GardarinM86 conf/sigmod/GyssensG88 journals/tcs/GinsburgH83a journals/jacm/GinsburgH86 ... books/bc/tanselCGSS93/Ginsburg93 books/fm/GareyJ79 journals/jacm/GrantJ82 conf/vldb/GehaniJ91 conf/vldb/GhandeharizadehHJCELLTZ93 journals/tods/GhandeharizadehHJ96 conf/vldb/GehaniJS92 ... conf/sigmod/GehaniJS92 ... conf/deductive/GuptaKM92 conf/pods/GurevichL82 conf/iclp/GelfondL88 conf/adbt/77 journals/csur/GallaireMN84 conf/pods/GrahneMR92 conf/sigmod/GuptaMS93 conf/lics/GaifmanMSV87 journals/jacm/GaifmanMSV93 journals/jacm/GrahamMV86 conf/csl/GradelO92 ... conf/pods/Gottlob87 conf/pods/GyssensPG90 conf/dood/GiannottiPSZ91 books/aw/GoldbergR83 journals/acr/GrahneR86 journals/ipl/Grant77 ... journals/iandc/Grandjean83 conf/vldb/Grahne84 ... journals/csur/Graefe93 books/sp/Greibach75 journals/tods/GoodmanS82 journals/jcss/GoodmanS84 conf/focs/GurevichS85 ... conf/pods/GrumbachS94 conf/sigmod/GangulyST90 ... journals/tcs/Gunter92 ... ... ... ... conf/pods/GrahamV84 conf/pods/GrumbachV91 conf/icde/GardarinV92 conf/sigmod/GraefeW89 ... journals/jacm/GinsburgZ82 conf/vldb/GottlobZ88 ... ... journals/sigmod/Hanson89 ... journals/cacm/Harel80 journals/tkde/HaasCLMWLLPCS90 conf/lics/Hella92 journals/iandc/Herrmann95 conf/pods/HirstH93 conf/vldb/HullJ91 conf/ewdw/HullJ90 journals/csur/HullK87 journals/tods/HudsonK89 conf/lics/HillebrandKM93 conf/nato/HillebrandKR93 conf/jcdkb/HsuLM88 journals/ipl/HoneymanLY80 journals/tods/HammerM81 conf/adbt/HenschenMN82 ... journals/jacm/HenschenN84 journals/jacm/Honeyman82 conf/sigmod/HullS89 conf/pods/HullS89 journals/acta/HullS94 journals/jcss/HullS93 conf/fodo/HullTY89 journals/jcss/Hull83 journals/jacm/Hull84 journals/tcs/Hull85 journals/siamcomp/Hull86 ... conf/vldb/Hulin89 ... journals/jacm/HullY84 conf/vldb/HullY90 conf/pods/HullY91 conf/sigmod/IoannidisK90 journals/jcss/ImielinskiL84 conf/adbt/Imielinski82 journals/jcss/Immerman82 journals/iandc/Immerman86 ... journals/siamcomp/Immerman87 conf/pods/ImielinskiN88 conf/vldb/IoannidisNSS92 conf/sigmod/ImielinskiNV91 conf/dood/ImielinskiNV91 conf/vldb/Ioannidis85 journals/jacm/Jacobs82 conf/dbpl/JacobsH91 journals/csur/JarkeK84 journals/jcss/JohnsonK84 conf/popl/JaffarL87 books/el/leeuwen90/Johnson90 journals/jacm/Joyner76 conf/pods/JaeschkeS82 ... books/mk/minker88/Kanellakis88 books/el/leeuwen90/Kanellakis90 conf/oopsla/KhoshafianC86 conf/edbt/KotzDM88 conf/jcdkb/Keller82 conf/pods/Keller85 journals/computer/Keller86 ... journals/tods/Kent79 ... journals/ngc/RohmerLK86 conf/tacs/KanellakisG94 conf/jcdkb/Kifer88 conf/pods/KanellakisKR90 conf/sigmod/KiferKS92 ... conf/icdt/KiferL86 books/aw/KimL89 ... journals/tods/Klug80 journals/jacm/Klug82 journals/jacm/Klug88 journals/jacm/KiferLW95 conf/kr/KatsunoM91 journals/ai/KatsunoM92 conf/jcdkb/KrishnamurthyN88 journals/csur/Knight89 ... journals/iandc/Kolaitis91 journals/ai/Konolige88 conf/ifip/Kowalski74 journals/jacm/Kowalski75 conf/bncod/Kowalski84 conf/vldb/KoenigP81 journals/tods/KlugP82 ... conf/pods/KolaitisP88 conf/pods/KiferRS88 conf/sigmod/KrishnamurthyRS88 books/mg/SilberschatzK91 conf/iclp/KempT88 conf/sigmod/KellerU84 conf/dood/Kuchenhoff91 ... journals/jlp/Kunen87 conf/iclp/Kunen88 conf/pods/Kuper87 conf/pods/Kuper88 conf/ppcp/Kuper93 conf/pods/KuperV84 conf/stoc/KolaitisV87 journals/tcs/KarabegV90 journals/iandc/KolaitisV90 conf/pods/KolaitisV90 journals/tods/KarabegV91 journals/iandc/KolaitisV92 journals/tcs/KuperV93 journals/tods/KuperV93 journals/tse/KellerW85 conf/pods/KiferW89 conf/jcdkb/Lang88 books/el/Leeuwen90 ... journals/jcss/Leivant89 ... journals/iandc/Leivant90 ... conf/db-workshops/Levesque82 journals/ai/Levesque84 conf/mfdbs/Libkin91 conf/er/Lien79 journals/jacm/Lien82 books/mk/minker88/Lifschitz88 ... journals/tcs/Lindell91 journals/tods/Lipski79 journals/jacm/Lipski81 journals/tcs/LeratL86 journals/cj/LeveneL90 books/sp/Lloyd87 conf/pods/LakshmananM89 conf/tlca/LeivantM93 conf/sigmod/LaverMG83 conf/pods/LiptonN90 journals/jcss/LucchesiO78 conf/sigmod/Lohman88 ... conf/ijcai/Lozinskii85 books/ph/LewisP81 ... conf/sigmod/LecluseRV88 journals/is/LipeckS87 journals/jlp/LloydST87 journals/tods/LingTK81 conf/sigmod/LyngbaekV87 conf/dood/LefebvreV89 conf/pods/LibkinW93 conf/dbpl/LibkinW93 journals/jacm/Maier80 books/cs/Maier83 ... conf/vldb/Makinouchi77 conf/icalp/Makowsky81 ... conf/icdt/Malvestuto86 conf/aaai/MacGregorB92 journals/tods/MylopoulosBW80 conf/sigmod/McCarthyD89 journals/csur/MishraE92 conf/sigmod/MumickFPR90 books/mk/Minker88 journals/jlp/Minker88 conf/vldb/MillerIR93 journals/is/MillerIR94 journals/iandc/Mitchell83 conf/pods/Mitchell83 conf/vldb/MendelzonM79 journals/tods/MaierMS79 journals/jcss/MaierMSU80 conf/pods/MendelzonMW94 journals/debu/MorrisNSUG87 journals/ai/Moore85 conf/vldb/Morgenstern83 conf/pods/Morris88 ... conf/pods/MannilaR85 ... journals/jlp/MinkerR90 books/aw/MannilaR92 journals/acr/MaierRW86 ... journals/tods/MarkowitzS92 conf/pods/Marchetti-SpaccamelaPS87 journals/jacm/MaierSY81 conf/iclp/MorrisUG86 journals/tods/MaierUV84 conf/iclp/MorrisUG86 journals/acta/MakowskyV86 books/bc/MaierW88 books/mk/minker88/ManchandraW88 conf/pods/Naughton86 conf/sigmod/NgFS91 ... conf/vldb/Nejdl87 conf/adbt/NicolasM77 conf/sigmod/Nicolas78 journals/acta/Nicolas82 conf/ds/76 conf/pods/NaqviK88 journals/tods/NegriPS91 conf/vldb/NaughtonRSU89 conf/pods/NaughtonS87 ... ... conf/vldb/Osborn79 ... journals/tods/OzsoyogluY87 conf/adbt/Paige82 ... books/cs/Papadimitriou86 ... journals/ipl/Paredaens78 ... books/sp/ParedaensBGG89 journals/ai/Andersen91 books/el/leeuwen90/Perrin90 journals/ins/Petrov89 conf/pods/ParedaensG88 conf/pods/PatnaikI94 conf/adbt/ParedaensJ79 journals/csur/PeckhamM88 ... ... conf/sigmod/ParkerP80 ... conf/iclp/Przymusinski88 conf/pods/Przymusinski89 ... conf/vldb/ParkerSV92 conf/aaai/PearlV87 journals/ai/PereiraW80a conf/pods/PapadimitriouY92 journals/tkde/QianW91 ... journals/jlp/Ramakrishnan91 conf/pods/RamakrishnanBS87 ... conf/adbt/Reiter77 journals/ai/Reiter80 conf/db-workshops/Reiter82 journals/jacm/Reiter86 journals/tods/Rissanen77 conf/mfcs/Rissanen78 conf/pods/Rissanen82 ... journals/ngc/RohmerLK86 journals/jacm/Robinson65 ... conf/pods/Ross89 ... ... conf/sigmod/RoweS79 conf/sigmod/RichardsonS91 journals/debu/RamamohanaraoSBPNTZD87 conf/vldb/RamakrishnanSS92 conf/sigmod/RamakrishnanSSS93 conf/pods/RamakrishnanSUV89 journals/jcss/RamakrishnanSUV93 journals/jlp/RamakrishnanU95 conf/sigmod/SelingerACLP79 conf/sigmod/Sagiv81 journals/tods/Sagiv83 books/mk/minker88/Sagiv88 conf/slp/Sagiv90 conf/sigmod/Sciore81 journals/jacm/Sciore82 conf/pods/Sciore83 journals/acr/Sciore86 journals/jacm/SagivDPF81 conf/pods/X89 ... journals/ai/SmithG85 books/mk/minker88/Shepherdson88 journals/tods/Shipman81 conf/pods/Shmueli87 conf/iclp/SekiI88 conf/sigmod/ShmueliI84 journals/tc/Sickel76 journals/jsc/Siekmann89 conf/sigmod/StonebrakerJGP90 conf/vldb/SimonKM92 journals/csur/ShethL90 conf/pods/SeibL91 conf/sigmod/SuLRD93 conf/adbt/SilvaM79 journals/sigmod/Snodgrass90 journals/sigmod/Soo91 conf/pods/SuciuP94 conf/sigmod/StonebrakerR86 conf/slp/SudarshanR93 conf/pods/SagivS86 journals/cacm/Stonebraker81 books/mk/Stonebraker88 journals/tkde/Stonebraker92 books/aw/Stroustrup91 journals/jacm/SadriU82 conf/vldb/Su91 conf/pods/SagivV89 journals/jacm/SagivW82 journals/tods/StonebrakerWKH76 journals/jacm/SagivY80 conf/pods/SaccaZ86 journals/tcs/SaccaZ88 ... conf/pods/SaccaZ90 ... ... books/bc/TanselCGJSS93 ... journals/acr/ThomasF86 ... ... ... ... journals/tcs/Topor87 ... books/mk/minker88/ToporS88 ... journals/siamcomp/TarjanY84 journals/csur/TeoreyYF86 journals/algorithmica/UllmanG88 conf/pods/Ullman82 books/cs/Ullman82 journals/tods/Ullman85 books/cs/Ullman88 conf/pods/Ullman89 books/cs/Ullman89 conf/sigmod/Gelder86 ... conf/pods/BusscheG92 conf/focs/BusscheGAG92 conf/pods/BusscheP91 conf/slp/Gelder86 conf/pods/Gelder89 conf/pods/GelderRS88 journals/jacm/GelderRS91 journals/tods/GelderT91 journals/ipl/Vardi81 conf/stoc/Vardi82 conf/focs/Vardi82 journals/acta/Vardi83 journals/jcss/Vardi84 conf/pods/Vardi85 conf/pods/Vardi86 journals/jcss/Vardi86 ... conf/pods/Vardi88 conf/sigmod/Vassiliou79 ... ... journals/jacm/EmdenK76 conf/nf2/SchollABBGPRV87 journals/jacm/Vianu87 journals/acta/Vianu87 conf/eds/Vieille86 conf/iclp/Vieille87 ... conf/eds/Vieille88 journals/tcs/Vieille89 ... journals/tcs/VianuV92 conf/sigmod/WidomF90 conf/icde/WangH92 conf/pos/WidjojoHW90 journals/computer/Wiederhold92 conf/pods/Wilkins86 conf/pods/Winslett88 conf/sigmod/WolfsonO90 conf/pods/Wong93 conf/sigmod/WolfsonS88 journals/ibmrd/WangW75 journals/tods/WongY76 conf/vldb/Yannakakis81 journals/csur/YuC84 ... journals/jcss/YannakakisP82 ... journals/tods/Zaniolo82 journals/jcss/Zaniolo84 ... conf/edbt/ZhouH90 journals/ibmsj/Zloof77 books/mk/ZdonikM90 db/books/dbtext/abiteboul95.html" }
+{ "id": "73", "dblpid": "books/aw/AhoHU74", "title": "The Design and Analysis of Computer Algorithms.", "authors": "Alfred V. Aho John E. Hopcroft Jeffrey D. Ullman", "misc": "2002-01-03 Addison-Wesley 1974 0-201-00029-6" }
+{ "id": "75", "dblpid": "books/aw/AhoHU83", "title": "Data Structures and Algorithms.", "authors": "Alfred V. Aho John E. Hopcroft Jeffrey D. Ullman", "misc": "2002-01-03 Addison-Wesley 1983 0-201-00023-7" }
+{ "id": "77", "dblpid": "books/aw/AhoKW88", "title": "The AWK Programming Language", "authors": "Alfred V. Aho Brian W. Kernighan Peter J. Weinberger", "misc": "2002-01-03 Addison-Wesley 1988" }
+{ "id": "79", "dblpid": "books/aw/AhoSU86", "title": "Compilers  Princiles, Techniques, and Tools.", "authors": "Alfred V. Aho Ravi Sethi Jeffrey D. Ullman", "misc": "2002-01-03 Addison-Wesley 1986 0-201-10088-6" }
+{ "id": "81", "dblpid": "journals/siamcomp/AspnesW96", "authors": "James Aspnes Orli Waarts", "misc": "2002-01-03 1024-1044 1996 25 SIAM J. Comput. 5 db/journals/siamcomp/siamcomp25.html#AspnesW96" }
+{ "id": "83", "dblpid": "journals/siamcomp/Bloniarz83", "title": "A Shortest-Path Algorithm with Expected Time O(n² log n log* n).", "authors": "Peter A. Bloniarz", "misc": "2002-01-03 588-600 1983 12 SIAM J. Comput. 3 db/journals/siamcomp/siamcomp12.html#Bloniarz83" }
+{ "id": "85", "dblpid": "journals/siamcomp/Megiddo83a", "title": "Linear-Time Algorithms for Linear Programming in R³ and Related Problems.", "authors": "Nimrod Megiddo", "misc": "2002-01-03 759-776 1983 12 SIAM J. Comput. 4 db/journals/siamcomp/siamcomp12.html#Megiddo83a" }
+{ "id": "87", "dblpid": "journals/siamcomp/MoffatT87", "title": "An All Pairs Shortest Path Algorithm with Expected Time O(n² log n).", "authors": "Alistair Moffat Tadao Takaoka", "misc": "2002-01-03 1023-1031 1987 16 SIAM J. Comput. 6 db/journals/siamcomp/siamcomp16.html#MoffatT87" }
+{ "id": "89", "dblpid": "conf/icip/SchonfeldL98", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-11-05 123-127 1998 ICIP (3) db/conf/icip/icip1998-3.html#SchonfeldL98" }
+{ "id": "91", "dblpid": "journals/corr/abs-0802-2861", "title": "Geometric Set Cover and Hitting Sets for Polytopes in $R^3$", "authors": "Sören Laue", "misc": "2008-03-03 http //arxiv.org/abs/0802.2861 2008 CoRR abs/0802.2861 db/journals/corr/corr0802.html#abs-0802-2861 informal publication" }
+{ "id": "93", "dblpid": "journals/iandc/IbarraJCR91", "authors": "Oscar H. Ibarra Tao Jiang Jik H. Chang Bala Ravikumar", "misc": "2006-04-25 86-106 Inf. Comput. January 1991 90 1 db/journals/iandc/iandc90.html#IbarraJCR91" }
+{ "id": "95", "dblpid": "journals/jacm/GalilHLSW87", "title": "An O(n³log n) deterministic and an O(n³) Las Vegs isomorphism test for trivalent graphs.", "authors": "Zvi Galil Christoph M. Hoffmann Eugene M. Luks Claus-Peter Schnorr Andreas Weber", "misc": "2003-11-20 513-531 1987 34 J. ACM 3 http //doi.acm.org/10.1145/28869.28870 db/journals/jacm/jacm34.html#GalilHLSW87" }
+{ "id": "97", "dblpid": "journals/jacm/GalilT88", "title": "An O(n²(m + n log n)log n) min-cost flow algorithm.", "authors": "Zvi Galil Éva Tardos", "misc": "2003-11-20 374-386 1988 35 J. ACM 2 http //doi.acm.org/10.1145/42282.214090 db/journals/jacm/jacm35.html#GalilT88" }
+{ "id": "99", "dblpid": "series/synthesis/2009Weintraub", "title": "Jordan Canonical Form  Theory and Practice", "authors": "Steven H. Weintraub", "misc": "2009-09-06 Jordan Canonical Form  Theory and Practice http //dx.doi.org/10.2200/S00218ED1V01Y200908MAS006 http //dx.doi.org/10.2200/S00218ED1V01Y200908MAS006 2009 Synthesis Lectures on Mathematics & Statistics Morgan & Claypool Publishers" }
diff --git a/asterixdb/asterix-app/data/tinycollege/staff.adm b/asterixdb/asterix-app/data/tinycollege/staff.adm
index 4bfdd4b..d24bd87 100644
--- a/asterixdb/asterix-app/data/tinycollege/staff.adm
+++ b/asterixdb/asterix-app/data/tinycollege/staff.adm
@@ -1,7 +1,8 @@
-{ "id": 14, "name": "Alex", "office": "A", "employment": interval(date("2003-01-01"), date("2008-01-01")) }
-{ "id": 13, "name": "Elisabeth", "office": "B", "employment": interval(date("2002-01-01"), date("2010-01-01")) }
-{ "id": 16, "name": "Franklin", "office": "A", "employment": interval(date("2004-01-01"), date("2009-01-01")) }
-{ "id": 15, "name": "Henry", "office": "C", "employment": interval(date("2003-01-01"), date("2008-01-01")) }
-{ "id": 17, "name": "Maryann", "office": "B", "employment": interval(date("2006-01-01"), date("2010-01-01")) }
-{ "id": 11, "name": "Vicky", "office": "D", "employment": interval(date("2001-01-01"), date("2010-01-01")) }
-{ "id": 12, "name": "Zack", "office": "A", "employment": interval(date("2002-01-01"), date("2003-01-01")) }
+{ "id": 14, "name": "Alex", "office": "A", "employment": interval(date("2003-01-01"), date("2008-01-01")), "vacation": interval(datetime("2003-01-01T00:00:00.0"), datetime("2008-01-01T00:00:00.0")), "office_hours": interval(time("03:00:00.0+00:00"), time("08:00:00.0+00:00"))}
+{ "id": 13, "name": "Elisabeth", "office": "B", "employment": interval(date("2002-01-01"), date("2010-01-01")), "vacation": interval(datetime("2002-01-01T00:00:00.0"), datetime("2010-01-01T00:00:00.0")), "office_hours": interval(time("02:00:00.0+00:00"), time("10:00:00.0+00:00"))}
+{ "id": 16, "name": "Franklin", "office": "A", "employment": interval(date("2004-01-01"), date("2009-01-01")), "vacation": interval(datetime("2004-01-01T00:00:00.0"), datetime("2009-01-01T00:00:00.0")), "office_hours": interval(time("04:00:00.0+00:00"), time("09:00:00.0+00:00"))}
+{ "id": 15, "name": "Henry", "office": "C", "employment": interval(date("2003-01-01"), date("2008-01-01")), "vacation": interval(datetime("2003-01-01T00:00:00.0"), datetime("2008-01-01T00:00:00.0")), "office_hours": interval(time("03:00:00.0+00:00"), time("08:00:00.0+00:00"))}
+{ "id": 17, "name": "MaryAnn", "office": "B", "employment": interval(date("2006-01-01"), date("2010-01-01")), "vacation": interval(datetime("2006-01-01T00:00:00.0"), datetime("2010-01-01T00:00:00.0")), "office_hours": interval(time("06:00:00.0+00:00"), time("10:00:00.0+00:00"))}
+{ "id": 11, "name": "Vicky", "office": "D", "employment": interval(date("2001-01-01"), date("2010-01-01")), "vacation": interval(datetime("2001-01-01T00:00:00.0"), datetime("2010-01-01T00:00:00.0")), "office_hours": interval(time("01:00:00.0+00:00"), time("10:00:00.0+00:00"))}
+{ "id": 12, "name": "Zack", "office": "A", "employment": interval(date("2002-01-01"), date("2003-01-01")), "vacation": interval(datetime("2002-01-01T00:00:00.0"), datetime("2003-01-01T00:00:00.0")), "office_hours": interval(time("02:00:00.0+00:00"), time("03:00:00.0+00:00"))}
+{ "id": 18, "name": "Jake", "office": "C", "employment": interval(date("2006-01-01"), date("2008-01-01")), "vacation": interval(datetime("2006-01-01T00:00:00.0"), datetime("2008-01-01T00:00:00.0")), "office_hours": interval(time("06:00:00.0+00:00"), time("08:00:00.0+00:00"))}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/data/tinycollege/students.adm b/asterixdb/asterix-app/data/tinycollege/students.adm
index b869075..d9447d2 100644
--- a/asterixdb/asterix-app/data/tinycollege/students.adm
+++ b/asterixdb/asterix-app/data/tinycollege/students.adm
@@ -1,7 +1,7 @@
-{ "id": 22, "name": "Charles", "office": "X", "attendance": interval(date("2001-01-01"), date("2004-01-01")) }
-{ "id": 23, "name": "Frank", "office": "Y", "attendance": interval(date("2001-01-01"), date("2004-01-01")) }
-{ "id": 25, "name": "Karen", "office": "Y", "attendance": interval(date("2007-01-01"), date("2009-01-01")) }
-{ "id": 24, "name": "Mary", "office": "Y", "attendance": interval(date("2002-01-01"), date("2005-01-01")) }
-{ "id": 21, "name": "Olga", "office": "Z", "attendance": interval(date("2001-01-01"), date("2003-01-01")) }
-{ "id": 26, "name": "Steve", "office": "Z", "attendance": interval(date("2007-01-01"), date("2010-01-01")) }
-{ "id": 27, "name": "Tess", "office": "X", "attendance": interval(date("2008-01-01"), date("2010-01-01")) }
+{ "id": 22, "name": "Charles", "office": "X", "attendance": interval(date("2001-01-01"), date("2004-01-01")), "break": interval(datetime("2001-01-01T00:00:00.0"), datetime("2004-01-01T00:00:00.0")), "work_hours": interval(time("01:00:00.0+00:00"), time("04:00:00.0+00:00"))}
+{ "id": 23, "name": "Frank", "office": "Y", "attendance": interval(date("2001-01-01"), date("2004-01-01")), "break": interval(datetime("2001-01-01T00:00:00.0"), datetime("2004-01-01T00:00:00.0")), "work_hours": interval(time("01:00:00.0+00:00"), time("04:00:00.0+00:00"))}
+{ "id": 25, "name": "Karen", "office": "Y", "attendance": interval(date("2007-01-01"), date("2009-01-01")), "break": interval(datetime("2007-01-01T00:00:00.0"), datetime("2009-01-01T00:00:00.0")), "work_hours": interval(time("07:00:00.0+00:00"), time("09:00:00.0+00:00"))}
+{ "id": 24, "name": "Mary", "office": "Y", "attendance": interval(date("2002-01-01"), date("2005-01-01")), "break": interval(datetime("2002-01-01T00:00:00.0"), datetime("2005-01-01T00:00:00.0")), "work_hours": interval(time("02:00:00.0+00:00"), time("05:00:00.0+00:00"))}
+{ "id": 21, "name": "Olga", "office": "Z", "attendance": interval(date("2001-01-01"), date("2003-01-01")), "break": interval(datetime("2001-01-01T00:00:00.0"), datetime("2003-01-01T00:00:00.0")), "work_hours": interval(time("01:00:00.0+00:00"), time("03:00:00.0+00:00"))}
+{ "id": 26, "name": "Steve", "office": "Z", "attendance": interval(date("2007-01-01"), date("2010-01-01")), "break": interval(datetime("2007-01-01T00:00:00.0"), datetime("2010-01-01T00:00:00.0")), "work_hours": interval(time("07:00:00.0+00:00"), time("10:00:00.0+00:00"))}
+{ "id": 27, "name": "Tess", "office": "X", "attendance": interval(date("2008-01-01"), date("2010-01-01")), "break": interval(datetime("2008-01-01T00:00:00.0"), datetime("2010-01-01T00:00:00.0")), "work_hours": interval(time("08:00:00.0+00:00"), time("10:00:00.0+00:00"))}
diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml
index 87de7c3..e8f9575 100644
--- a/asterixdb/asterix-app/pom.xml
+++ b/asterixdb/asterix-app/pom.xml
@@ -37,8 +37,8 @@
     <root.dir>${basedir}/..</root.dir>
     <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
     <sonar.sources>pom.xml,src/main/java,src/main/resources</sonar.sources>
-    <pip.path>${project.build.directory}${file.separator}bin${file.separator}pip3</pip.path>
-    <shiv.path>${project.build.directory}${file.separator}bin${file.separator}shiv</shiv.path>
+    <pip.path>${project.build.directory}/bin/pip3</pip.path>
+    <shiv.path>${project.build.directory}/bin/shiv</shiv.path>
   </properties>
   <build>
     <plugins>
@@ -208,7 +208,7 @@
             </configuration>
           </execution>
           <execution>
-            <id>shiv-pyro-shim</id>
+            <id>shiv-msgpack-shim</id>
             <phase>${pyro-shim.stage}</phase>
             <goals>
               <goal>exec</goal>
@@ -218,8 +218,8 @@
               <workingDirectory>${project.build.directory}</workingDirectory>
               <arguments>
                 <argument>-o </argument>
-                <argument>${project.build.directory}${file.separator}classes${file.separator}pyro4.pyz</argument>
-                <argument>pyro4</argument>
+                <argument>${project.build.directory}${file.separator}classes${file.separator}msgpack.pyz</argument>
+                <argument>msgpack</argument>
               </arguments>
               <environmentVariables>
                 <VIRTUALENV>${project.build.directory}</VIRTUALENV>
@@ -382,8 +382,8 @@
         </os>
       </activation>
       <properties>
-        <pip.path>${project.build.directory}${file.separator}Scripts${file.separator}pip3.exe</pip.path>
-        <shiv.path>${project.build.directory}${file.separator}Scripts${file.separator}shiv.exe</shiv.path>
+        <pip.path>${project.build.directory}\Scripts\pip3.exe</pip.path>
+        <shiv.path>${project.build.directory}\Scripts\shiv.exe</shiv.path>
       </properties>
     </profile>
     <profile>
@@ -827,9 +827,9 @@
       <artifactId>commons-csv</artifactId>
     </dependency>
     <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpmime</artifactId>
-        <scope>test</scope>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpmime</artifactId>
+      <scope>test</scope>
     </dependency>
     <!-- AWS -->
     <dependency>
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 a3593d5..a5daab6 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
@@ -133,12 +133,12 @@
                     CompilerProperties.COMPILER_SORTMEMORY_KEY, CompilerProperties.COMPILER_WINDOWMEMORY_KEY,
                     CompilerProperties.COMPILER_TEXTSEARCHMEMORY_KEY, CompilerProperties.COMPILER_PARALLELISM_KEY,
                     CompilerProperties.COMPILER_SORT_PARALLEL_KEY, CompilerProperties.COMPILER_SORT_SAMPLES_KEY,
-                    CompilerProperties.COMPILER_INDEXONLY_KEY, FunctionUtil.IMPORT_PRIVATE_FUNCTIONS,
-                    FuzzyUtils.SIM_FUNCTION_PROP_NAME, FuzzyUtils.SIM_THRESHOLD_PROP_NAME,
-                    StartFeedStatement.WAIT_FOR_COMPLETION, FeedActivityDetails.FEED_POLICY_NAME,
-                    FeedActivityDetails.COLLECT_LOCATIONS, SqlppQueryRewriter.INLINE_WITH_OPTION,
-                    SqlppExpressionToPlanTranslator.REWRITE_IN_AS_OR_OPTION, "hash_merge", "output-record-type",
-                    DisjunctivePredicateToJoinRule.REWRITE_OR_AS_JOIN_OPTION);
+                    CompilerProperties.COMPILER_INDEXONLY_KEY, CompilerProperties.COMPILER_INTERNAL_SANITYCHECK_KEY,
+                    FunctionUtil.IMPORT_PRIVATE_FUNCTIONS, FuzzyUtils.SIM_FUNCTION_PROP_NAME,
+                    FuzzyUtils.SIM_THRESHOLD_PROP_NAME, StartFeedStatement.WAIT_FOR_COMPLETION,
+                    FeedActivityDetails.FEED_POLICY_NAME, FeedActivityDetails.COLLECT_LOCATIONS,
+                    SqlppQueryRewriter.INLINE_WITH_OPTION, SqlppExpressionToPlanTranslator.REWRITE_IN_AS_OR_OPTION,
+                    "hash_merge", "output-record-type", DisjunctivePredicateToJoinRule.REWRITE_OR_AS_JOIN_OPTION);
 
     private final IRewriterFactory rewriterFactory;
     private final IAstPrintVisitorFactory astPrintVisitorFactory;
@@ -187,7 +187,7 @@
             generateExpressionTree(q);
         }
         IQueryRewriter rw = rewriterFactory.createQueryRewriter();
-        rw.rewrite(declaredFunctions, q, metadataProvider,
+        rw.rewrite(new ArrayList<>(declaredFunctions), q, metadataProvider,
                 new LangRewritingContext(q.getVarCounter(), warningCollector), inlineUdfs, externalVars);
         return new Pair<>(q, q.getVarCounter());
     }
@@ -285,6 +285,7 @@
         builder.setHashFunctionFactoryProvider(format.getBinaryHashFunctionFactoryProvider());
         builder.setHashFunctionFamilyProvider(format.getBinaryHashFunctionFamilyProvider());
         builder.setMissingWriterFactory(format.getMissingWriterFactory());
+        builder.setUnnestingPositionWriterFactory(format.getUnnestingPositionWriterFactory());
         builder.setPredicateEvaluatorFactoryProvider(format.getPredicateEvaluatorFactoryProvider());
         builder.setPrinterProvider(getPrinterFactoryProvider(format, conf.fmt()));
         builder.setSerializerDeserializerProvider(format.getSerdeProvider());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
index 47e897d..cbae6e8 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
@@ -161,7 +161,7 @@
             duration = (endTime - startTime) / 1000.00;
             out.println(HTML_STATEMENT_SEPARATOR);
             out.println("<PRE>Duration of all jobs: " + duration + " sec</PRE>");
-        } catch (AsterixException | TokenMgrError | org.apache.asterix.aqlplus.parser.TokenMgrError pe) {
+        } catch (AsterixException | TokenMgrError | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
             GlobalConfig.ASTERIX_LOGGER.log(Level.INFO, pe.toString(), pe);
             ResultUtil.webUIParseExceptionHandler(out, pe, query);
         } catch (Exception e) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/BasicAuthServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/BasicAuthServlet.java
index d8e167f..f25d223 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/BasicAuthServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/BasicAuthServlet.java
@@ -18,35 +18,68 @@
  */
 package org.apache.asterix.api.http.server;
 
-import static org.apache.asterix.api.http.server.ServletConstants.CREDENTIAL_MAP;
+import static org.apache.asterix.api.http.server.ServletConstants.*;
 
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
+import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.ConcurrentMap;
 
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.hyracks.http.api.IServlet;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
-import org.apache.hyracks.http.server.AbstractServlet;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.mindrot.jbcrypt.BCrypt;
 
 import io.netty.handler.codec.http.HttpHeaderNames;
+import io.netty.handler.codec.http.HttpMethod;
 import io.netty.handler.codec.http.HttpResponseStatus;
 
-public abstract class BasicAuthServlet extends AbstractServlet {
+public class BasicAuthServlet implements IServlet {
 
     private static final Logger LOGGER = LogManager.getLogger();
     public static String BASIC_AUTH_METHOD_NAME = "Basic";
     private Base64.Decoder b64Decoder;
     Map<String, String> storedCredentials;
+    Map<String, String> ephemeralCredentials;
+    private String sysAuthHeader;
+    private final IServlet delegate;
+    private ConcurrentMap<String, Object> ctx;
 
-    protected BasicAuthServlet(ConcurrentMap<String, Object> ctx, String... paths) {
-        super(ctx, paths);
+    public BasicAuthServlet(ConcurrentMap<String, Object> ctx, IServlet delegate) {
+        this.delegate = delegate;
         b64Decoder = Base64.getDecoder();
         storedCredentials = (Map<String, String>) ctx.get(CREDENTIAL_MAP);
+        this.ctx = ctx;
+        // generate internal user
+        String sysUser;
+        do {
+            sysUser = generateRandomString(32);
+        } while (storedCredentials.containsKey(sysUser));
+        String sysPassword = generateRandomString(128);
+        ephemeralCredentials = Collections.singletonMap(sysUser, hashPassword(sysPassword));
+        sysAuthHeader = createAuthHeader(sysUser, sysPassword);
+        ctx.put(SYS_AUTH_HEADER, sysAuthHeader);
+    }
+
+    @Override
+    public String[] getPaths() {
+        return delegate.getPaths();
+    }
+
+    @Override
+    public void init() throws IOException {
+        delegate.init();
+    }
+
+    @Override
+    public ConcurrentMap<String, Object> ctx() {
+        return ctx;
     }
 
     @Override
@@ -56,7 +89,7 @@
             if (!authorized) {
                 response.setStatus(HttpResponseStatus.UNAUTHORIZED);
             } else {
-                super.handle(request, response);
+                delegate.handle(request, response);
             }
         } catch (Exception e) {
             LOGGER.log(Level.WARN, "Unhandled exception", e);
@@ -104,7 +137,7 @@
     }
 
     protected Map<String, String> getStoredCredentials(IServletRequest request) {
-        return storedCredentials;
+        return request.getHttpRequest().method().equals(HttpMethod.GET) ? ephemeralCredentials : storedCredentials;
     }
 
     public static String hashPassword(String password) {
@@ -116,4 +149,8 @@
         byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.ISO_8859_1));
         return "Basic " + new String(encodedAuth);
     }
+
+    private static String generateRandomString(int size) {
+        return RandomStringUtils.randomAlphanumeric(size);
+    }
 }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index cb1d6cf..c8062ac 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -279,7 +279,7 @@
             if (forceReadOnly) {
                 param.setReadOnly(true);
             }
-            LOGGER.info(() -> "handleRequest: " + LogRedactionUtil.userData(param.toString()));
+            LOGGER.info(() -> "handleRequest: " + LogRedactionUtil.statement(param.toString()));
             delivery = param.getMode();
             setSessionConfig(sessionOutput, param, delivery);
             final ResultProperties resultProperties = new ResultProperties(delivery, param.getMaxResultReads());
@@ -307,7 +307,7 @@
                 executionState.setStatus(ResultStatus.SUCCESS, HttpResponseStatus.OK);
             }
             errorCount = 0;
-        } catch (Exception | TokenMgrError | org.apache.asterix.aqlplus.parser.TokenMgrError e) {
+        } catch (Exception | TokenMgrError | org.apache.asterix.lang.sqlpp.parser.TokenMgrError e) {
             handleExecuteStatementException(e, executionState, param);
             response.setStatus(executionState.getHttpStatus());
             requestFailed(e, responsePrinter);
@@ -424,13 +424,14 @@
 
     protected void handleExecuteStatementException(Throwable t, RequestExecutionState executionState,
             QueryServiceRequestParameters param) {
-        if (t instanceof org.apache.asterix.aqlplus.parser.TokenMgrError || t instanceof TokenMgrError
+        if (t instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError || t instanceof TokenMgrError
                 || t instanceof AlgebricksException) {
             if (LOGGER.isDebugEnabled()) {
-                LOGGER.debug("handleException: {}: {}", t.getMessage(), LogRedactionUtil.userData(param.toString()), t);
+                LOGGER.debug("handleException: {}: {}", t.getMessage(), LogRedactionUtil.statement(param.toString()),
+                        t);
             } else {
                 LOGGER.info(() -> "handleException: " + t.getMessage() + ": "
-                        + LogRedactionUtil.userData(param.toString()));
+                        + LogRedactionUtil.statement(param.toString()));
             }
             executionState.setStatus(ResultStatus.FATAL, HttpResponseStatus.BAD_REQUEST);
         } else if (t instanceof HyracksException) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ServletConstants.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ServletConstants.java
index 857faf0..0eac474 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ServletConstants.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ServletConstants.java
@@ -26,6 +26,7 @@
     public static final String RUNNING_QUERIES_ATTR = "org.apache.asterix.RUNINNG_QUERIES";
     public static final String SERVICE_CONTEXT_ATTR = "org.apache.asterix.SERVICE_CONTEXT";
     public static final String CREDENTIAL_MAP = "org.apache.asterix.CREDENTIAL_MAP";
+    public static final String SYS_AUTH_HEADER = "org.apache.asterix.SYS_AUTH_HEADER";
 
     private ServletConstants() {
     }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java
index d0ae6ac..18139f6 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.api.http.server;
 
 import static org.apache.asterix.api.http.server.ServletConstants.HYRACKS_CONNECTION_ATTR;
+import static org.apache.asterix.api.http.server.ServletConstants.SYS_AUTH_HEADER;
 import static org.apache.asterix.common.functions.ExternalFunctionLanguage.JAVA;
 import static org.apache.asterix.common.functions.ExternalFunctionLanguage.PYTHON;
 
@@ -63,7 +64,6 @@
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.NullWriter;
-import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.application.ICCServiceContext;
@@ -74,12 +74,12 @@
 import org.apache.hyracks.control.common.work.SynchronizableWork;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
+import org.apache.hyracks.http.server.AbstractServlet;
 import org.apache.hyracks.http.server.utils.HttpUtil;
 import org.apache.hyracks.util.file.FileUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-import io.netty.handler.codec.http.HttpMethod;
 import io.netty.handler.codec.http.HttpRequest;
 import io.netty.handler.codec.http.HttpResponseStatus;
 import io.netty.handler.codec.http.HttpScheme;
@@ -87,22 +87,21 @@
 import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
 import io.netty.handler.codec.http.multipart.InterfaceHttpData;
 
-public class UdfApiServlet extends BasicAuthServlet {
+public class UdfApiServlet extends AbstractServlet {
 
     private static final Logger LOGGER = LogManager.getLogger();
 
-    private final ICcApplicationContext appCtx;
+    protected final ICcApplicationContext appCtx;
     private final ClusterControllerService ccs;
     private final HttpScheme httpServerProtocol;
     private final int httpServerPort;
 
-    private final ILangCompilationProvider compilationProvider;
-    private final IStatementExecutorFactory statementExecutorFactory;
-    private final IStorageComponentProvider componentProvider;
-    private final IReceptionist receptionist;
-    private final Path workingDir;
-    private Map<String, String> sysCredentials;
-    private String sysAuthHeader;
+    protected final ILangCompilationProvider compilationProvider;
+    protected final IStatementExecutorFactory statementExecutorFactory;
+    protected final IStorageComponentProvider componentProvider;
+    protected final IReceptionist receptionist;
+    protected final Path workingDir;
+    protected String sysAuthHeader;
 
     public UdfApiServlet(ConcurrentMap<String, Object> ctx, String[] paths, ICcApplicationContext appCtx,
             ILangCompilationProvider compilationProvider, IStatementExecutorFactory statementExecutorFactory,
@@ -124,23 +123,15 @@
 
     @Override
     public void init() throws IOException {
-        super.init();
         initAuth();
         initStorage();
     }
 
-    private void initAuth() {
-        // generate internal user
-        String sysUser;
-        do {
-            sysUser = generateRandomString(32);
-        } while (storedCredentials.containsKey(sysUser));
-        String sysPassword = generateRandomString(128);
-        this.sysCredentials = Collections.singletonMap(sysUser, hashPassword(sysPassword));
-        this.sysAuthHeader = createAuthHeader(sysUser, sysPassword);
+    protected void initAuth() {
+        sysAuthHeader = (String) ctx.get(SYS_AUTH_HEADER);
     }
 
-    private void initStorage() throws IOException {
+    protected void initStorage() throws IOException {
         // prepare working directory
         if (Files.isDirectory(workingDir)) {
             try {
@@ -154,6 +145,10 @@
         }
     }
 
+    protected Map<String, String> additionalHttpHeadersFromRequest(IServletRequest request) {
+        return Collections.emptyMap();
+    }
+
     @Override
     protected void post(IServletRequest request, IServletResponse response) {
         IClusterManagementWork.ClusterState clusterState = appCtx.getClusterStateManager().getState();
@@ -197,7 +192,7 @@
                 URI downloadURI = createDownloadURI(libraryTempFile);
                 CreateLibraryStatement stmt = new CreateLibraryStatement(libraryName.first, libraryName.second,
                         language, downloadURI, true, sysAuthHeader);
-                executeStatement(stmt, requestReference);
+                executeStatement(stmt, requestReference, request);
                 response.setStatus(HttpResponseStatus.OK);
             } catch (Exception e) {
                 response.setStatus(toHttpErrorStatus(e));
@@ -218,13 +213,12 @@
         }
     }
 
-    private URI createDownloadURI(Path file) throws Exception {
+    protected URI createDownloadURI(Path file) throws Exception {
         String path = paths[0].substring(0, trims[0]) + '/' + file.getFileName();
         String host = getHyracksClientConnection().getHost();
         return new URI(httpServerProtocol.toString(), null, host, httpServerPort, path, null, null);
     }
 
-    @Override
     protected void delete(IServletRequest request, IServletResponse response) {
         IClusterManagementWork.ClusterState clusterState = appCtx.getClusterStateManager().getState();
         if (clusterState != IClusterManagementWork.ClusterState.ACTIVE) {
@@ -238,8 +232,8 @@
         }
         try {
             IRequestReference requestReference = receptionist.welcome(request);
-            LibraryDropStatement stmt = new LibraryDropStatement(libraryName.first, libraryName.second);
-            executeStatement(stmt, requestReference);
+            LibraryDropStatement stmt = new LibraryDropStatement(libraryName.first, libraryName.second, false);
+            executeStatement(stmt, requestReference, request);
             response.setStatus(HttpResponseStatus.OK);
         } catch (Exception e) {
             response.setStatus(toHttpErrorStatus(e));
@@ -250,21 +244,21 @@
         }
     }
 
-    private void executeStatement(Statement statement, IRequestReference requestReference) throws Exception {
+    protected void executeStatement(Statement statement, IRequestReference requestReference, IServletRequest request)
+            throws Exception {
         SessionOutput sessionOutput = new SessionOutput(new SessionConfig(SessionConfig.OutputFormat.ADM),
                 new PrintWriter(NullWriter.NULL_WRITER));
         ResponsePrinter printer = new ResponsePrinter(sessionOutput);
         ResultProperties resultProperties = new ResultProperties(IStatementExecutor.ResultDelivery.IMMEDIATE, 1);
         IRequestParameters requestParams = new RequestParameters(requestReference, "", null, resultProperties,
                 new IStatementExecutor.Stats(), new IStatementExecutor.StatementProperties(), null, null,
-                Collections.emptyMap(), Collections.emptyMap(), false);
+                additionalHttpHeadersFromRequest(request), Collections.emptyMap(), false);
         MetadataManager.INSTANCE.init();
         IStatementExecutor translator = statementExecutorFactory.create(appCtx, Collections.singletonList(statement),
                 sessionOutput, compilationProvider, componentProvider, printer);
         translator.compileAndExecute(getHyracksClientConnection(), requestParams);
     }
 
-    @Override
     protected void get(IServletRequest request, IServletResponse response) throws Exception {
         IClusterManagementWork.ClusterState clusterState = appCtx.getClusterStateManager().getState();
         if (clusterState != IClusterManagementWork.ClusterState.ACTIVE) {
@@ -287,7 +281,7 @@
         readFromFile(filePath, response);
     }
 
-    private IHyracksClientConnection getHyracksClientConnection() throws Exception { // NOSONAR
+    protected IHyracksClientConnection getHyracksClientConnection() throws Exception { // NOSONAR
         IHyracksClientConnection hcc = (IHyracksClientConnection) ctx.get(HYRACKS_CONNECTION_ATTR);
         if (hcc == null) {
             throw new RuntimeDataException(ErrorCode.PROPERTY_NOT_SET, HYRACKS_CONNECTION_ATTR);
@@ -295,13 +289,7 @@
         return hcc;
     }
 
-    @Override
-    protected Map<String, String> getStoredCredentials(IServletRequest request) {
-        return request.getHttpRequest().method().equals(HttpMethod.GET) ? sysCredentials
-                : super.getStoredCredentials(request);
-    }
-
-    private Pair<DataverseName, String> parseLibraryName(IServletRequest request) throws IllegalArgumentException {
+    protected Pair<DataverseName, String> parseLibraryName(IServletRequest request) throws IllegalArgumentException {
         String[] path = StringUtils.split(localPath(request), '/');
         int ln = path.length;
         if (ln < 2) {
@@ -312,7 +300,7 @@
         return new Pair<>(dataverseName, libraryName);
     }
 
-    private static ExternalFunctionLanguage getLanguageByFileExtension(String fileExtension) {
+    protected static ExternalFunctionLanguage getLanguageByFileExtension(String fileExtension) {
         switch (fileExtension) {
             case LibraryDescriptor.FILE_EXT_ZIP:
                 return JAVA;
@@ -323,7 +311,7 @@
         }
     }
 
-    private HttpResponseStatus toHttpErrorStatus(Exception e) {
+    protected HttpResponseStatus toHttpErrorStatus(Exception e) {
         if (e instanceof IFormattedException) {
             IFormattedException fe = (IFormattedException) e;
             if (ErrorCode.ASTERIX.equals(fe.getComponent())) {
@@ -337,10 +325,6 @@
         return HttpResponseStatus.INTERNAL_SERVER_ERROR;
     }
 
-    private static String generateRandomString(int size) {
-        return RandomStringUtils.randomAlphanumeric(size);
-    }
-
     protected void readFromFile(Path filePath, IServletResponse response) throws Exception {
         class InputStreamGetter extends SynchronizableWork {
             private InputStream is;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java
index d4a52fb..c4db4eb 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/FeedEventsListener.java
@@ -26,6 +26,7 @@
 import org.apache.asterix.active.EntityId;
 import org.apache.asterix.active.IActiveEntityEventSubscriber;
 import org.apache.asterix.active.IRetryPolicyFactory;
+import org.apache.asterix.algebra.base.ILangExtension;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.exceptions.RuntimeDataException;
@@ -50,14 +51,17 @@
 
     private final Feed feed;
     private final List<FeedConnection> feedConnections;
+    private final ILangExtension.Language translatorLang;
 
     public FeedEventsListener(IStatementExecutor statementExecutor, ICcApplicationContext appCtx,
             IHyracksClientConnection hcc, EntityId entityId, List<Dataset> datasets,
             AlgebricksAbsolutePartitionConstraint locations, String runtimeName, IRetryPolicyFactory retryPolicyFactory,
-            Feed feed, final List<FeedConnection> feedConnections) throws HyracksDataException {
+            Feed feed, final List<FeedConnection> feedConnections, ILangExtension.Language translatorLang)
+            throws HyracksDataException {
         super(statementExecutor, appCtx, hcc, entityId, datasets, locations, runtimeName, retryPolicyFactory);
         this.feed = feed;
         this.feedConnections = feedConnections;
+        this.translatorLang = translatorLang;
     }
 
     @Override
@@ -94,8 +98,8 @@
     @Override
     protected JobId compileAndStartJob(MetadataProvider mdProvider) throws HyracksDataException {
         try {
-            Pair<JobSpecification, AlgebricksAbsolutePartitionConstraint> jobInfo =
-                    FeedOperations.buildStartFeedJob(mdProvider, feed, feedConnections, statementExecutor, hcc);
+            Pair<JobSpecification, AlgebricksAbsolutePartitionConstraint> jobInfo = FeedOperations
+                    .buildStartFeedJob(mdProvider, feed, feedConnections, statementExecutor, hcc, translatorLang);
             JobSpecification feedJob = jobInfo.getLeft();
             feedJob.setProperty(ActiveNotificationHandler.ACTIVE_ENTITY_PROPERTY_NAME, entityId);
             // TODO(Yingyi): currently we do not check IFrameWriter protocol violations for Feed jobs.
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java
index 2afd11c..24a127a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java
@@ -33,7 +33,7 @@
             createDataSourceId(ActiveRequestsRewriter.ACTIVE_REQUESTS);
 
     public ActiveRequestsDatasource(INodeDomain domain) throws AlgebricksException {
-        super(ACTIVE_REQUESTS_DATASOURCE_ID, domain);
+        super(ACTIVE_REQUESTS_DATASOURCE_ID, ActiveRequestsRewriter.ACTIVE_REQUESTS, domain);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java
index 1fe103e..0bfbff1 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java
@@ -33,7 +33,7 @@
             createDataSourceId(CompletedRequestsRewriter.COMPLETED_REQUESTS);
 
     public CompletedRequestsDatasource(INodeDomain domain) throws AlgebricksException {
-        super(COMPLETED_REQUESTS_DATASOURCE_ID, domain);
+        super(COMPLETED_REQUESTS_DATASOURCE_ID, CompletedRequestsRewriter.COMPLETED_REQUESTS, domain);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetResourcesDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetResourcesDatasource.java
index ffd04ab..3e5033b 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetResourcesDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DatasetResourcesDatasource.java
@@ -34,7 +34,7 @@
     private final int datasetId;
 
     public DatasetResourcesDatasource(INodeDomain domain, int datasetId) throws AlgebricksException {
-        super(DATASET_RESOURCES_DATASOURCE_ID, domain);
+        super(DATASET_RESOURCES_DATASOURCE_ID, DatasetResourcesRewriter.DATASET_RESOURCES, domain);
         this.datasetId = datasetId;
     }
 
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DumpIndexDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DumpIndexDatasource.java
index 04e3eea..6318f8e 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DumpIndexDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/DumpIndexDatasource.java
@@ -39,7 +39,7 @@
 
     public DumpIndexDatasource(INodeDomain domain, IndexDataflowHelperFactory indexDataflowHelperFactory,
             RecordDescriptor recDesc, IBinaryComparatorFactory[] comparatorFactories) throws AlgebricksException {
-        super(DUMP_INDEX_DATASOURCE_ID, domain);
+        super(DUMP_INDEX_DATASOURCE_ID, DumpIndexRewriter.DUMP_INDEX, domain);
         this.indexDataflowHelperFactory = indexDataflowHelperFactory;
         this.recDesc = recDesc;
         this.comparatorFactories = comparatorFactories;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/JobSummariesDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/JobSummariesDatasource.java
index 835a97d..6bab0cd 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/JobSummariesDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/JobSummariesDatasource.java
@@ -32,7 +32,7 @@
             createDataSourceId(JobSummariesRewriter.JOBSUMMARIES);
 
     public JobSummariesDatasource(INodeDomain domain) throws AlgebricksException {
-        super(JOB_SUMMARIES_DATASOURCE_ID, domain);
+        super(JOB_SUMMARIES_DATASOURCE_ID, JobSummariesRewriter.JOBSUMMARIES, domain);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/PingDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/PingDatasource.java
index 67d5e53..1b6d807 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/PingDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/PingDatasource.java
@@ -31,7 +31,7 @@
     private static final DataSourceId PING_DATASOURCE_ID = createDataSourceId(PingRewriter.PING);
 
     public PingDatasource(INodeDomain domain) throws AlgebricksException {
-        super(PING_DATASOURCE_ID, domain);
+        super(PING_DATASOURCE_ID, PingRewriter.PING, domain);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/StorageComponentsDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/StorageComponentsDatasource.java
index b8a4167..6157412 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/StorageComponentsDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/StorageComponentsDatasource.java
@@ -34,7 +34,7 @@
     private final int datasetId;
 
     public StorageComponentsDatasource(INodeDomain domain, int datasetId) throws AlgebricksException {
-        super(STORAGE_COMPONENTS_DATASOURCE_ID, domain);
+        super(STORAGE_COMPONENTS_DATASOURCE_ID, StorageComponentsRewriter.STORAGE_COMPONENTS, domain);
         this.datasetId = datasetId;
     }
 
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java
index c382fb4..82303fc 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java
@@ -35,13 +35,11 @@
 public class TPCDSAllTablesDataGeneratorDatasource extends FunctionDataSource {
 
     private final double scalingFactor;
-    private final FunctionIdentifier functionIdentifier;
 
     TPCDSAllTablesDataGeneratorDatasource(INodeDomain domain, double scalingFactor,
             FunctionIdentifier functionIdentifier) throws AlgebricksException {
-        super(createDataSourceId(scalingFactor), domain);
+        super(createDataSourceId(scalingFactor), functionIdentifier, domain);
         this.scalingFactor = scalingFactor;
-        this.functionIdentifier = functionIdentifier;
     }
 
     /**
@@ -61,7 +59,7 @@
     @Override
     protected IDatasourceFunction createFunction(MetadataProvider metadataProvider,
             AlgebricksAbsolutePartitionConstraint locations) {
-        return new TPCDSDataGeneratorFunction(locations, null, scalingFactor, functionIdentifier);
+        return new TPCDSDataGeneratorFunction(locations, null, scalingFactor, functionId);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSSingleTableDataGeneratorDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSSingleTableDataGeneratorDatasource.java
index df3903f..458bff6 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSSingleTableDataGeneratorDatasource.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSSingleTableDataGeneratorDatasource.java
@@ -36,14 +36,12 @@
 
     private final String tableName;
     private final double scalingFactor;
-    private final FunctionIdentifier functionIdentifier;
 
     TPCDSSingleTableDataGeneratorDatasource(INodeDomain domain, String tableName, double scalingFactor,
             FunctionIdentifier functionIdentifier) throws AlgebricksException {
-        super(createDataSourceId(tableName, scalingFactor), domain);
+        super(createDataSourceId(tableName, scalingFactor), functionIdentifier, domain);
         this.tableName = tableName;
         this.scalingFactor = scalingFactor;
-        this.functionIdentifier = functionIdentifier;
     }
 
     /**
@@ -65,7 +63,7 @@
     @Override
     protected IDatasourceFunction createFunction(MetadataProvider metadataProvider,
             AlgebricksAbsolutePartitionConstraint locations) {
-        return new TPCDSDataGeneratorFunction(locations, tableName, scalingFactor, functionIdentifier);
+        return new TPCDSDataGeneratorFunction(locations, tableName, scalingFactor, functionId);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 149ed33..80200ca 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -163,7 +163,7 @@
             responseMsg.setExecutionPlans(translator.getExecutionPlans());
             responseMsg.setWarnings(warnings);
         } catch (AlgebricksException | HyracksException | TokenMgrError
-                | org.apache.asterix.aqlplus.parser.TokenMgrError pe) {
+                | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
             // we trust that "our" exceptions are serializable and have a comprehensible error message
             GlobalConfig.ASTERIX_LOGGER.log(Level.WARN, pe.getMessage(), pe);
             responseMsg.setError(pe);
@@ -204,6 +204,6 @@
     @Override
     public String toString() {
         return String.format("%s(id=%s, from=%s): %s", getClass().getSimpleName(), requestMessageId, requestNodeId,
-                LogRedactionUtil.userData(statementsText));
+                LogRedactionUtil.statement(statementsText));
     }
 }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
index 5c15e68..e804d60 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
@@ -257,7 +257,7 @@
         FileReference appDir =
                 ioManager.resolveAbsolutePath(getServiceContext().getServerCtx().getAppDir().getAbsolutePath());
         libraryManager = new ExternalLibraryManager(ncs, persistedResourceRegistry, appDir);
-        libraryManager.initStorage(resetStorageData);
+        libraryManager.initialize(resetStorageData);
 
         /*
          * The order of registration is important. The buffer cache must registered before recovery and transaction
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
index c57e61d..357c0a2 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
@@ -39,7 +39,7 @@
         String msg = rootCause.getMessage();
         if (!(rootCause instanceof AlgebricksException || rootCause instanceof HyracksException
                 || rootCause instanceof TokenMgrError
-                || rootCause instanceof org.apache.asterix.aqlplus.parser.TokenMgrError)) {
+                || rootCause instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError)) {
             msg = rootCause.getClass().getSimpleName() + (msg == null ? "" : ": " + msg);
         }
         return new ExecutionError(1, msg);
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 b3b55a8..f912c76 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
@@ -32,7 +32,6 @@
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Properties;
@@ -93,7 +92,6 @@
 import org.apache.asterix.external.operators.FeedIntakeOperatorNodePushable;
 import org.apache.asterix.external.util.ExternalDataConstants;
 import org.apache.asterix.external.util.ExternalDataUtils;
-import org.apache.asterix.formats.nontagged.TypeTraitProvider;
 import org.apache.asterix.lang.common.base.IReturningStatement;
 import org.apache.asterix.lang.common.base.IRewriterFactory;
 import org.apache.asterix.lang.common.base.IStatementRewriter;
@@ -101,6 +99,7 @@
 import org.apache.asterix.lang.common.expression.IndexedTypeExpression;
 import org.apache.asterix.lang.common.expression.TypeExpression;
 import org.apache.asterix.lang.common.expression.TypeReferenceExpression;
+import org.apache.asterix.lang.common.statement.AdapterDropStatement;
 import org.apache.asterix.lang.common.statement.CompactStatement;
 import org.apache.asterix.lang.common.statement.ConnectFeedStatement;
 import org.apache.asterix.lang.common.statement.CreateAdapterStatement;
@@ -214,7 +213,6 @@
 import org.apache.hyracks.algebricks.runtime.writers.PrinterBasedWriterFactory;
 import org.apache.hyracks.api.client.IClusterInfoCollector;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 import org.apache.hyracks.api.exceptions.Warning;
@@ -267,7 +265,7 @@
         this.sessionOutput = output;
         this.sessionConfig = output.config();
         this.compilationProvider = compilationProvider;
-        declaredFunctions = getDeclaredFunctions(statements);
+        declaredFunctions = new ArrayList<>();
         apiFramework = new APIFramework(compilationProvider);
         rewriterFactory = compilationProvider.getRewriterFactory();
         activeDataverse = MetadataBuiltinEntities.DEFAULT_DATAVERSE;
@@ -283,16 +281,6 @@
         return sessionOutput;
     }
 
-    protected List<FunctionDecl> getDeclaredFunctions(List<Statement> statements) {
-        List<FunctionDecl> functionDecls = new ArrayList<>();
-        for (Statement st : statements) {
-            if (st.getKind() == Statement.Kind.FUNCTION_DECL) {
-                functionDecls.add((FunctionDecl) st);
-            }
-        }
-        return functionDecls;
-    }
-
     @Override
     public void compileAndExecute(IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception {
         validateStatements(requestParameters);
@@ -365,12 +353,15 @@
                     case NODEGROUP_DROP:
                         handleNodegroupDropStatement(metadataProvider, stmt);
                         break;
-                    case CREATE_FUNCTION:
-                        handleCreateFunctionStatement(metadataProvider, stmt, stmtRewriter);
-                        break;
                     case CREATE_ADAPTER:
                         handleCreateAdapterStatement(metadataProvider, stmt);
                         break;
+                    case ADAPTER_DROP:
+                        handleAdapterDropStatement(metadataProvider, stmt);
+                        break;
+                    case CREATE_FUNCTION:
+                        handleCreateFunctionStatement(metadataProvider, stmt, stmtRewriter);
+                        break;
                     case FUNCTION_DROP:
                         handleFunctionDropStatement(metadataProvider, stmt);
                         break;
@@ -450,7 +441,7 @@
                         outputFile = result.second;
                         break;
                     case FUNCTION_DECL:
-                        // No op
+                        handleDeclareFunctionStatement(stmt);
                         break;
                     case EXTENSION:
                         final ExtensionStatement extStmt = (ExtensionStatement) stmt;
@@ -522,7 +513,7 @@
         DataverseName dvName = stmtCreateDataverse.getDataverseName();
         lockUtil.createDataverseBegin(lockManager, metadataProvider.getLocks(), dvName);
         try {
-            doCreateDataverseStatement(metadataProvider, stmtCreateDataverse);
+            doCreateDataverseStatement(metadataProvider, stmtCreateDataverse, requestParameters);
         } finally {
             metadataProvider.getLocks().unlock();
         }
@@ -530,7 +521,7 @@
 
     @SuppressWarnings("squid:S00112")
     protected boolean doCreateDataverseStatement(MetadataProvider metadataProvider,
-            CreateDataverseStatement stmtCreateDataverse) throws Exception {
+            CreateDataverseStatement stmtCreateDataverse, IRequestParameters requestParameters) throws Exception {
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         try {
@@ -646,8 +637,7 @@
             metaItemTypeAnonymous = true; // doesn't matter
         }
 
-        Identifier ngNameId = dd.getNodegroupName();
-        String nodegroupName = ngNameId == null ? null : ngNameId.getValue();
+        String nodegroupName = dd.getNodegroupName();
         String compactionPolicy = dd.getCompactionPolicy();
         boolean defaultCompactionPolicy = compactionPolicy == null;
 
@@ -672,7 +662,7 @@
         MutableObject<ProgressState> progress = new MutableObject<>(ProgressState.NO_PROGRESS);
         SourceLocation sourceLoc = dd.getSourceLocation();
         DatasetType dsType = dd.getDatasetType();
-        Identifier ngNameId = dd.getNodegroupName();
+        String ngNameId = dd.getNodegroupName();
         String compactionPolicy = dd.getCompactionPolicy();
         Map<String, String> compactionPolicyProperties = dd.getCompactionPolicyProperties();
         String compressionScheme = metadataProvider.getCompressionManager()
@@ -681,6 +671,8 @@
         boolean bActiveTxn = true;
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         Dataset dataset = null;
+        Datatype itemTypeEntity = null, metaItemTypeEntity = null;
+        boolean itemTypeAdded = false, metaItemTypeAdded = false;
         try {
             // Check if the dataverse exists
             Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
@@ -698,8 +690,9 @@
                     throw new CompilationException(ErrorCode.DATASET_EXISTS, sourceLoc, datasetName, dataverseName);
                 }
             }
-            Datatype itemTypeEntity;
+
             IAType itemType;
+            boolean itemTypeIsInline = false;
             switch (itemTypeExpr.getTypeKind()) {
                 case TYPEREFERENCE:
                     itemTypeEntity = metadataProvider.findTypeEntity(itemTypeDataverseName, itemTypeName);
@@ -715,13 +708,13 @@
                     itemType = translateType(itemTypeDataverseName, itemTypeName, itemTypeExpr, mdTxnCtx);
                     validateDatasetItemType(dsType, itemType, false, sourceLoc);
                     itemTypeEntity = new Datatype(itemTypeDataverseName, itemTypeName, itemType, true);
-                    MetadataManager.INSTANCE.addDatatype(mdTxnCtx, itemTypeEntity);
+                    itemTypeIsInline = true;
                     break;
                 default:
                     throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc,
                             String.valueOf(itemTypeExpr.getTypeKind()));
             }
-            String ngName = ngNameId != null ? ngNameId.getValue()
+            String ngName = ngNameId != null ? ngNameId
                     : configureNodegroupForDataset(appCtx, dd.getHints(), dataverseName, datasetName, metadataProvider,
                             sourceLoc);
 
@@ -731,13 +724,15 @@
             } else {
                 validateCompactionPolicy(compactionPolicy, compactionPolicyProperties, mdTxnCtx, false, sourceLoc);
             }
+
+            IAType metaItemType = null;
+            boolean metaItemTypeIsInline = false;
             switch (dsType) {
                 case INTERNAL:
-                    IAType metaItemType = null;
                     if (metaItemTypeExpr != null) {
                         switch (metaItemTypeExpr.getTypeKind()) {
                             case TYPEREFERENCE:
-                                Datatype metaItemTypeEntity =
+                                metaItemTypeEntity =
                                         metadataProvider.findTypeEntity(metaItemTypeDataverseName, metaItemTypeName);
                                 if (metaItemTypeEntity == null || metaItemTypeEntity.getIsAnonymous()) {
                                     // anonymous types cannot be referred from CREATE DATASET
@@ -751,8 +746,9 @@
                                 metaItemType = translateType(metaItemTypeDataverseName, metaItemTypeName,
                                         metaItemTypeExpr, mdTxnCtx);
                                 validateDatasetItemType(dsType, metaItemType, true, sourceLoc);
-                                MetadataManager.INSTANCE.addDatatype(mdTxnCtx,
-                                        new Datatype(metaItemTypeDataverseName, metaItemTypeName, metaItemType, true));
+                                metaItemTypeEntity =
+                                        new Datatype(metaItemTypeDataverseName, metaItemTypeName, metaItemType, true);
+                                metaItemTypeIsInline = true;
                                 break;
                             default:
                                 throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc,
@@ -771,8 +767,12 @@
                             metaRecType, partitioningExprs, keySourceIndicators, autogenerated, sourceLoc);
 
                     List<String> filterField = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getFilterField();
+                    Integer filterSourceIndicator =
+                            ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getFilterSourceIndicator();
+
                     if (filterField != null) {
-                        ValidateUtil.validateFilterField(aRecordType, filterField, sourceLoc);
+                        ValidateUtil.validateFilterField(aRecordType, metaRecType, filterSourceIndicator, filterField,
+                                sourceLoc);
                     }
                     if (compactionPolicy == null && filterField != null) {
                         // If the dataset has a filter and the user didn't specify a merge
@@ -783,7 +783,7 @@
                     }
                     datasetDetails = new InternalDatasetDetails(InternalDatasetDetails.FileStructure.BTREE,
                             InternalDatasetDetails.PartitioningStrategy.HASH, partitioningExprs, partitioningExprs,
-                            keySourceIndicators, partitioningTypes, autogenerated, filterField);
+                            keySourceIndicators, partitioningTypes, autogenerated, filterSourceIndicator, filterField);
                     break;
                 case EXTERNAL:
                     ExternalDetailsDecl externalDetails = (ExternalDetailsDecl) dd.getDatasetDetailsDecl();
@@ -811,6 +811,16 @@
                     datasetDetails, dd.getHints(), dsType, DatasetIdFactory.generateDatasetId(),
                     MetadataUtil.PENDING_ADD_OP, compressionScheme);
             MetadataManager.INSTANCE.addDataset(metadataProvider.getMetadataTxnContext(), dataset);
+
+            if (itemTypeIsInline) {
+                MetadataManager.INSTANCE.addDatatype(mdTxnCtx, itemTypeEntity);
+                itemTypeAdded = true;
+            }
+            if (metaItemTypeIsInline) {
+                MetadataManager.INSTANCE.addDatatype(mdTxnCtx, metaItemTypeEntity);
+                metaItemTypeAdded = true;
+            }
+
             if (dsType == DatasetType.INTERNAL) {
                 JobSpecification jobSpec = DatasetUtil.createDatasetJobSpec(dataset, metadataProvider);
 
@@ -866,8 +876,15 @@
                 mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
                 metadataProvider.setMetadataTxnContext(mdTxnCtx);
                 try {
-                    MetadataManager.INSTANCE.dropDataset(metadataProvider.getMetadataTxnContext(), dataverseName,
-                            datasetName);
+                    MetadataManager.INSTANCE.dropDataset(mdTxnCtx, dataverseName, datasetName);
+                    if (itemTypeAdded) {
+                        MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, itemTypeEntity.getDataverseName(),
+                                itemTypeEntity.getDatatypeName());
+                    }
+                    if (metaItemTypeAdded) {
+                        MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, metaItemTypeEntity.getDataverseName(),
+                                metaItemTypeEntity.getDatatypeName());
+                    }
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
                 } catch (Exception e2) {
                     e.addSuppressed(e2);
@@ -939,35 +956,43 @@
     public void handleCreateIndexStatement(MetadataProvider metadataProvider, Statement stmt,
             IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception {
         CreateIndexStatement stmtCreateIndex = (CreateIndexStatement) stmt;
-        SourceLocation sourceLoc = stmtCreateIndex.getSourceLocation();
         DataverseName dataverseName = getActiveDataverseName(stmtCreateIndex.getDataverseName());
         String datasetName = stmtCreateIndex.getDatasetName().getValue();
-        String indexName = stmtCreateIndex.getIndexName().getValue();
-        IndexType indexType = stmtCreateIndex.getIndexType();
-        List<Integer> keySourceIndicators = stmtCreateIndex.getFieldSourceIndicators();
-        MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-        metadataProvider.setMetadataTxnContext(mdTxnCtx);
-        boolean isSecondaryPrimary = stmtCreateIndex.getFieldExprs().isEmpty();
-        Dataset ds;
-        Index index;
         lockUtil.createIndexBegin(lockManager, metadataProvider.getLocks(), dataverseName, datasetName);
         try {
+            doCreateIndex(metadataProvider, stmtCreateIndex, dataverseName, datasetName, hcc, requestParameters);
+        } finally {
+            metadataProvider.getLocks().unlock();
+        }
+    }
+
+    protected void doCreateIndex(MetadataProvider metadataProvider, CreateIndexStatement stmtCreateIndex,
+            DataverseName dataverseName, String datasetName, IHyracksClientConnection hcc,
+            IRequestParameters requestParameters) throws Exception {
+        SourceLocation sourceLoc = stmtCreateIndex.getSourceLocation();
+        MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
+        boolean bActiveTxn = true;
+        metadataProvider.setMetadataTxnContext(mdTxnCtx);
+        try {
             // Check if the dataverse exists
             Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
             if (dv == null) {
                 throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
             }
 
-            ds = metadataProvider.findDataset(dataverseName, datasetName);
+            Dataset ds = metadataProvider.findDataset(dataverseName, datasetName);
             if (ds == null) {
                 throw new CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, sourceLoc, datasetName,
                         dataverseName);
             }
 
             DatasetType datasetType = ds.getDatasetType();
+            IndexType indexType = stmtCreateIndex.getIndexType();
+            boolean isSecondaryPrimary = stmtCreateIndex.getFieldExprs().isEmpty();
             validateIndexType(datasetType, indexType, isSecondaryPrimary, sourceLoc);
 
-            index = MetadataManager.INSTANCE.getIndex(metadataProvider.getMetadataTxnContext(), dataverseName,
+            String indexName = stmtCreateIndex.getIndexName().getValue();
+            Index index = MetadataManager.INSTANCE.getIndex(metadataProvider.getMetadataTxnContext(), dataverseName,
                     datasetName, indexName);
             if (index != null) {
                 if (stmtCreateIndex.getIfNotExists()) {
@@ -978,9 +1003,12 @@
                 }
             }
 
-            // find keySourceIndicators for secondary primary index since the parser isn't aware of them
+            List<Integer> keySourceIndicators;
             if (isSecondaryPrimary && datasetType == DatasetType.INTERNAL) {
+                // find keySourceIndicators for secondary primary index since the parser isn't aware of them
                 keySourceIndicators = ((InternalDatasetDetails) ds.getDatasetDetails()).getKeySourceIndicator();
+            } else {
+                keySourceIndicators = stmtCreateIndex.getFieldSourceIndicators();
             }
             // disable creating an index on meta fields (fields with source indicator == 1 are meta fields)
             if (keySourceIndicators.stream().anyMatch(fieldSource -> fieldSource == 1) && !isSecondaryPrimary) {
@@ -1075,42 +1103,23 @@
 
             validateIndexKeyFields(stmtCreateIndex, keySourceIndicators, aRecordType, metaRecordType, indexFields,
                     indexFieldTypes);
-            // Checks whether a user is trying to create an inverted secondary index on a
-            // dataset
-            // with a variable-length primary key.
-            // Currently, we do not support this. Therefore, as a temporary solution, we
-            // print an
-            // error message and stop.
-            if (indexType == IndexType.SINGLE_PARTITION_WORD_INVIX
-                    || indexType == IndexType.SINGLE_PARTITION_NGRAM_INVIX
-                    || indexType == IndexType.LENGTH_PARTITIONED_WORD_INVIX
-                    || indexType == IndexType.LENGTH_PARTITIONED_NGRAM_INVIX) {
-                List<List<String>> partitioningKeys = ds.getPrimaryKeys();
-                for (List<String> partitioningKey : partitioningKeys) {
-                    IAType keyType = aRecordType.getSubFieldType(partitioningKey);
-                    ITypeTraits typeTrait = TypeTraitProvider.INSTANCE.getTypeTrait(keyType);
-
-                    // If it is not a fixed length
-                    if (typeTrait.getFixedLength() < 0) {
-                        throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
-                                "The keyword or ngram index -" + indexName + " cannot be created on the dataset -"
-                                        + datasetName + " due to its variable-length primary key field - "
-                                        + partitioningKey);
-                    }
-
-                }
-            }
 
             Index newIndex = new Index(dataverseName, datasetName, indexName, indexType, indexFields,
                     keySourceIndicators, indexFieldTypes, stmtCreateIndex.getGramLength(), overridesFieldTypes,
                     stmtCreateIndex.isEnforced(), false, MetadataUtil.PENDING_ADD_OP);
-            doCreateIndex(hcc, metadataProvider, ds, newIndex, jobFlags, sourceLoc);
-        } finally {
-            metadataProvider.getLocks().unlock();
+
+            bActiveTxn = false; // doCreateIndexImpl() takes over the current transaction
+            doCreateIndexImpl(hcc, metadataProvider, ds, newIndex, jobFlags, sourceLoc);
+
+        } catch (Exception e) {
+            if (bActiveTxn) {
+                abort(e, e, mdTxnCtx);
+            }
+            throw e;
         }
     }
 
-    protected void doCreateIndex(IHyracksClientConnection hcc, MetadataProvider metadataProvider, Dataset ds,
+    private void doCreateIndexImpl(IHyracksClientConnection hcc, MetadataProvider metadataProvider, Dataset ds,
             Index index, EnumSet<JobFlag> jobFlags, SourceLocation sourceLoc) throws Exception {
         ProgressState progress = ProgressState.NO_PROGRESS;
         boolean bActiveTxn = true;
@@ -1457,6 +1466,13 @@
                 }
             }
 
+            if (stmtDropDataverse.getIfEmpty() && isDataverseNotEmpty(dataverseName, mdTxnCtx)) {
+                MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                return false;
+            }
+
+            validateDataverseStateBeforeDrop(metadataProvider, dv, sourceLoc);
+
             // #. prepare jobs which will drop corresponding feed storage
             ActiveNotificationHandler activeEventHandler =
                     (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
@@ -1590,6 +1606,16 @@
         }
     }
 
+    protected boolean isDataverseNotEmpty(DataverseName dataverseName, MetadataTransactionContext mdTxnCtx)
+            throws AlgebricksException {
+        return MetadataManager.INSTANCE.isDataverseNotEmpty(mdTxnCtx, dataverseName);
+    }
+
+    protected void validateDataverseStateBeforeDrop(MetadataProvider metadataProvider, Dataverse dataverse,
+            SourceLocation sourceLoc) throws AlgebricksException {
+        // may be overriden by product extensions for additional checks before dropping the dataverse
+    }
+
     public void handleDatasetDropStatement(MetadataProvider metadataProvider, Statement stmt,
             IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception {
         DropDatasetStatement stmtDelete = (DropDatasetStatement) stmt;
@@ -1606,7 +1632,7 @@
         }
     }
 
-    public void doDropDataset(DataverseName dataverseName, String datasetName, MetadataProvider metadataProvider,
+    protected boolean doDropDataset(DataverseName dataverseName, String datasetName, MetadataProvider metadataProvider,
             boolean ifExists, IHyracksClientConnection hcc, IRequestParameters requestParameters,
             boolean dropCorrespondingNodeGroup, SourceLocation sourceLoc) throws Exception {
         MutableObject<ProgressState> progress = new MutableObject<>(ProgressState.NO_PROGRESS);
@@ -1619,13 +1645,18 @@
             // Check if the dataverse exists
             Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx.getValue(), dataverseName);
             if (dv == null) {
-                throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+                if (ifExists) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx.getValue());
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+                }
             }
             Dataset ds = metadataProvider.findDataset(dataverseName, datasetName);
             if (ds == null) {
                 if (ifExists) {
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx.getValue());
-                    return;
+                    return false;
                 } else {
                     throw new CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, sourceLoc, datasetName,
                             dataverseName);
@@ -1633,39 +1664,11 @@
             }
             validateDatasetState(metadataProvider, ds, sourceLoc);
 
-            // prepare to drop item and meta types if they were created as inline types
-            DataverseName itemTypeDataverseName = ds.getItemTypeDataverseName();
-            String itemTypeName = ds.getItemTypeName();
-            boolean isInlineItemType = TypeUtil.isDatasetInlineTypeName(ds, itemTypeDataverseName, itemTypeName);
-            if (isInlineItemType) {
-                lockUtil.dropTypeBegin(lockManager, metadataProvider.getLocks(), itemTypeDataverseName, itemTypeName);
-            }
-            DataverseName metaTypeDataverseName = ds.getMetaItemTypeDataverseName();
-            String metaTypeName = ds.getMetaItemTypeName();
-            boolean isInlineMetaType =
-                    metaTypeName != null && TypeUtil.isDatasetInlineTypeName(ds, metaTypeDataverseName, metaTypeName);
-            if (isInlineMetaType) {
-                lockUtil.dropTypeBegin(lockManager, metadataProvider.getLocks(), metaTypeDataverseName, metaTypeName);
-            }
-            Datatype inlineItemType = isInlineItemType
-                    ? MetadataManager.INSTANCE.getDatatype(mdTxnCtx.getValue(), itemTypeDataverseName, itemTypeName)
-                    : null;
-            Datatype inlineMetaType = isInlineMetaType
-                    ? MetadataManager.INSTANCE.getDatatype(mdTxnCtx.getValue(), metaTypeDataverseName, metaTypeName)
-                    : null;
-
             ds.drop(metadataProvider, mdTxnCtx, jobsToExecute, bActiveTxn, progress, hcc, dropCorrespondingNodeGroup,
                     sourceLoc);
 
-            // drop inline item and meta types
-            if (isInlineItemType && inlineItemType.getIsAnonymous()) {
-                MetadataManager.INSTANCE.dropDatatype(mdTxnCtx.getValue(), itemTypeDataverseName, itemTypeName);
-            }
-            if (isInlineMetaType && inlineMetaType.getIsAnonymous()) {
-                MetadataManager.INSTANCE.dropDatatype(mdTxnCtx.getValue(), metaTypeDataverseName, metaTypeName);
-            }
-
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx.getValue());
+            return true;
         } catch (Exception e) {
             if (bActiveTxn.booleanValue()) {
                 abort(e, e, mdTxnCtx.getValue());
@@ -1703,20 +1706,31 @@
 
     protected void handleIndexDropStatement(MetadataProvider metadataProvider, Statement stmt,
             IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception {
-
         IndexDropStatement stmtIndexDrop = (IndexDropStatement) stmt;
-        SourceLocation sourceLoc = stmtIndexDrop.getSourceLocation();
-        String datasetName = stmtIndexDrop.getDatasetName().getValue();
         DataverseName dataverseName = getActiveDataverseName(stmtIndexDrop.getDataverseName());
+        String datasetName = stmtIndexDrop.getDatasetName().getValue();
+        lockUtil.dropIndexBegin(lockManager, metadataProvider.getLocks(), dataverseName, datasetName);
+        try {
+            doDropIndex(metadataProvider, stmtIndexDrop, dataverseName, datasetName, hcc, requestParameters);
+        } finally {
+            metadataProvider.getLocks().unlock();
+            ExternalDatasetsRegistry.INSTANCE.releaseAcquiredLocks(metadataProvider);
+        }
+    }
+
+    protected boolean doDropIndex(MetadataProvider metadataProvider, IndexDropStatement stmtIndexDrop,
+            DataverseName dataverseName, String datasetName, IHyracksClientConnection hcc,
+            IRequestParameters requestParameters) throws Exception {
+        SourceLocation sourceLoc = stmtIndexDrop.getSourceLocation();
         String indexName = stmtIndexDrop.getIndexName().getValue();
         ProgressState progress = ProgressState.NO_PROGRESS;
+        List<JobSpecification> jobsToExecute = new ArrayList<>();
+        // For external index
+        boolean dropFilesIndex = false;
+
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         boolean bActiveTxn = true;
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
-        List<JobSpecification> jobsToExecute = new ArrayList<>();
-        lockUtil.dropIndexBegin(lockManager, metadataProvider.getLocks(), dataverseName, datasetName);
-        // For external index
-        boolean dropFilesIndex = false;
         try {
             Dataset ds = metadataProvider.findDataset(dataverseName, datasetName);
             if (ds == null) {
@@ -1728,7 +1742,7 @@
                 if (index == null) {
                     if (stmtIndexDrop.getIfExists()) {
                         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-                        return;
+                        return false;
                     } else {
                         throw new CompilationException(ErrorCode.UNKNOWN_INDEX, sourceLoc, indexName);
                     }
@@ -1769,7 +1783,7 @@
                 if (index == null) {
                     if (stmtIndexDrop.getIfExists()) {
                         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-                        return;
+                        return false;
                     } else {
                         throw new CompilationException(ErrorCode.UNKNOWN_INDEX, sourceLoc, indexName);
                     }
@@ -1835,7 +1849,7 @@
                 }
             }
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-
+            return true;
         } catch (Exception e) {
             if (bActiveTxn) {
                 abort(e, e, mdTxnCtx);
@@ -1873,10 +1887,6 @@
             }
 
             throw e;
-
-        } finally {
-            metadataProvider.getLocks().unlock();
-            ExternalDatasetsRegistry.INSTANCE.releaseAcquiredLocks(metadataProvider);
         }
     }
 
@@ -1939,15 +1949,30 @@
         }
     }
 
-    protected void handleCreateFunctionStatement(MetadataProvider metadataProvider, Statement stmt,
+    protected void handleDeclareFunctionStatement(Statement stmt) {
+        FunctionDecl fds = (FunctionDecl) stmt;
+        FunctionSignature signature = fds.getSignature();
+        signature.setDataverseName(getActiveDataverseName(signature.getDataverseName()));
+        declaredFunctions.add(fds);
+    }
+
+    public void handleCreateFunctionStatement(MetadataProvider metadataProvider, Statement stmt,
             IStatementRewriter stmtRewriter) throws Exception {
         CreateFunctionStatement cfs = (CreateFunctionStatement) stmt;
         FunctionSignature signature = cfs.getFunctionSignature();
-        signature.setDataverseName(getActiveDataverseName(signature.getDataverseName()));
-        String libraryName = cfs.getLibName();
+        DataverseName dataverseName = getActiveDataverseName(signature.getDataverseName());
+        signature.setDataverseName(dataverseName);
+        DataverseName libraryDataverseName = null;
+        String libraryName = cfs.getLibraryName();
+        if (libraryName != null) {
+            libraryDataverseName = cfs.getLibraryDataverseName();
+            if (libraryDataverseName == null) {
+                libraryDataverseName = dataverseName;
+            }
+        }
 
-        lockUtil.createFunctionBegin(lockManager, metadataProvider.getLocks(), signature.getDataverseName(),
-                signature.getName(), libraryName);
+        lockUtil.createFunctionBegin(lockManager, metadataProvider.getLocks(), dataverseName, signature.getName(),
+                libraryDataverseName, libraryName);
         try {
             doCreateFunction(metadataProvider, cfs, signature, stmtRewriter);
         } finally {
@@ -1957,9 +1982,8 @@
     }
 
     protected void doCreateFunction(MetadataProvider metadataProvider, CreateFunctionStatement cfs,
-            FunctionSignature signature, IStatementRewriter stmtRewriter) throws Exception {
-        DataverseName dataverseName = signature.getDataverseName();
-        String libraryName = cfs.getLibName();
+            FunctionSignature functionSignature, IStatementRewriter stmtRewriter) throws Exception {
+        DataverseName dataverseName = functionSignature.getDataverseName();
         SourceLocation sourceLoc = cfs.getSourceLocation();
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
@@ -1968,66 +1992,122 @@
             if (dv == null) {
                 throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
             }
-            boolean isExternal = cfs.isExternal();
-
-            List<Pair<VarIdentifier, TypeExpression>> paramList = cfs.getParameters();
-            int paramCount = paramList.size();
-            List<VarIdentifier> paramVars = new ArrayList<>(paramCount);
-            List<String> paramNames = new ArrayList<>(paramCount);
-            List<TypeSignature> paramTypes = new ArrayList<>(paramCount);
-            LinkedHashSet<TypeSignature> dependentTypes = new LinkedHashSet<>();
-
-            for (int i = 0; i < paramCount; i++) {
-                Pair<VarIdentifier, TypeExpression> paramPair = paramList.get(i);
-                VarIdentifier paramName = paramPair.getFirst();
-                TypeExpression paramTypeExpr = paramPair.getSecond();
-                Pair<TypeSignature, TypeSignature> paramType = translateFunctionParameterType(signature, i,
-                        paramTypeExpr, isExternal, sourceLoc, metadataProvider, mdTxnCtx);
-                paramVars.add(paramName);
-                paramNames.add(stmtRewriter.toFunctionParameterName(paramName));
-                paramTypes.add(paramType.first);
-                if (paramType.second != null) {
-                    dependentTypes.add(paramType.second);
+            List<TypeSignature> existingInlineTypes;
+            Function existingFunction = MetadataManager.INSTANCE.getFunction(mdTxnCtx, functionSignature);
+            if (existingFunction != null) {
+                if (cfs.getReplaceIfExists()) {
+                    if (cfs.getIfNotExists()) {
+                        throw new CompilationException(ErrorCode.PARSE_ERROR, cfs.getSourceLocation(), "IF NOT EXISTS");
+                    }
+                } else if (cfs.getIfNotExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return;
+                } else {
+                    throw new CompilationException(ErrorCode.FUNCTION_EXISTS, cfs.getSourceLocation(),
+                            functionSignature.toString(false));
                 }
+                existingInlineTypes = TypeUtil.getFunctionInlineTypes(existingFunction);
+            } else {
+                existingInlineTypes = Collections.emptyList();
             }
 
-            TypeExpression returnTypeExpr = cfs.getReturnType();
-            Pair<TypeSignature, TypeSignature> returnType = translateFunctionParameterType(signature, -1,
-                    returnTypeExpr, isExternal, sourceLoc, metadataProvider, mdTxnCtx);
-            if (returnType.second != null) {
-                dependentTypes.add(returnType.second);
-            }
+            Map<TypeSignature, Datatype> newInlineTypes;
+            Function function;
+            if (cfs.isExternal()) {
+                List<Pair<VarIdentifier, TypeExpression>> paramList = cfs.getParameters();
+                int paramCount = paramList.size();
+                List<String> paramNames = new ArrayList<>(paramCount);
+                List<TypeSignature> paramTypes = new ArrayList<>(paramCount);
+                LinkedHashSet<TypeSignature> depTypes = new LinkedHashSet<>();
+                newInlineTypes = new HashMap<>();
 
-            if (isExternal) {
-                String lang = cfs.getLang();
-                if (lang == null) {
-                    throw new CompilationException(ErrorCode.COMPILATION_INCOMPATIBLE_FUNCTION_LANGUAGE, sourceLoc, "");
+                for (int i = 0; i < paramCount; i++) {
+                    Pair<VarIdentifier, TypeExpression> paramPair = paramList.get(i);
+                    TypeSignature paramTypeSignature;
+                    TypeSignature paramDepTypeSignature;
+                    Datatype paramInlineTypeEntity;
+                    TypeExpression paramTypeExpr = paramPair.getSecond();
+                    if (paramTypeExpr != null) {
+                        Triple<TypeSignature, TypeSignature, Datatype> paramTypeInfo = translateFunctionParameterType(
+                                functionSignature, i, paramTypeExpr, sourceLoc, metadataProvider, mdTxnCtx);
+                        paramTypeSignature = paramTypeInfo.first;
+                        paramDepTypeSignature = paramTypeInfo.second;
+                        paramInlineTypeEntity = paramTypeInfo.third;
+                    } else {
+                        paramTypeSignature = null; // == any
+                        paramDepTypeSignature = null;
+                        paramInlineTypeEntity = null;
+                    }
+                    paramTypes.add(paramTypeSignature); // null == any
+                    if (paramDepTypeSignature != null) {
+                        depTypes.add(paramDepTypeSignature);
+                    }
+                    if (paramInlineTypeEntity != null) {
+                        newInlineTypes.put(paramTypeSignature, paramInlineTypeEntity);
+                    }
+                    VarIdentifier paramName = paramPair.getFirst();
+                    paramNames.add(stmtRewriter.toFunctionParameterName(paramName));
                 }
-                ExternalFunctionLanguage functionLang;
-                try {
-                    functionLang = ExternalFunctionLanguage.valueOf(lang.toUpperCase(Locale.ROOT));
-                } catch (IllegalArgumentException e) {
-                    throw new CompilationException(ErrorCode.COMPILATION_INCOMPATIBLE_FUNCTION_LANGUAGE, sourceLoc,
-                            lang);
+
+                TypeSignature returnTypeSignature;
+                TypeSignature returnDepTypeSignature;
+                Datatype returnInlineTypeEntity;
+                TypeExpression returnTypeExpr = cfs.getReturnType();
+                if (returnTypeExpr != null) {
+                    Triple<TypeSignature, TypeSignature, Datatype> returnTypeInfo = translateFunctionParameterType(
+                            functionSignature, -1, returnTypeExpr, sourceLoc, metadataProvider, mdTxnCtx);
+                    returnTypeSignature = returnTypeInfo.first;
+                    returnDepTypeSignature = returnTypeInfo.second;
+                    returnInlineTypeEntity = returnTypeInfo.third;
+                } else {
+                    returnTypeSignature = null; // == any
+                    returnDepTypeSignature = null;
+                    returnInlineTypeEntity = null;
                 }
-                Library libraryInMetadata = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, dataverseName, libraryName);
-                if (libraryInMetadata == null) {
+                if (returnDepTypeSignature != null) {
+                    depTypes.add(returnDepTypeSignature);
+                }
+                if (returnInlineTypeEntity != null) {
+                    newInlineTypes.put(returnTypeSignature, returnInlineTypeEntity);
+                }
+
+                DataverseName libraryDataverseName = cfs.getLibraryDataverseName();
+                if (libraryDataverseName == null) {
+                    libraryDataverseName = dataverseName;
+                }
+                String libraryName = cfs.getLibraryName();
+                Library library = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, libraryDataverseName, libraryName);
+                if (library == null) {
                     throw new CompilationException(ErrorCode.UNKNOWN_LIBRARY, sourceLoc, libraryName);
                 }
-                // Add functions
-                String body = ExternalFunctionCompilerUtil.encodeExternalIdentifier(signature, functionLang,
-                        cfs.getExternalIdentifier());
+
+                ExternalFunctionLanguage language =
+                        ExternalFunctionCompilerUtil.getExternalFunctionLanguage(library.getLanguage());
+                List<String> externalIdentifier = cfs.getExternalIdentifier();
+                ExternalFunctionCompilerUtil.validateExternalIdentifier(externalIdentifier, language,
+                        cfs.getSourceLocation());
                 List<List<Triple<DataverseName, String, String>>> dependencies =
-                        FunctionUtil.getExternalFunctionDependencies(dependentTypes);
-                Function f = new Function(signature, paramNames, paramTypes, returnType.first, body,
-                        FunctionKind.SCALAR.toString(), functionLang.name(), libraryName, cfs.getNullCall(),
-                        cfs.getDeterministic(), cfs.getResources(), dependencies);
-                MetadataManager.INSTANCE.addFunction(mdTxnCtx, f);
-                if (LOGGER.isInfoEnabled()) {
-                    LOGGER.info("Installed function: " + signature);
-                }
-                MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                        FunctionUtil.getExternalFunctionDependencies(depTypes);
+
+                function = new Function(functionSignature, paramNames, paramTypes, returnTypeSignature, null,
+                        FunctionKind.SCALAR.toString(), library.getLanguage(), libraryDataverseName, libraryName,
+                        externalIdentifier, cfs.getNullCall(), cfs.getDeterministic(), cfs.getResources(),
+                        dependencies);
             } else {
+                List<Pair<VarIdentifier, TypeExpression>> paramList = cfs.getParameters();
+                int paramCount = paramList.size();
+                List<VarIdentifier> paramVars = new ArrayList<>(paramCount);
+                List<String> paramNames = new ArrayList<>(paramCount);
+                for (Pair<VarIdentifier, TypeExpression> paramPair : paramList) {
+                    VarIdentifier paramName = paramPair.getFirst();
+                    paramVars.add(paramName);
+                    paramNames.add(stmtRewriter.toFunctionParameterName(paramName));
+                    if (paramPair.getSecond() != null) {
+                        throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc,
+                                paramName.toString());
+                    }
+                }
+
                 //Check whether the function is use-able
                 metadataProvider.setDefaultDataverse(dv);
                 Query wrappedQuery = new Query(false);
@@ -2036,38 +2116,53 @@
                 wrappedQuery.setTopLevel(false);
                 apiFramework.reWriteQuery(declaredFunctions, metadataProvider, wrappedQuery, sessionOutput, false,
                         paramVars, warningCollector);
-                List<List<Triple<DataverseName, String, String>>> dependencies =
-                        FunctionUtil.getFunctionDependencies(rewriterFactory.createQueryRewriter(),
-                                cfs.getFunctionBodyExpression(), metadataProvider, dependentTypes);
-                Function function = new Function(signature, paramNames, paramTypes, returnType.first,
-                        cfs.getFunctionBody(), FunctionKind.SCALAR.toString(),
-                        compilationProvider.getParserFactory().getLanguage(), null, null, null, null, dependencies);
-                MetadataManager.INSTANCE.addFunction(mdTxnCtx, function);
-                if (LOGGER.isInfoEnabled()) {
-                    LOGGER.info("Installed function: " + signature);
-                }
-                MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                List<List<Triple<DataverseName, String, String>>> dependencies = FunctionUtil.getFunctionDependencies(
+                        rewriterFactory.createQueryRewriter(), cfs.getFunctionBodyExpression(), metadataProvider);
+
+                newInlineTypes = Collections.emptyMap();
+                function = new Function(functionSignature, paramNames, null, null, cfs.getFunctionBody(),
+                        FunctionKind.SCALAR.toString(), compilationProvider.getParserFactory().getLanguage(), null,
+                        null, null, null, null, null, dependencies);
             }
+
+            if (existingFunction == null) {
+                // add new function and its inline types
+                for (Datatype newInlineType : newInlineTypes.values()) {
+                    MetadataManager.INSTANCE.addDatatype(mdTxnCtx, newInlineType);
+                }
+                MetadataManager.INSTANCE.addFunction(mdTxnCtx, function);
+            } else {
+                // replace existing function and its inline types
+                for (TypeSignature existingInlineType : existingInlineTypes) {
+                    Datatype newInlineType =
+                            newInlineTypes.isEmpty() ? null : newInlineTypes.remove(existingInlineType);
+                    if (newInlineType == null) {
+                        MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, existingInlineType.getDataverseName(),
+                                existingInlineType.getName());
+                    } else {
+                        MetadataManager.INSTANCE.updateDatatype(mdTxnCtx, newInlineType);
+                    }
+                }
+                for (Datatype inlineType : newInlineTypes.values()) {
+                    MetadataManager.INSTANCE.addDatatype(mdTxnCtx, inlineType);
+                }
+                MetadataManager.INSTANCE.updateFunction(mdTxnCtx, function);
+            }
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Installed function: " + functionSignature);
+            }
+            MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         } catch (Exception e) {
             abort(e, e, mdTxnCtx);
             throw e;
         }
     }
 
-    private Pair<TypeSignature, TypeSignature> translateFunctionParameterType(FunctionSignature functionSignature,
-            int paramIdx, TypeExpression paramTypeExpr, boolean isExternalFunction, SourceLocation sourceLoc,
+    private Triple<TypeSignature, TypeSignature, Datatype> translateFunctionParameterType(
+            FunctionSignature functionSignature, int paramIdx, TypeExpression paramTypeExpr, SourceLocation sourceLoc,
             MetadataProvider metadataProvider, MetadataTransactionContext mdTxnCtx) throws AlgebricksException {
-        if (paramTypeExpr == null) {
-            return new Pair<>(TypeUtil.ANY_TYPE_SIGNATURE, null);
-        }
-
-        if (!isExternalFunction) {
-            // grammar doesn't allow parameter types for inline functions
-            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc);
-        }
-
-        TypeSignature resultType, dependentType;
-
+        TypeSignature paramTypeSignature, depTypeSignature;
+        Datatype paramInlineTypeEntity = null;
         switch (paramTypeExpr.getTypeKind()) {
             case TYPEREFERENCE:
                 TypeReferenceExpression paramTypeRefExpr = (TypeReferenceExpression) paramTypeExpr;
@@ -2075,19 +2170,19 @@
                 BuiltinType builtinType = BuiltinTypeMap.getBuiltinType(paramTypeName);
                 if (builtinType != null) {
                     // built-in type
-                    resultType = new TypeSignature(builtinType);
-                    dependentType = null;
+                    paramTypeSignature = new TypeSignature(builtinType);
+                    depTypeSignature = null;
                 } else {
                     // user-defined type
                     DataverseName paramTypeDataverseName = paramTypeRefExpr.getIdent().first;
                     if (paramTypeDataverseName == null) {
                         paramTypeDataverseName = functionSignature.getDataverseName();
                     }
-                    IAType paramType = metadataProvider.findType(paramTypeDataverseName, paramTypeName);
-                    if (paramType == null) {
+                    Datatype paramTypeEntity = metadataProvider.findTypeEntity(paramTypeDataverseName, paramTypeName);
+                    if (paramTypeEntity == null || paramTypeEntity.getIsAnonymous()) {
                         throw new CompilationException(ErrorCode.UNKNOWN_TYPE, sourceLoc, paramTypeName);
                     }
-                    resultType = dependentType = new TypeSignature(paramTypeDataverseName, paramTypeName);
+                    paramTypeSignature = depTypeSignature = new TypeSignature(paramTypeDataverseName, paramTypeName);
                 }
                 break;
             case ORDEREDLIST:
@@ -2096,64 +2191,24 @@
                 paramTypeName = TypeUtil.createFunctionParameterTypeName(functionSignature.getName(),
                         functionSignature.getArity(), paramIdx);
                 IAType paramType = translateType(paramTypeDataverseName, paramTypeName, paramTypeExpr, mdTxnCtx);
-                MetadataManager.INSTANCE.addDatatype(mdTxnCtx,
-                        new Datatype(paramTypeDataverseName, paramTypeName, paramType, true));
-                resultType = new TypeSignature(paramTypeDataverseName, paramTypeName);
-                dependentType = FunctionUtil.getTypeDependencyFromFunctionParameter(paramTypeExpr,
-                        functionSignature.getDataverseName());
+                paramTypeSignature = new TypeSignature(paramTypeDataverseName, paramTypeName);
+                depTypeSignature =
+                        FunctionUtil.getTypeDependencyFromFunctionParameter(paramTypeExpr, paramTypeDataverseName);
+                paramInlineTypeEntity = new Datatype(paramTypeDataverseName, paramTypeName, paramType, true);
                 break;
             default:
                 throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, sourceLoc);
         }
 
-        return new Pair<>(resultType, dependentType);
-    }
-
-    protected void handleCreateAdapterStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
-        CreateAdapterStatement cas = (CreateAdapterStatement) stmt;
-        SourceLocation sourceLoc = cas.getSourceLocation();
-        AdapterIdentifier aid = cas.getAdapterId();
-        DataverseName dataverse = getActiveDataverseName(aid.getDataverseName());
-        if (!dataverse.equals(aid.getDataverseName())) {
-            aid = new AdapterIdentifier(dataverse, aid.getName());
-        }
-        MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-        metadataProvider.setMetadataTxnContext(mdTxnCtx);
-        String libraryName = cas.getLibName();
-        lockUtil.createAdapterBegin(lockManager, metadataProvider.getLocks(), dataverse, aid.getName(), libraryName);
-        try {
-            Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverse);
-            if (dv == null) {
-                throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverse);
-            }
-            Library libraryInMetadata = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, dataverse, libraryName);
-            if (libraryInMetadata == null) {
-                throw new CompilationException(ErrorCode.UNKNOWN_LIBRARY, sourceLoc, libraryName);
-            }
-            // Add adapters
-            String adapterFactoryClass = cas.getExternalIdent();
-            DatasourceAdapter dsa = new DatasourceAdapter(aid, adapterFactoryClass,
-                    IDataSourceAdapter.AdapterType.EXTERNAL, libraryName);
-            MetadataManager.INSTANCE.addAdapter(mdTxnCtx, dsa);
-            if (LOGGER.isInfoEnabled()) {
-                LOGGER.info("Installed adapter: " + aid.getName());
-            }
-            MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-
-        } catch (Exception e) {
-            abort(e, e, mdTxnCtx);
-            throw e;
-        } finally {
-            metadataProvider.getLocks().unlock();
-        }
+        return new Triple<>(paramTypeSignature, depTypeSignature, paramInlineTypeEntity);
     }
 
     protected void handleFunctionDropStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
         FunctionDropStatement stmtDropFunction = (FunctionDropStatement) stmt;
         FunctionSignature signature = stmtDropFunction.getFunctionSignature();
-        signature.setDataverseName(getActiveDataverseName(signature.getDataverseName()));
-        lockUtil.dropFunctionBegin(lockManager, metadataProvider.getLocks(), signature.getDataverseName(),
-                signature.getName());
+        DataverseName dataverseName = getActiveDataverseName(signature.getDataverseName());
+        signature.setDataverseName(dataverseName);
+        lockUtil.dropFunctionBegin(lockManager, metadataProvider.getLocks(), dataverseName, signature.getName());
         try {
             doDropFunction(metadataProvider, stmtDropFunction, signature);
         } finally {
@@ -2161,21 +2216,158 @@
         }
     }
 
-    protected void doDropFunction(MetadataProvider metadataProvider, FunctionDropStatement stmtDropFunction,
+    protected boolean doDropFunction(MetadataProvider metadataProvider, FunctionDropStatement stmtDropFunction,
             FunctionSignature signature) throws Exception {
+        DataverseName dataverseName = signature.getDataverseName();
         SourceLocation sourceLoc = stmtDropFunction.getSourceLocation();
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         try {
+            Dataverse dataverse = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
+            if (dataverse == null) {
+                if (stmtDropFunction.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+                }
+            }
             Function function = MetadataManager.INSTANCE.getFunction(mdTxnCtx, signature);
             if (function == null) {
-                if (!stmtDropFunction.getIfExists()) {
-                    throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature);
+                if (stmtDropFunction.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature.toString());
                 }
-            } else {
-                MetadataManager.INSTANCE.dropFunction(mdTxnCtx, signature);
+            }
+
+            List<TypeSignature> inlineTypes = TypeUtil.getFunctionInlineTypes(function);
+
+            MetadataManager.INSTANCE.dropFunction(mdTxnCtx, signature);
+            for (TypeSignature inlineType : inlineTypes) {
+                MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, inlineType.getDataverseName(), inlineType.getName());
             }
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            return true;
+        } catch (Exception e) {
+            abort(e, e, mdTxnCtx);
+            throw e;
+        }
+    }
+
+    protected void handleCreateAdapterStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
+        CreateAdapterStatement cas = (CreateAdapterStatement) stmt;
+        DataverseName dataverseName = getActiveDataverseName(cas.getDataverseName());
+        DataverseName libraryDataverseName = cas.getLibraryDataverseName();
+        if (libraryDataverseName == null) {
+            libraryDataverseName = dataverseName;
+        }
+        String libraryName = cas.getLibraryName();
+        lockUtil.createAdapterBegin(lockManager, metadataProvider.getLocks(), dataverseName, cas.getAdapterName(),
+                libraryDataverseName, libraryName);
+        try {
+            doCreateAdapter(metadataProvider, cas);
+        } finally {
+            metadataProvider.getLocks().unlock();
+        }
+    }
+
+    protected void doCreateAdapter(MetadataProvider metadataProvider, CreateAdapterStatement cas) throws Exception {
+        SourceLocation sourceLoc = cas.getSourceLocation();
+        MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
+        metadataProvider.setMetadataTxnContext(mdTxnCtx);
+        try {
+            DataverseName dataverseName = getActiveDataverseName(cas.getDataverseName());
+            Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
+            if (dv == null) {
+                throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+            }
+            String adapterName = cas.getAdapterName();
+            DatasourceAdapter adapter = MetadataManager.INSTANCE.getAdapter(mdTxnCtx, dataverseName, adapterName);
+            if (adapter != null) {
+                if (cas.getIfNotExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return;
+                }
+                throw new CompilationException(ErrorCode.ADAPTER_EXISTS, sourceLoc, adapterName);
+            }
+
+            DataverseName libraryDataverseName = cas.getLibraryDataverseName();
+            if (libraryDataverseName == null) {
+                libraryDataverseName = dataverseName;
+            }
+            String libraryName = cas.getLibraryName();
+            Library library = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, libraryDataverseName, libraryName);
+            if (library == null) {
+                throw new CompilationException(ErrorCode.UNKNOWN_LIBRARY, sourceLoc, libraryName);
+            }
+            // Add adapters
+            ExternalFunctionLanguage language =
+                    ExternalFunctionCompilerUtil.getExternalFunctionLanguage(library.getLanguage());
+            List<String> externalIdentifier = cas.getExternalIdentifier();
+            ExternalFunctionCompilerUtil.validateExternalIdentifier(externalIdentifier, language,
+                    cas.getSourceLocation());
+
+            if (language != ExternalFunctionLanguage.JAVA) {
+                throw new CompilationException(ErrorCode.UNSUPPORTED_ADAPTER_LANGUAGE, cas.getSourceLocation(),
+                        language.name());
+            }
+            String adapterFactoryClass = externalIdentifier.get(0);
+
+            adapter = new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName),
+                    IDataSourceAdapter.AdapterType.EXTERNAL, adapterFactoryClass, libraryDataverseName, libraryName);
+            MetadataManager.INSTANCE.addAdapter(mdTxnCtx, adapter);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Installed adapter: " + adapterName);
+            }
+            MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+        } catch (Exception e) {
+            abort(e, e, mdTxnCtx);
+            throw e;
+        }
+    }
+
+    protected void handleAdapterDropStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
+        AdapterDropStatement stmtDropAdapter = (AdapterDropStatement) stmt;
+        DataverseName dataverseName = getActiveDataverseName(stmtDropAdapter.getDataverseName());
+        String adapterName = stmtDropAdapter.getAdapterName();
+        lockUtil.dropAdapterBegin(lockManager, metadataProvider.getLocks(), dataverseName, adapterName);
+        try {
+            doDropAdapter(metadataProvider, stmtDropAdapter, dataverseName, adapterName);
+        } finally {
+            metadataProvider.getLocks().unlock();
+        }
+    }
+
+    protected boolean doDropAdapter(MetadataProvider metadataProvider, AdapterDropStatement stmtDropAdapter,
+            DataverseName dataverseName, String adapterName) throws Exception {
+        SourceLocation sourceLoc = stmtDropAdapter.getSourceLocation();
+        MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
+        metadataProvider.setMetadataTxnContext(mdTxnCtx);
+        try {
+            Dataverse dataverse = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
+            if (dataverse == null) {
+                if (stmtDropAdapter.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverseName);
+                }
+            }
+            DatasourceAdapter adapter = MetadataManager.INSTANCE.getAdapter(mdTxnCtx, dataverseName, adapterName);
+            if (adapter == null) {
+                if (stmtDropAdapter.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_ADAPTER, sourceLoc, adapterName);
+                }
+            }
+
+            MetadataManager.INSTANCE.dropAdapter(mdTxnCtx, dataverseName, adapterName);
+            MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            return true;
         } catch (Exception e) {
             abort(e, e, mdTxnCtx);
             throw e;
@@ -2312,26 +2504,38 @@
         String libraryName = stmtDropLibrary.getLibraryName();
         lockUtil.dropLibraryBegin(lockManager, metadataProvider.getLocks(), dataverseName, libraryName);
         try {
-            doDropLibrary(metadataProvider, dataverseName, libraryName, hcc);
+            doDropLibrary(metadataProvider, stmtDropLibrary, dataverseName, libraryName, hcc);
         } finally {
             metadataProvider.getLocks().unlock();
         }
     }
 
-    private void doDropLibrary(MetadataProvider metadataProvider, DataverseName dataverseName, String libraryName,
-            IHyracksClientConnection hcc) throws Exception {
+    protected boolean doDropLibrary(MetadataProvider metadataProvider, LibraryDropStatement stmtDropLibrary,
+            DataverseName dataverseName, String libraryName, IHyracksClientConnection hcc) throws Exception {
         JobUtils.ProgressState progress = ProgressState.NO_PROGRESS;
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         boolean bActiveTxn = true;
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         try {
-            Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
-            if (dv == null) {
-                throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, dataverseName);
+            Dataverse dataverse = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName);
+            if (dataverse == null) {
+                if (stmtDropLibrary.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, stmtDropLibrary.getSourceLocation(),
+                            dataverseName);
+                }
             }
             Library library = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, dataverseName, libraryName);
             if (library == null) {
-                throw new CompilationException(ErrorCode.UNKNOWN_LIBRARY, libraryName);
+                if (stmtDropLibrary.getIfExists()) {
+                    MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+                    return false;
+                } else {
+                    throw new CompilationException(ErrorCode.UNKNOWN_LIBRARY, stmtDropLibrary.getSourceLocation(),
+                            libraryName);
+                }
             }
 
             // #. mark the existing library as PendingDropOp
@@ -2360,6 +2564,7 @@
             MetadataManager.INSTANCE.dropLibrary(mdTxnCtx, dataverseName, libraryName);
 
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            return true;
         } catch (Exception e) {
             if (bActiveTxn) {
                 abort(e, e, mdTxnCtx);
@@ -2431,7 +2636,7 @@
         }
     }
 
-    protected void doDropSynonym(MetadataProvider metadataProvider, SynonymDropStatement stmtSynDrop,
+    protected boolean doDropSynonym(MetadataProvider metadataProvider, SynonymDropStatement stmtSynDrop,
             DataverseName dataverseName, String synonymName) throws Exception {
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
@@ -2440,12 +2645,13 @@
             if (synonym == null) {
                 if (stmtSynDrop.getIfExists()) {
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
-                    return;
+                    return false;
                 }
                 throw new CompilationException(ErrorCode.UNKNOWN_SYNONYM, stmtSynDrop.getSourceLocation(), synonymName);
             }
             MetadataManager.INSTANCE.dropSynonym(mdTxnCtx, dataverseName, synonymName);
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+            return true;
         } catch (Exception e) {
             abort(e, e, mdTxnCtx);
             throw e;
@@ -2820,7 +3026,7 @@
         }
     }
 
-    private void handleStartFeedStatement(MetadataProvider metadataProvider, Statement stmt,
+    protected void handleStartFeedStatement(MetadataProvider metadataProvider, Statement stmt,
             IHyracksClientConnection hcc) throws Exception {
         StartFeedStatement sfs = (StartFeedStatement) stmt;
         SourceLocation sourceLoc = sfs.getSourceLocation();
@@ -2859,7 +3065,7 @@
                 }
                 listener = new FeedEventsListener(this, metadataProvider.getApplicationContext(), hcc, entityId,
                         datasets, null, FeedIntakeOperatorNodePushable.class.getSimpleName(),
-                        NoRetryPolicyFactory.INSTANCE, feed, feedConnections);
+                        NoRetryPolicyFactory.INSTANCE, feed, feedConnections, compilationProvider.getLanguage());
             }
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
             committed = true;
@@ -2874,7 +3080,7 @@
         }
     }
 
-    private void handleStopFeedStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
+    protected void handleStopFeedStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
         StopFeedStatement sfst = (StopFeedStatement) stmt;
         SourceLocation sourceLoc = sfst.getSourceLocation();
         DataverseName dataverseName = getActiveDataverseName(sfst.getDataverseName());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
index 3eeed59..d06b8ab 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
@@ -39,6 +39,7 @@
 import org.apache.asterix.api.http.IQueryWebServerRegistrant;
 import org.apache.asterix.api.http.server.ActiveStatsApiServlet;
 import org.apache.asterix.api.http.server.ApiServlet;
+import org.apache.asterix.api.http.server.BasicAuthServlet;
 import org.apache.asterix.api.http.server.CcQueryCancellationServlet;
 import org.apache.asterix.api.http.server.ClusterApiServlet;
 import org.apache.asterix.api.http.server.ClusterControllerDetailsApiServlet;
@@ -91,6 +92,7 @@
 import org.apache.asterix.translator.IStatementExecutorFactory;
 import org.apache.asterix.translator.Receptionist;
 import org.apache.asterix.util.MetadataBuiltinFunctions;
+import org.apache.asterix.utils.RedactionUtil;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
@@ -112,6 +114,7 @@
 import org.apache.hyracks.http.server.HttpServerConfigBuilder;
 import org.apache.hyracks.http.server.WebManager;
 import org.apache.hyracks.ipc.impl.HyracksConnection;
+import org.apache.hyracks.util.LogRedactionUtil;
 import org.apache.hyracks.util.LoggingConfigUtil;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
@@ -158,8 +161,8 @@
         componentProvider = new StorageComponentProvider();
         ccExtensionManager = new CCExtensionManager(new ArrayList<>(getExtensions()));
         IGlobalRecoveryManager globalRecoveryManager = createGlobalRecoveryManager();
-        appCtx = createApplicationContext(null, globalRecoveryManager, lifecycleCoordinator,
-                () -> new Receptionist("CC"), ConfigValidator::new, ccExtensionManager, new AdapterFactoryService());
+        appCtx = createApplicationContext(null, globalRecoveryManager, lifecycleCoordinator, Receptionist::new,
+                ConfigValidator::new, ccExtensionManager, new AdapterFactoryService());
         final CCConfig ccConfig = controllerService.getCCConfig();
         if (System.getProperty("java.rmi.server.hostname") == null) {
             System.setProperty("java.rmi.server.hostname", ccConfig.getClusterPublicAddress());
@@ -231,6 +234,7 @@
     public void configureLoggingLevel(Level level) {
         super.configureLoggingLevel(level);
         LoggingConfigUtil.defaultIfMissing(GlobalConfig.ASTERIX_LOGGER_NAME, level);
+        LogRedactionUtil.setRedactor(RedactionUtil.LOG_REDACTOR);
     }
 
     protected List<AsterixExtension> getExtensions() throws Exception {
@@ -347,9 +351,10 @@
             case Servlets.ACTIVE_STATS:
                 return new ActiveStatsApiServlet(appCtx, ctx, paths);
             case Servlets.UDF:
-                return new UdfApiServlet(ctx, paths, appCtx, ccExtensionManager.getCompilationProvider(SQLPP),
-                        getStatementExecutorFactory(), componentProvider, server.getScheme(),
-                        server.getAddress().getPort());
+                return new BasicAuthServlet(ctx,
+                        new UdfApiServlet(ctx, paths, appCtx, ccExtensionManager.getCompilationProvider(SQLPP),
+                                getStatementExecutorFactory(), componentProvider, server.getScheme(),
+                                server.getAddress().getPort()));
             default:
                 throw new IllegalStateException(key);
         }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
index 2e5c09c..e90976e 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
@@ -72,6 +72,7 @@
 import org.apache.asterix.transaction.management.resource.PersistentLocalResourceRepository;
 import org.apache.asterix.translator.Receptionist;
 import org.apache.asterix.util.MetadataBuiltinFunctions;
+import org.apache.asterix.utils.RedactionUtil;
 import org.apache.hyracks.api.application.IServiceContext;
 import org.apache.hyracks.api.client.NodeStatus;
 import org.apache.hyracks.api.config.IConfigManager;
@@ -86,6 +87,7 @@
 import org.apache.hyracks.http.server.HttpServerConfig;
 import org.apache.hyracks.http.server.HttpServerConfigBuilder;
 import org.apache.hyracks.http.server.WebManager;
+import org.apache.hyracks.util.LogRedactionUtil;
 import org.apache.hyracks.util.LoggingConfigUtil;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
@@ -173,7 +175,7 @@
     }
 
     protected IReceptionistFactory getReceptionistFactory() {
-        return () -> new Receptionist(nodeId);
+        return Receptionist::new;
     }
 
     protected IConfigValidatorFactory getConfigValidatorFactory() {
@@ -184,6 +186,7 @@
     public void configureLoggingLevel(Level level) {
         super.configureLoggingLevel(level);
         LoggingConfigUtil.defaultIfMissing(GlobalConfig.ASTERIX_LOGGER_NAME, level);
+        LogRedactionUtil.setRedactor(RedactionUtil.LOG_REDACTOR);
     }
 
     protected void configureServers() throws Exception {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/FeedOperations.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/FeedOperations.java
index 8ea0ad4..68234b7 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/FeedOperations.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/FeedOperations.java
@@ -29,6 +29,7 @@
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.apache.asterix.algebra.base.ILangExtension;
 import org.apache.asterix.app.result.ResponsePrinter;
 import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
 import org.apache.asterix.app.translator.QueryTranslator;
@@ -309,7 +310,7 @@
                 if (opDesc instanceof LSMTreeInsertDeleteOperatorDescriptor
                         && ((LSMTreeInsertDeleteOperatorDescriptor) opDesc).isPrimary()) {
                     metaOp = new FeedMetaOperatorDescriptor(jobSpec, feedConnectionId, opDesc,
-                            feedPolicyEntity.getProperties(), FeedRuntimeType.STORE);
+                            feedPolicyEntity.getProperties(), FeedRuntimeType.STORE, true);
                     opId = metaOp.getOperatorId();
                     opDesc.setOperatorId(opId);
                 } else {
@@ -323,7 +324,7 @@
                             // anything on the network interface needs to be message compatible
                             if (connectorDesc instanceof MToNPartitioningConnectorDescriptor) {
                                 metaOp = new FeedMetaOperatorDescriptor(jobSpec, feedConnectionId, opDesc,
-                                        feedPolicyEntity.getProperties(), FeedRuntimeType.COMPUTE);
+                                        feedPolicyEntity.getProperties(), FeedRuntimeType.COMPUTE, true);
                                 opId = metaOp.getOperatorId();
                                 opDesc.setOperatorId(opId);
                             }
@@ -450,7 +451,8 @@
 
     public static Pair<JobSpecification, AlgebricksAbsolutePartitionConstraint> buildStartFeedJob(
             MetadataProvider metadataProvider, Feed feed, List<FeedConnection> feedConnections,
-            IStatementExecutor statementExecutor, IHyracksClientConnection hcc) throws Exception {
+            IStatementExecutor statementExecutor, IHyracksClientConnection hcc, ILangExtension.Language translatorLang)
+            throws Exception {
         FeedPolicyAccessor fpa = new FeedPolicyAccessor(new HashMap<>());
         Pair<JobSpecification, ITypedAdapterFactory> intakeInfo = buildFeedIntakeJobSpec(feed, metadataProvider, fpa);
         List<JobSpecification> jobsList = new ArrayList<>();
@@ -465,8 +467,9 @@
         metadataProvider.getConfig().put(FeedActivityDetails.COLLECT_LOCATIONS,
                 StringUtils.join(ingestionLocations, ','));
         // TODO: Once we deprecated AQL, this extra queryTranslator can be removed.
-        IStatementExecutor translator =
-                getSQLPPTranslator(metadataProvider, ((QueryTranslator) statementExecutor).getSessionOutput());
+        IStatementExecutor translator = translatorLang == ILangExtension.Language.AQL
+                ? getSQLPPTranslator(metadataProvider, ((QueryTranslator) statementExecutor).getSessionOutput())
+                : statementExecutor;
         // Add connection job
         for (FeedConnection feedConnection : feedConnections) {
             JobSpecification connectionJob =
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
index 81f749e..84f9a94 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.utils;
 
 import static org.apache.asterix.app.translator.QueryTranslator.abort;
+import static org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import static org.apache.hyracks.storage.am.common.dataflow.IndexDropOperatorDescriptor.DropOption;
 
 import java.rmi.RemoteException;
@@ -129,7 +130,9 @@
                         sourceDataset.getDatasetName(), sourceDataset.getNodeGroupName(), sourceNodes,
                         targetDataset.getNodeGroupName(), targetNcNames);
                 // Rebalances the source dataset into the target dataset.
-                rebalance(sourceDataset, targetDataset, metadataProvider, hcc, datasetRebalanceCallback);
+                if (sourceDataset.getDatasetType() != DatasetType.EXTERNAL) {
+                    rebalance(sourceDataset, targetDataset, metadataProvider, hcc, datasetRebalanceCallback);
+                }
             } else {
                 targetDataset = null;
                 // if this the last NC in the cluster, just drop the dataset
@@ -353,6 +356,9 @@
     // Drops dataset files of a given dataset.
     private static void dropDatasetFiles(Dataset dataset, MetadataProvider metadataProvider,
             IHyracksClientConnection hcc) throws Exception {
+        if (dataset.getDatasetType() == DatasetType.EXTERNAL) {
+            return;
+        }
         List<JobSpecification> jobs = new ArrayList<>();
         List<Index> indexes = metadataProvider.getDatasetIndexes(dataset.getDataverseName(), dataset.getDatasetName());
         for (Index index : indexes) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RedactionUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RedactionUtil.java
new file mode 100644
index 0000000..156b78a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RedactionUtil.java
@@ -0,0 +1,54 @@
+/*
+ * 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.utils;
+
+import static java.util.regex.Pattern.CASE_INSENSITIVE;
+import static java.util.regex.Pattern.DOTALL;
+import static org.apache.asterix.external.util.ExternalDataConstants.AwsS3.SECRET_ACCESS_KEY_FIELD_NAME;
+
+import java.util.regex.Pattern;
+
+import org.apache.hyracks.util.ILogRedactor;
+
+public class RedactionUtil {
+    private RedactionUtil() {
+        throw new AssertionError("do not instantiate");
+    }
+
+    private static final Pattern STATEMENT_PATTERN =
+            Pattern.compile("(" + SECRET_ACCESS_KEY_FIELD_NAME + ").*", CASE_INSENSITIVE | DOTALL);
+    private static final String STATEMENT_REPLACEMENT = "$1...<redacted sensitive data>";
+
+    public static final ILogRedactor LOG_REDACTOR = new ILogRedactor() {
+        @Override
+        public String userData(String text) {
+            return text;
+        }
+
+        @Override
+        public String statement(String text) {
+            return STATEMENT_PATTERN.matcher(text).replaceFirst(STATEMENT_REPLACEMENT);
+        }
+
+        @Override
+        public String unredactUserData(String text) {
+            return text;
+        }
+    };
+}
diff --git a/asterixdb/asterix-app/src/main/resources/cc.conf b/asterixdb/asterix-app/src/main/resources/cc.conf
index d85a5ef..d5da6d4 100644
--- a/asterixdb/asterix-app/src/main/resources/cc.conf
+++ b/asterixdb/asterix-app/src/main/resources/cc.conf
@@ -18,7 +18,8 @@
 [nc/asterix_nc1]
 txn.log.dir=target/tmp/asterix_nc1/txnlog
 core.dump.dir=target/tmp/asterix_nc1/coredump
-iodevices=asterix_nc1/iodevice1,asterix_nc1/iodevice2
+iodevices=asterix_nc1/iodevice1
+iodevices=asterix_nc1/iodevice2
 nc.api.port=19004
 #jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
 
@@ -26,7 +27,8 @@
 ncservice.port=9091
 txn.log.dir=target/tmp/asterix_nc2/txnlog
 core.dump.dir=target/tmp/asterix_nc2/coredump
-iodevices=asterix_nc2/iodevice1,asterix_nc2/iodevice2
+iodevices=asterix_nc2/iodevice1
+iodevices=asterix_nc1/iodevice2
 nc.api.port=19005
 #jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
 
@@ -53,10 +55,11 @@
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB
-compiler.joinmemory=256KB
+compiler.joinmemory=768KB
 compiler.textsearchmemory=160KB
 compiler.windowmemory=192KB
 compiler.sort.parallel=false
+compiler.internal.sanitycheck=true
 messaging.frame.size=4096
 messaging.frame.count=512
 
diff --git a/asterixdb/asterix-app/src/main/resources/cc3.conf b/asterixdb/asterix-app/src/main/resources/cc3.conf
index 88362aa..d2a8556 100644
--- a/asterixdb/asterix-app/src/main/resources/cc3.conf
+++ b/asterixdb/asterix-app/src/main/resources/cc3.conf
@@ -51,7 +51,7 @@
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB
-compiler.joinmemory=256KB
+compiler.joinmemory=1024KB
 compiler.textsearchmemory=160KB
 compiler.windowmemory=192KB
 compiler.parallelism=3
diff --git a/asterixdb/asterix-app/src/main/resources/entrypoint.py b/asterixdb/asterix-app/src/main/resources/entrypoint.py
old mode 100644
new mode 100755
index cd3298e..0917f49
--- a/asterixdb/asterix-app/src/main/resources/entrypoint.py
+++ b/asterixdb/asterix-app/src/main/resources/entrypoint.py
@@ -15,46 +15,235 @@
 # specific language governing permissions and limitations
 # under the License.
 
-import math,sys
-sys.path.insert(0,'./site-packages/')
-import Pyro4
+import sys
+from os import pathsep
+addr = str(sys.argv[1])
+port = str(sys.argv[2])
+paths = sys.argv[3]
+for p in paths.split(pathsep):
+    sys.path.append(p)
+from struct import *
+import signal
+import msgpack
+import socket
 from importlib import import_module
 from pathlib import Path
+from enum import IntEnum
+from io import BytesIO
 
-@Pyro4.expose
+PROTO_VERSION = 1
+HEADER_SZ = 8+8+1
+REAL_HEADER_SZ = 4+8+8+1
+
+
+class MessageType(IntEnum):
+    HELO = 0
+    QUIT = 1
+    INIT = 2
+    INIT_RSP = 3
+    CALL = 4
+    CALL_RSP = 5
+    ERROR = 6
+
+
+class MessageFlags(IntEnum):
+    NORMAL = 0
+    INITIAL_REQ = 1
+    INITIAL_ACK = 2
+    ERROR = 3
+
+
 class Wrapper(object):
     wrapped_module = None
     wrapped_class = None
     wrapped_fn = None
+    packer = msgpack.Packer(autoreset=False)
+    unpacker = msgpack.Unpacker()
+    response_buf = BytesIO()
+    stdin_buf = BytesIO()
+    wrapped_fns = {}
+    alive = True
 
-    def __init__(self, module_name, class_name, fn_name):
+    def init(self, module_name, class_name, fn_name):
         self.wrapped_module = import_module(module_name)
         # do not allow modules to be called that are not part of the uploaded module
+        wrapped_fn = None
         if not self.check_module_path(self.wrapped_module):
             wrapped_module = None
-            return None
+            raise ImportError("Module was not found in library")
         if class_name is not None:
-            self.wrapped_class = getattr(import_module(module_name),class_name)()
+            self.wrapped_class = getattr(
+                import_module(module_name), class_name)()
         if self.wrapped_class is not None:
-            self.wrapped_fn = getattr(self.wrapped_class,fn_name)
+            wrapped_fn = getattr(self.wrapped_class, fn_name)
         else:
-            self.wrapped_fn = locals()[fn_name]
+            wrapped_fn = locals()[fn_name]
+        if wrapped_fn is None:
+            raise ImportError("Could not find class or function in specified module")
+        self.wrapped_fns[self.rmid] = wrapped_fn
 
-    def nextTuple(self, *args):
-        return self.wrapped_fn(args)
+    def nextTuple(self, *args, key=None):
+        return self.wrapped_fns[key](*args)
 
-    def ping(self):
-        return "pong"
-
-    def check_module_path(self,module):
+    def check_module_path(self, module):
         cwd = Path('.').resolve()
         module_path = Path(module.__file__).resolve()
         return cwd in module_path.parents
 
+    def read_header(self, readbuf):
+        self.sz, self.mid, self.rmid, self.flag = unpack(
+            "!iqqb", readbuf[0:21])
+        return True
 
-port = int(sys.argv[1])
-wrap = Wrapper(sys.argv[2],sys.argv[3],sys.argv[4])
-d = Pyro4.Daemon(host="127.0.0.1",port=port)
-d.register(wrap,"nextTuple")
-print(Pyro4.config.dump())
-d.requestLoop()
+    def write_header(self, response_buf, dlen):
+        total_len = dlen + HEADER_SZ
+        header = pack("!iqqb", total_len, int(-1), int(self.rmid), self.flag)
+        self.response_buf.write(header)
+        return total_len+4
+
+    def get_ver_hlen(self, hlen):
+        return hlen + (PROTO_VERSION << 4)
+
+    def get_hlen(self):
+        return self.ver_hlen - (PROTO_VERSION << 4)
+
+    def init_remote_ipc(self):
+        self.response_buf.seek(0)
+        self.flag = MessageFlags.INITIAL_REQ
+        dlen = len(self.unpacked_msg[1])
+        resp_len = self.write_header(self.response_buf, dlen)
+        self.response_buf.write(self.unpacked_msg[1])
+        self.resp = self.response_buf.getbuffer()[0:resp_len]
+        self.send_msg()
+        self.packer.reset()
+
+    def helo(self):
+        #need to ack the connection back before sending actual HELO
+        self.init_remote_ipc()
+
+        self.flag = MessageFlags.NORMAL
+        self.response_buf.seek(0)
+        self.packer.pack(int(MessageType.HELO))
+        self.packer.pack("HELO")
+        dlen = 5 #tag(1) + body(4)
+        resp_len = self.write_header(self.response_buf, dlen)
+        self.response_buf.write(self.packer.bytes())
+        self.resp = self.response_buf.getbuffer()[0:resp_len]
+        self.send_msg()
+        self.packer.reset()
+        return True
+
+    def handle_init(self):
+        self.flag = MessageFlags.NORMAL
+        self.response_buf.seek(0)
+        args = self.unpacked_msg[1]
+        module = args[0]
+        if len(args) == 3:
+            clazz = args[1]
+            fn = args[2]
+        else:
+            clazz = None
+            fn = args[1]
+        self.init(module, clazz, fn)
+        self.packer.pack(int(MessageType.INIT_RSP))
+        dlen = 1  # just the tag.
+        resp_len = self.write_header(self.response_buf, dlen)
+        self.response_buf.write(self.packer.bytes())
+        self.resp = self.response_buf.getbuffer()[0:resp_len]
+        self.send_msg()
+        self.packer.reset()
+        return True
+
+    def quit(self):
+        self.alive = False
+        return True
+
+    def handle_call(self):
+        self.flag = MessageFlags.NORMAL
+        args = self.unpacked_msg[1]
+        result = None
+        if args is None:
+            result = self.nextTuple(key=self.rmid)
+        else:
+            result = self.nextTuple(args, key=self.rmid)
+        self.packer.reset()
+        self.response_buf.seek(0)
+        body = msgpack.packb(result)
+        dlen = len(body)+1  # 1 for tag
+        resp_len = self.write_header(self.response_buf, dlen)
+        self.packer.pack(int(MessageType.CALL_RSP))
+        self.response_buf.write(self.packer.bytes())
+        self.response_buf.write(body)
+        self.resp = self.response_buf.getbuffer()[0:resp_len]
+        self.send_msg()
+        self.packer.reset()
+        return True
+
+    def handle_error(self,e):
+        self.flag = MessageFlags.NORMAL
+        result = type(e).__name__ + ": " + str(e)
+        self.packer.reset()
+        self.response_buf.seek(0)
+        body = msgpack.packb(result)
+        dlen = len(body)+1  # 1 for tag
+        resp_len = self.write_header(self.response_buf, dlen)
+        self.packer.pack(int(MessageType.ERROR))
+        self.response_buf.write(self.packer.bytes())
+        self.response_buf.write(body)
+        self.resp = self.response_buf.getbuffer()[0:resp_len]
+        self.send_msg()
+        self.packer.reset()
+        return True
+
+    type_handler = {
+        MessageType.HELO: helo,
+        MessageType.QUIT: quit,
+        MessageType.INIT: handle_init,
+        MessageType.CALL: handle_call
+    }
+
+    def connect_sock(self, addr, port):
+        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        try:
+            self.sock.connect((addr, int(port)))
+        except socket.error as msg:
+            print(sys.stderr, msg)
+
+    def disconnect_sock(self, *args):
+        self.sock.shutdown(socket.SHUT_RDWR)
+        self.sock.close()
+
+    def recv_msg(self):
+        completed = False
+        while not completed and self.alive:
+            readbuf = sys.stdin.buffer.read1(4096)
+            try:
+                if(len(readbuf) < REAL_HEADER_SZ):
+                    while(len(readbuf) < REAL_HEADER_SZ):
+                        readbuf += sys.stdin.buffer.read1(4096)
+                self.read_header(readbuf)
+                if(self.sz > len(readbuf)):
+                    while(len(readbuf) < self.sz):
+                        readbuf += sys.stdin.buffer.read1(4096)
+                self.unpacker.feed(readbuf[21:])
+                self.unpacked_msg = list(self.unpacker)
+                self.type = MessageType(self.unpacked_msg[0])
+                completed = self.type_handler[self.type](self)
+            except BaseException as e:
+                completed = self.handle_error(e)
+
+    def send_msg(self):
+        self.sock.sendall(self.resp)
+        self.resp = None
+        return
+
+    def recv_loop(self):
+        while self.alive:
+            self.recv_msg()
+        self.disconnect_sock()
+
+
+wrap = Wrapper()
+wrap.connect_sock(addr, port)
+signal.signal(signal.SIGTERM, wrap.disconnect_sock)
+wrap.recv_loop()
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
index ebf98df..1040781 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
@@ -800,8 +800,8 @@
                 new LSMPrimaryUpsertOperatorNodePushable(ctx, ctx.getTaskAttemptId().getTaskId().getPartition(),
                         indexHelperFactory, primaryIndexInfo.primaryIndexInsertFieldsPermutations,
                         recordDescProvider.getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0),
-                        modificationCallbackFactory, searchCallbackFactory,
-                        keyIndexes.length, recordType, -1, frameOpCallbackFactory == null
+                        modificationCallbackFactory, searchCallbackFactory, keyIndexes.length,
+                        0, recordType, -1, frameOpCallbackFactory == null
                                 ? dataset.getFrameOpCallbackFactory(mdProvider) : frameOpCallbackFactory,
                         MissingWriterFactory.INSTANCE, hasSecondaries);
         RecordDescriptor upsertOutRecDesc = getUpsertOutRecDesc(primaryIndexInfo.rDesc, dataset,
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
index 963ba7c..b23b3cf 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
@@ -107,7 +107,7 @@
         // Add event listener
         ActiveEntityEventsListener eventsListener = new DummyFeedEventsListener(statementExecutor, appCtx, null,
                 entityId, datasetList, partitionConstraint, FeedIntakeOperatorNodePushable.class.getSimpleName(),
-                NoRetryPolicyFactory.INSTANCE, null, Collections.emptyList());
+                NoRetryPolicyFactory.INSTANCE, null, Collections.emptyList(), Language.SQLPP);
         // Register mock runtime
         NCAppRuntimeContext nc1AppCtx =
                 (NCAppRuntimeContext) ExecutionTestUtil.integrationUtil.ncs[0].getApplicationContext();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/DummyFeedEventsListener.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/DummyFeedEventsListener.java
index 88f1332..884d209 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/DummyFeedEventsListener.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/DummyFeedEventsListener.java
@@ -26,6 +26,7 @@
 import org.apache.asterix.active.EntityId;
 import org.apache.asterix.active.IActiveEntityEventSubscriber;
 import org.apache.asterix.active.IRetryPolicyFactory;
+import org.apache.asterix.algebra.base.ILangExtension;
 import org.apache.asterix.app.active.FeedEventsListener;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.external.feed.watch.WaitForStateSubscriber;
@@ -43,9 +44,10 @@
     public DummyFeedEventsListener(IStatementExecutor statementExecutor, ICcApplicationContext appCtx,
             IHyracksClientConnection hcc, EntityId entityId, List<Dataset> datasets,
             AlgebricksAbsolutePartitionConstraint locations, String runtimeName, IRetryPolicyFactory retryPolicyFactory,
-            Feed feed, List<FeedConnection> feedConnections) throws HyracksDataException {
+            Feed feed, List<FeedConnection> feedConnections, ILangExtension.Language translatorLang)
+            throws HyracksDataException {
         super(statementExecutor, appCtx, hcc, entityId, datasets, locations, runtimeName, retryPolicyFactory, feed,
-                feedConnections);
+                feedConnections, translatorLang);
     }
 
     @Override
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index ceb0dbb..2399064 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -68,6 +68,7 @@
 import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
@@ -1622,13 +1623,22 @@
     protected static boolean isExpected(Exception e, CompilationUnit cUnit) {
         final List<String> expErrors = cUnit.getExpectedError();
         for (String exp : expErrors) {
-            if (e.toString().contains(exp)) {
+            if (e.toString().contains(exp) || containsPattern(e.toString(), exp)) {
                 return true;
             }
         }
         return false;
     }
 
+    private static boolean containsPattern(String exception, String maybePattern) {
+        try {
+            return Pattern.compile(maybePattern).matcher(exception).find();
+        } catch (PatternSyntaxException pse) {
+            // ignore, this isn't always a legal pattern
+            return false;
+        }
+    }
+
     public int getTimeoutSecs(String statement) {
         final Matcher timeoutMatcher = POLL_TIMEOUT_PATTERN.matcher(statement);
         if (timeoutMatcher.find()) {
@@ -2070,7 +2080,7 @@
             // Get the expected exception
             expectedError = expectedErrors.get(numOfErrors - 1);
             String actualError = e.toString();
-            if (!actualError.contains(expectedError)) {
+            if (!actualError.contains(expectedError) && !containsPattern(actualError, expectedError)) {
                 LOGGER.error("Expected to find the following in error text: +++++{}+++++", expectedError);
                 return true;
             }
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/CheckpointInSecondaryIndexTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/CheckpointInSecondaryIndexTest.java
index b43c445..d60702f 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/CheckpointInSecondaryIndexTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/CheckpointInSecondaryIndexTest.java
@@ -165,9 +165,9 @@
     public void createIndex() throws Exception {
         List<List<String>> partitioningKeys = new ArrayList<>();
         partitioningKeys.add(Collections.singletonList("key"));
-        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME,
-                NODE_GROUP_NAME, NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null,
-                        PartitioningStrategy.HASH, partitioningKeys, null, null, null, false, null),
+        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
+                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
+                        partitioningKeys, null, null, null, false, null, null),
                 null, DatasetType.INTERNAL, DATASET_ID, 0);
         secondaryIndex = new Index(DATAVERSE_NAME, DATASET_NAME, INDEX_NAME, INDEX_TYPE, INDEX_FIELD_NAMES,
                 INDEX_FIELD_INDICATORS, INDEX_FIELD_TYPES, false, false, false, 0);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
index 0e51f28..2034aa8 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/GlobalVirtualBufferCacheTest.java
@@ -189,16 +189,16 @@
 
     private void createIndex() throws Exception {
         dataset = new TestDataset(StorageTestUtils.DATAVERSE_NAME, "ds", StorageTestUtils.DATAVERSE_NAME,
-                StorageTestUtils.DATA_TYPE_NAME, StorageTestUtils.NODE_GROUP_NAME,
-                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
-                        StorageTestUtils.PARTITIONING_KEYS, null, null, null, false, null),
+                StorageTestUtils.DATA_TYPE_NAME, StorageTestUtils.NODE_GROUP_NAME, NoMergePolicyFactory.NAME,
+                null, new InternalDatasetDetails(null, PartitioningStrategy.HASH, StorageTestUtils.PARTITIONING_KEYS,
+                        null, null, null, false, null, null),
                 null, DatasetType.INTERNAL, StorageTestUtils.DATASET_ID, 0);
 
         filteredDataset = new TestDataset(StorageTestUtils.DATAVERSE_NAME, "filtered_ds",
                 StorageTestUtils.DATAVERSE_NAME, StorageTestUtils.DATA_TYPE_NAME, StorageTestUtils.NODE_GROUP_NAME,
                 NoMergePolicyFactory.NAME, null,
                 new InternalDatasetDetails(null, PartitioningStrategy.HASH, StorageTestUtils.PARTITIONING_KEYS, null,
-                        null, null, false, Collections.singletonList("value")),
+                        null, null, false, 0, Collections.singletonList("value")),
                 null, DatasetType.INTERNAL, StorageTestUtils.DATASET_ID + 1, 0);
 
         primaryIndexInfos = new PrimaryIndexInfo[NUM_PARTITIONS];
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
index d43b6d5..41b889d 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
@@ -68,6 +68,7 @@
 import org.apache.hyracks.storage.am.lsm.btree.impl.TestLsmBtree;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMMemoryComponent;
+import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache;
 import org.apache.hyracks.storage.am.lsm.common.impls.NoMergePolicyFactory;
 import org.junit.After;
 import org.junit.AfterClass;
@@ -154,9 +155,9 @@
     public void createIndex() throws Exception {
         List<List<String>> partitioningKeys = new ArrayList<>();
         partitioningKeys.add(Collections.singletonList("key"));
-        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME,
-                NODE_GROUP_NAME, NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null,
-                        PartitioningStrategy.HASH, partitioningKeys, null, null, null, false, null),
+        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
+                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
+                        partitioningKeys, null, null, null, false, null, null),
                 null, DatasetType.INTERNAL, DATASET_ID, 0);
         secondaryIndex = new Index(DATAVERSE_NAME, DATASET_NAME, INDEX_NAME, INDEX_TYPE, INDEX_FIELD_NAMES,
                 INDEX_FIELD_INDICATORS, INDEX_FIELD_TYPES, false, false, false, 0);
@@ -284,7 +285,6 @@
                                 }
                             }
                         }
-                        System.out.println("Proceed to flush");
                     }
                 }
             });
@@ -338,31 +338,37 @@
                 }
             }
             // The memory component has been allocated. now we allow the first actor to proceed to schedule flush
-            MutableBoolean flushStarted = new MutableBoolean(false);
+            MutableBoolean flushCompleted = new MutableBoolean(false);
             primaryLsmBtrees[0].addFlushCallback(new ITestOpCallback<Semaphore>() {
                 @Override
                 public void before(Semaphore t) {
-                    synchronized (flushStarted) {
-                        flushStarted.setValue(true);
-                        flushStarted.notifyAll();
-                    }
                 }
 
                 @Override
                 public void after(Semaphore t) {
+                    synchronized (flushCompleted) {
+                        flushCompleted.setValue(true);
+                        flushCompleted.notifyAll();
+                    }
                 }
             });
             synchronized (proceedToScheduleFlush) {
                 proceedToScheduleFlush.setValue(true);
                 proceedToScheduleFlush.notifyAll();
             }
-            // Now we need to know that the flush has been scheduled
-            synchronized (flushStarted) {
-                while (!flushStarted.booleanValue()) {
-                    flushStarted.wait(100);
+            // Must wait for the flush to complete. Otherwise, the GVBC may flush partition 1
+            synchronized (flushCompleted) {
+                while (!flushCompleted.booleanValue()) {
+                    flushCompleted.wait();
                 }
             }
 
+            IVirtualBufferCache gvbc = ncAppCtx.getVirtualBufferCache();
+            while (gvbc.getUsage() > gvbc.getPageBudget() / 2) {
+                // ensure the memory component pages of lsm tree 0 are freed
+                Thread.sleep(100);
+            }
+
             // we now allow the allocation to proceed
             synchronized (proceedToAllocateSecondaryIndex) {
                 proceedToAllocateSecondaryIndex.setValue(true);
@@ -373,6 +379,7 @@
             primaryLsmBtrees[1].clearAllocateCallbacks();
             // check the Ids of the memory components of partition 1
             // This shows the bug
+            Assert.assertNotEquals(null, primaryLsmBtrees[1].getCurrentMemoryComponent().getId());
             Assert.assertEquals(primaryLsmBtrees[1].getCurrentMemoryComponent().getId(),
                     secondaryLsmBtrees[1].getCurrentMemoryComponent().getId());
         } catch (Throwable e) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
index 28da85c..a9e86cb 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
@@ -124,9 +124,9 @@
     public void createIndex() throws Exception {
         List<List<String>> partitioningKeys = new ArrayList<>();
         partitioningKeys.add(Collections.singletonList("key"));
-        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME,
-                NODE_GROUP_NAME, NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null,
-                        PartitioningStrategy.HASH, partitioningKeys, null, null, null, false, null),
+        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
+                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
+                        partitioningKeys, null, null, null, false, null, null),
                 null, DatasetType.INTERNAL, DATASET_ID, 0);
         PrimaryIndexInfo primaryIndexInfo = nc.createPrimaryIndex(dataset, KEY_TYPES, RECORD_TYPE, META_TYPE, null,
                 storageManager, KEY_INDEXES, KEY_INDICATORS_LIST, 0);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/StorageTestUtils.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/StorageTestUtils.java
index e41c193..3ef1e62 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/StorageTestUtils.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/StorageTestUtils.java
@@ -95,7 +95,7 @@
     public static final TestDataset DATASET =
             new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
                     NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
-                            PARTITIONING_KEYS, null, null, null, false, null),
+                            PARTITIONING_KEYS, null, null, null, false, null, null),
                     null, DatasetType.INTERNAL, DATASET_ID, 0);
 
     private StorageTestUtils() {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestDataset.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestDataset.java
index a6a53cb..f28e9bb 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestDataset.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestDataset.java
@@ -71,9 +71,9 @@
     public IResourceFactory getResourceFactory(MetadataProvider mdProvider, Index index, ARecordType recordType,
             ARecordType metaType, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties)
             throws AlgebricksException {
-        ITypeTraits[] filterTypeTraits = DatasetUtil.computeFilterTypeTraits(this, recordType);
+        ITypeTraits[] filterTypeTraits = DatasetUtil.computeFilterTypeTraits(this, recordType, metaType);
         IBinaryComparatorFactory[] filterCmpFactories = DatasetUtil.computeFilterBinaryComparatorFactories(this,
-                recordType, mdProvider.getStorageComponentProvider().getComparatorFactoryProvider());
+                recordType, metaType, mdProvider.getStorageComponentProvider().getComparatorFactoryProvider());
         IResourceFactory resourceFactory =
                 TestLsmBTreeResourceFactoryProvider.INSTANCE.getResourceFactory(mdProvider, this, index, recordType,
                         metaType, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/aws/WildCardToRegexTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/aws/WildCardToRegexTest.java
new file mode 100644
index 0000000..f15b657
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/external_dataset/aws/WildCardToRegexTest.java
@@ -0,0 +1,97 @@
+/*
+ * 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.test.external_dataset.aws;
+
+import static org.apache.asterix.external.util.ExternalDataUtils.patternToRegex;
+
+import java.util.regex.Pattern;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+public class WildCardToRegexTest extends TestCase {
+
+    @Test
+    public void test() throws HyracksDataException {
+        String result = patternToRegex("*?[abc]");
+        assertEquals(".*.[abc]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("*?[!@#$%^&*()+<>|=!{}.]");
+        assertEquals(".*.[^@#\\$%\\^&\\*\\(\\)\\+\\<\\>\\|\\=\\!\\{\\}\\.]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("**??[[a-z*0-9]]");
+        assertEquals(".*.*..[\\[a-z\\*0-9]\\]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("**??[[a-z*0-9]]");
+        assertEquals(".*.*..[\\[a-z\\*0-9]\\]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("*?[!abc]");
+        assertEquals(".*.[^abc]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[!]abc");
+        assertEquals("\\[\\!\\]abc", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[!]abc]");
+        assertEquals("[^\\]abc]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[]]");
+        assertEquals("[\\]]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[]abcd");
+        assertEquals("\\[\\]abcd", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[]abcd]");
+        assertEquals("[\\]abcd]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[^]");
+        assertEquals("[\\^]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[^]]");
+        assertEquals("[\\^]\\]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[!]");
+        assertEquals("\\[\\!\\]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[!]]");
+        assertEquals("[^\\]]", result);
+        Pattern.compile(result);
+
+        result = patternToRegex("[][!][^]]]]*[![*a-zA--&&^$||0-9B$\\\\*&&]*&&[^a-b||0--9][[[");
+        assertEquals(
+                "[\\]\\[\\!][\\^]\\]\\]\\].*[^\\[\\*a-zA\\-\\-\\&\\&\\^\\$\\|\\|0-9B\\$\\\\\\\\\\*\\&\\&].*&&[\\^a-b\\|\\|0\\-\\-9]\\[\\[\\[",
+                result);
+        Pattern.compile(result);
+    }
+}
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
index d4cb04f..b34f5c6 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
@@ -112,8 +112,8 @@
         testExecutor.executeSqlppUpdateOrDdl("CREATE nodegroup " + nodeGroup + " on asterix_nc2;", format);
         // create original dataset
         testExecutor.executeSqlppUpdateOrDdl("CREATE TYPE KeyType AS { id: int };", format);
-        testExecutor.executeSqlppUpdateOrDdl(
-                "CREATE DATASET " + datasetName + "(KeyType) PRIMARY KEY id on " + nodeGroup + ";", format);
+        testExecutor.executeSqlppUpdateOrDdl("CREATE DATASET " + datasetName
+                + "(KeyType) PRIMARY KEY id WITH {\"node-group\":{\"name\":\"" + nodeGroup + "\"}};", format);
         // find source dataset
         Dataset sourceDataset;
         MetadataProvider metadataProvider = MetadataProvider.create(appCtx, null);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/NullMissingTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/NullMissingTest.java
index 3b4f78f..55a1a80 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/NullMissingTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/NullMissingTest.java
@@ -31,7 +31,6 @@
 
 import org.apache.asterix.common.annotations.MissingNullInOutFunction;
 import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.functions.FunctionInfo;
 import org.apache.asterix.om.functions.IFunctionDescriptor;
 import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
 import org.apache.asterix.om.types.ATypeTag;
@@ -40,6 +39,7 @@
 import org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
 import org.apache.asterix.runtime.functions.FunctionCollection;
 import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
@@ -68,7 +68,7 @@
     private static final Logger LOGGER = LogManager.getLogger();
 
     // those are the functions that need IATypes of their args and use them in the function constructor
-    private static Set<FunctionInfo> functionsRequiringTypes = new HashSet<>();
+    private static Set<FunctionIdentifier> functionsRequiringTypes = new HashSet<>();
 
     @Parameters(name = "NullMissingTest {index}: {0}")
     public static Collection<Object[]> tests() {
@@ -132,7 +132,7 @@
             Pair<IScalarEvaluatorFactory[], IAType[]> argumentsAndTypesPair = argEvalFactoryIterator.next();
 
             // Set the IAType if it's needed
-            if (functionsRequiringTypes.contains(new FunctionInfo(funcDesc.getIdentifier(), true))) {
+            if (functionsRequiringTypes.contains(funcDesc.getIdentifier())) {
                 funcDesc.setImmutableStates((Object[]) argumentsAndTypesPair.second);
             }
 
@@ -193,21 +193,21 @@
     @BeforeClass
     public static void buildFunctionsRequiringType() {
         // Those are the functions that need IATypes of their args and use them in the function constructor
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.ARRAY_POSITION, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.ARRAY_CONTAINS, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.ARRAY_SORT, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.ARRAY_DISTINCT, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.ARRAY_EXCEPT, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.EQ, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.LT, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.GT, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.GE, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.LE, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.NEQ, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.MISSING_IF, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.NAN_IF, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.NEGINF_IF, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.NULL_IF, true));
-        functionsRequiringTypes.add(new FunctionInfo(BuiltinFunctions.POSINF_IF, true));
+        functionsRequiringTypes.add(BuiltinFunctions.ARRAY_POSITION);
+        functionsRequiringTypes.add(BuiltinFunctions.ARRAY_CONTAINS);
+        functionsRequiringTypes.add(BuiltinFunctions.ARRAY_SORT);
+        functionsRequiringTypes.add(BuiltinFunctions.ARRAY_DISTINCT);
+        functionsRequiringTypes.add(BuiltinFunctions.ARRAY_EXCEPT);
+        functionsRequiringTypes.add(BuiltinFunctions.EQ);
+        functionsRequiringTypes.add(BuiltinFunctions.LT);
+        functionsRequiringTypes.add(BuiltinFunctions.GT);
+        functionsRequiringTypes.add(BuiltinFunctions.GE);
+        functionsRequiringTypes.add(BuiltinFunctions.LE);
+        functionsRequiringTypes.add(BuiltinFunctions.NEQ);
+        functionsRequiringTypes.add(BuiltinFunctions.MISSING_IF);
+        functionsRequiringTypes.add(BuiltinFunctions.NAN_IF);
+        functionsRequiringTypes.add(BuiltinFunctions.NEGINF_IF);
+        functionsRequiringTypes.add(BuiltinFunctions.NULL_IF);
+        functionsRequiringTypes.add(BuiltinFunctions.POSINF_IF);
     }
 }
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/DataverseNameParserTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/DataverseNameParserTest.java
new file mode 100644
index 0000000..1cd41ae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/DataverseNameParserTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.test.sqlpp;
+
+import java.util.List;
+
+import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.metadata.DataverseNameTest;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.IParser;
+import org.apache.asterix.lang.common.base.IParserFactory;
+import org.apache.asterix.lang.common.base.IRewriterFactory;
+import org.apache.asterix.lang.common.base.IStatementRewriter;
+import org.apache.asterix.lang.common.expression.FieldAccessor;
+import org.apache.asterix.lang.common.expression.VariableExpr;
+import org.apache.asterix.lang.sqlpp.parser.SqlppParserFactory;
+import org.apache.asterix.lang.sqlpp.rewrites.SqlppRewriterFactory;
+import org.junit.Assert;
+
+public class DataverseNameParserTest extends DataverseNameTest {
+
+    private final IParserFactory parserFactory = new SqlppParserFactory();
+
+    private final IRewriterFactory rewriterFactory = new SqlppRewriterFactory(parserFactory);
+
+    @Override
+    protected void testDataverseNameImpl(DataverseName dataverseName, List<String> parts, String expectedCanonicalForm,
+            String expectedDisplayForm) throws Exception {
+        super.testDataverseNameImpl(dataverseName, parts, expectedCanonicalForm, expectedDisplayForm);
+
+        String displayForm = dataverseName.toString();
+
+        // check parse-ability of the display form
+        IParser parser = parserFactory.createParser(displayForm);
+        Expression expr = parser.parseExpression();
+        IStatementRewriter rewriter = rewriterFactory.createStatementRewriter();
+
+        for (int i = parts.size() - 1; i >= 0; i--) {
+            String part = parts.get(i);
+            String parsedPart;
+            if (i > 0) {
+                Assert.assertEquals(Expression.Kind.FIELD_ACCESSOR_EXPRESSION, expr.getKind());
+                FieldAccessor faExpr = (FieldAccessor) expr;
+                parsedPart = faExpr.getIdent().getValue();
+                expr = faExpr.getExpr();
+            } else {
+                Assert.assertEquals(Expression.Kind.VARIABLE_EXPRESSION, expr.getKind());
+                VariableExpr varExpr = (VariableExpr) expr;
+                parsedPart = rewriter.toFunctionParameterName(varExpr.getVar());
+            }
+            Assert.assertEquals("unexpected parsed part at position " + i + " in " + parts, part, parsedPart);
+        }
+    }
+}
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 c454993..8b6f05f 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
@@ -29,11 +29,14 @@
 import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.asterix.common.config.GlobalConfig;
 import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.IParser;
 import org.apache.asterix.lang.common.base.IParserFactory;
@@ -41,6 +44,7 @@
 import org.apache.asterix.lang.common.base.IRewriterFactory;
 import org.apache.asterix.lang.common.base.Statement;
 import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
+import org.apache.asterix.lang.common.statement.CreateFunctionStatement;
 import org.apache.asterix.lang.common.statement.DataverseDecl;
 import org.apache.asterix.lang.common.statement.FunctionDecl;
 import org.apache.asterix.lang.common.statement.Query;
@@ -52,6 +56,8 @@
 import org.apache.asterix.metadata.bootstrap.MetadataBuiltinEntities;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
+import org.apache.asterix.metadata.entities.Dataverse;
+import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.test.common.ComparisonException;
 import org.apache.asterix.test.common.TestExecutor;
 import org.apache.asterix.testframework.context.TestCaseContext;
@@ -70,6 +76,7 @@
 
     private IParserFactory sqlppParserFactory = new SqlppParserFactory();
     private IRewriterFactory sqlppRewriterFactory = new SqlppRewriterFactory(sqlppParserFactory);
+    private Set<FunctionSignature> createdFunctions = new HashSet<>();
 
     @Override
     public void executeTest(String actualPath, TestCaseContext testCaseCtx, ProcessBuilder pb,
@@ -130,8 +137,11 @@
         GlobalConfig.ASTERIX_LOGGER.info(queryFile.toString());
         try {
             List<Statement> statements = parser.parse();
-            List<FunctionDecl> functions = getDeclaredFunctions(statements);
             DataverseName dvName = getDefaultDataverse(statements);
+            List<FunctionDecl> functions = getDeclaredFunctions(statements, dvName);
+            List<FunctionSignature> createdFunctionsList = getCreatedFunctions(statements, dvName);
+            createdFunctions.addAll(createdFunctionsList);
+
             MetadataProvider metadataProvider = mock(MetadataProvider.class);
 
             @SuppressWarnings("unchecked")
@@ -139,6 +149,15 @@
             when(metadataProvider.getDefaultDataverseName()).thenReturn(dvName);
             when(metadataProvider.getConfig()).thenReturn(config);
             when(config.get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS)).thenReturn("true");
+            when(metadataProvider.findDataverse(any(DataverseName.class))).thenAnswer(new Answer<Dataverse>() {
+                @Override
+                public Dataverse answer(InvocationOnMock invocation) {
+                    Object[] args = invocation.getArguments();
+                    final Dataverse mockDataverse = mock(Dataverse.class);
+                    when(mockDataverse.getDataverseName()).thenReturn((DataverseName) args[0]);
+                    return mockDataverse;
+                }
+            });
             when(metadataProvider.findDataset(any(DataverseName.class), anyString())).thenAnswer(new Answer<Dataset>() {
                 @Override
                 public Dataset answer(InvocationOnMock invocation) {
@@ -149,6 +168,20 @@
                     return mockDataset;
                 }
             });
+            when(metadataProvider.lookupUserDefinedFunction(any(FunctionSignature.class)))
+                    .thenAnswer(new Answer<Function>() {
+                        @Override
+                        public Function answer(InvocationOnMock invocation) {
+                            Object[] args = invocation.getArguments();
+                            FunctionSignature fs = (FunctionSignature) args[0];
+                            if (!createdFunctions.contains(fs)) {
+                                return null;
+                            }
+                            Function mockFunction = mock(Function.class);
+                            when(mockFunction.getSignature()).thenReturn(fs);
+                            return mockFunction;
+                        }
+                    });
 
             for (Statement st : statements) {
                 if (st.getKind() == Statement.Kind.QUERY) {
@@ -177,16 +210,38 @@
     }
 
     // Extracts declared functions.
-    private List<FunctionDecl> getDeclaredFunctions(List<Statement> statements) {
-        List<FunctionDecl> functionDecls = new ArrayList<FunctionDecl>();
+    private List<FunctionDecl> getDeclaredFunctions(List<Statement> statements, DataverseName defaultDataverseName) {
+        List<FunctionDecl> functionDecls = new ArrayList<>();
         for (Statement st : statements) {
             if (st.getKind() == Statement.Kind.FUNCTION_DECL) {
-                functionDecls.add((FunctionDecl) st);
+                FunctionDecl fds = (FunctionDecl) st;
+                FunctionSignature signature = fds.getSignature();
+                if (signature.getDataverseName() == null) {
+                    signature.setDataverseName(defaultDataverseName);
+                }
+                functionDecls.add(fds);
             }
         }
         return functionDecls;
     }
 
+    // Extracts created functions.
+    private List<FunctionSignature> getCreatedFunctions(List<Statement> statements,
+            DataverseName defaultDataverseName) {
+        List<FunctionSignature> createdFunctions = new ArrayList<>();
+        for (Statement st : statements) {
+            if (st.getKind() == Statement.Kind.CREATE_FUNCTION) {
+                CreateFunctionStatement cfs = (CreateFunctionStatement) st;
+                FunctionSignature signature = cfs.getFunctionSignature();
+                if (signature.getDataverseName() == null) {
+                    signature = new FunctionSignature(defaultDataverseName, signature.getName(), signature.getArity());
+                }
+                createdFunctions.add(signature);
+            }
+        }
+        return createdFunctions;
+    }
+
     // Gets the default dataverse for the input statements.
     private DataverseName getDefaultDataverse(List<Statement> statements) {
         for (Statement st : statements) {
@@ -208,14 +263,19 @@
                         + "org.apache.asterix.metadata.declared.MetadataProvider, "
                         + "org.apache.asterix.lang.common.rewrites.LangRewritingContext, " + "java.util.Collection)",
                 declaredFunctions, topExpr, metadataProvider, context, null);
-        PA.invokeMethod(rewriter, "inlineColumnAlias()");
+        PA.invokeMethod(rewriter, "resolveFunctionCalls()");
         PA.invokeMethod(rewriter, "generateColumnNames()");
         PA.invokeMethod(rewriter, "substituteGroupbyKeyExpression()");
         PA.invokeMethod(rewriter, "rewriteGroupBys()");
         PA.invokeMethod(rewriter, "rewriteSetOperations()");
+        PA.invokeMethod(rewriter, "inlineColumnAlias()");
+        PA.invokeMethod(rewriter, "rewriteWindowExpressions()");
+        PA.invokeMethod(rewriter, "rewriteGroupingSets()");
         PA.invokeMethod(rewriter, "variableCheckAndRewrite()");
+        PA.invokeMethod(rewriter, "extractAggregatesFromCaseExpressions()");
         PA.invokeMethod(rewriter, "rewriteGroupByAggregationSugar()");
-
+        PA.invokeMethod(rewriter, "rewriteWindowAggregationSugar()");
+        PA.invokeMethod(rewriter, "rewriteSpecialFunctionNames()");
     }
 
 }
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
index f7f7207..d08a960 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
@@ -105,9 +105,9 @@
             List<List<String>> partitioningKeys = new ArrayList<>();
             partitioningKeys.add(Collections.singletonList("key"));
             Dataset dataset = new Dataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
-                    NoMergePolicyFactory.NAME,
-                    null, new InternalDatasetDetails(null, InternalDatasetDetails.PartitioningStrategy.HASH,
-                            partitioningKeys, null, null, null, false, null),
+                    NoMergePolicyFactory.NAME, null,
+                    new InternalDatasetDetails(null, InternalDatasetDetails.PartitioningStrategy.HASH, partitioningKeys,
+                            null, null, null, false, null, null),
                     null, DatasetConfig.DatasetType.INTERNAL, DATASET_ID, 0);
             // create dataset
             TestNodeController.PrimaryIndexInfo indexInfo = nc.createPrimaryIndex(dataset, KEY_TYPES, RECORD_TYPE,
diff --git a/asterixdb/asterix-app/src/test/resources/TweetSent/roundtrip.py b/asterixdb/asterix-app/src/test/resources/TweetSent/roundtrip.py
new file mode 100644
index 0000000..37350be
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/TweetSent/roundtrip.py
@@ -0,0 +1,24 @@
+# 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.
+
+class Tests(object):
+
+    def roundtrip(self, *args):
+        return args
+
+    def warning(self):
+        raise ArithmeticError("oof")
diff --git a/asterixdb/asterix-app/src/test/resources/cc-compression.conf b/asterixdb/asterix-app/src/test/resources/cc-compression.conf
index 105d313..a3047a0 100644
--- a/asterixdb/asterix-app/src/test/resources/cc-compression.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc-compression.conf
@@ -38,7 +38,6 @@
 storage.buffercache.pagesize=32KB
 storage.buffercache.size=128MB
 storage.memorycomponent.globalbudget=512MB
-storage.compression.block=snappy
 
 [cc]
 address = 127.0.0.1
@@ -51,8 +50,9 @@
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB
-compiler.joinmemory=256KB
+compiler.joinmemory=768KB
 compiler.textsearchmemory=160KB
 compiler.windowmemory=192KB
 messaging.frame.size=4096
 messaging.frame.count=512
+storage.compression.block=snappy
diff --git a/asterixdb/asterix-app/src/test/resources/cc-ssl.conf b/asterixdb/asterix-app/src/test/resources/cc-ssl.conf
index 499e9fc..1c0a68f 100644
--- a/asterixdb/asterix-app/src/test/resources/cc-ssl.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc-ssl.conf
@@ -62,7 +62,7 @@
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB
-compiler.joinmemory=256KB
+compiler.joinmemory=768KB
 compiler.textsearchmemory=160KB
 compiler.windowmemory=192KB
 messaging.frame.size=4096
diff --git a/asterixdb/asterix-app/src/test/resources/cc-storage.conf b/asterixdb/asterix-app/src/test/resources/cc-storage.conf
index 41296a7..9e869c7 100644
--- a/asterixdb/asterix-app/src/test/resources/cc-storage.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc-storage.conf
@@ -36,7 +36,6 @@
 storage.buffercache.pagesize=32KB
 storage.buffercache.size=128MB
 storage.memorycomponent.globalbudget=512MB
-storage.compression.block=snappy
 
 [cc]
 address = 127.0.0.1
@@ -54,5 +53,6 @@
 compiler.windowmemory=192KB
 messaging.frame.size=4096
 messaging.frame.count=512
+storage.compression.block=snappy
 txn.log.checkpoint.pollfrequency=10
 txn.dataset.checkpoint.interval=10
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/cc.conf b/asterixdb/asterix-app/src/test/resources/cc.conf
index a113e3a..158eaa0 100644
--- a/asterixdb/asterix-app/src/test/resources/cc.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc.conf
@@ -18,7 +18,8 @@
 [nc/asterix_nc1]
 txn.log.dir=target/tmp/asterix_nc1/txnlog
 core.dump.dir=target/tmp/asterix_nc1/coredump
-iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+iodevices=target/tmp/asterix_nc1/iodevice1,
+iodevices=../asterix-server/target/tmp/asterix_nc1/iodevice2
 nc.api.port=19004
 #jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
 
diff --git a/asterixdb/asterix-app/src/test/resources/dapd/denorm_user_event.aql b/asterixdb/asterix-app/src/test/resources/dapd/denorm_user_event.aql
index 053fc58..fad1243 100644
--- a/asterixdb/asterix-app/src/test/resources/dapd/denorm_user_event.aql
+++ b/asterixdb/asterix-app/src/test/resources/dapd/denorm_user_event.aql
@@ -45,8 +45,8 @@
 
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
-declare dataset Users(UserType) primary key u_name on group1;
-declare dataset Events(EventType) primary key e_name on group1;
+declare dataset Users(UserType) primary key u_name with {"node-group":{"name":"group1"}};
+declare dataset Events(EventType) primary key e_name with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/denorm_user_event.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/dapd/q1.aql b/asterixdb/asterix-app/src/test/resources/dapd/q1.aql
index e0de0eb..b30641d 100644
--- a/asterixdb/asterix-app/src/test/resources/dapd/q1.aql
+++ b/asterixdb/asterix-app/src/test/resources/dapd/q1.aql
@@ -41,7 +41,7 @@
 
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
-declare dataset User(UserType) primary key name on group1;
+declare dataset User(UserType) primary key name with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/dapd/q2.aql b/asterixdb/asterix-app/src/test/resources/dapd/q2.aql
index 3b46729..0b8ea6c 100644
--- a/asterixdb/asterix-app/src/test/resources/dapd/q2.aql
+++ b/asterixdb/asterix-app/src/test/resources/dapd/q2.aql
@@ -55,7 +55,7 @@
 
 drop dataset Event;
 declare dataset Event(EventType)
-  primary key event_id on group1;
+  primary key event_id with {"node-group":{"name":"group1"}};
 
 load dataset Event
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-int.aql b/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-int.aql
index dfd4d1f..88dc20f 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-int.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-int.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/mycustomers.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-str.aql b/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-str.aql
index dea955e..a281084 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-str.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/local/dataset-filter-str.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/mycustomers.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/local/join-cust-ord.aql b/asterixdb/asterix-app/src/test/resources/demo0927/local/join-cust-ord.aql
index e2dca16..1c66f44 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/local/join-cust-ord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/local/join-cust-ord.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custorder.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/01-load-cust.aql b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/01-load-cust.aql
index e309fec..e295730 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/01-load-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/01-load-cust.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers from rainbow-01:"/home/hyracks/demo-data/customerData.json";
 //  delete dataset Customers;
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/02-filter-cust.aql b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/02-filter-cust.aql
index 60fe34c..ad3a3c4 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/02-filter-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/02-filter-cust.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/hyracks/mycustomers.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/03-load-ord.aql b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/03-load-ord.aql
index 5bc0242..299e2b5 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/03-load-ord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/03-load-ord.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 load dataset Orders from rainbow-01:"/home/hyracks/demo-data/orderData.json";
 // delete dataset Orders;
diff --git a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/04-join-custord.aql b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/04-join-custord.aql
index 2c0a184..abe03f4 100644
--- a/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/04-join-custord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo0927/rainbow/04-join-custord.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/hyracks/custorder.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/local/01-load-cust.aql b/asterixdb/asterix-app/src/test/resources/demo1112/local/01-load-cust.aql
index 768c844..78fb98a 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/local/01-load-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/local/01-load-cust.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/local/02-filter-cust.aql b/asterixdb/asterix-app/src/test/resources/demo1112/local/02-filter-cust.aql
index 5feb7ac..1127abe 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/local/02-filter-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/local/02-filter-cust.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/mycustomers.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/local/03-load-ord.aql b/asterixdb/asterix-app/src/test/resources/demo1112/local/03-load-ord.aql
index 6866f18..9dc69135b 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/local/03-load-ord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/local/03-load-ord.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 load dataset Orders 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/local/04-join-custord.aql b/asterixdb/asterix-app/src/test/resources/demo1112/local/04-join-custord.aql
index 90d5543..8033a5d 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/local/04-join-custord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/local/04-join-custord.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custorder.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/01-load-cust.aql b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/01-load-cust.aql
index 6a89f63..8858936 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/01-load-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/01-load-cust.aql
@@ -38,7 +38,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers from rainbow-01:"/home/onose/demo-data/customerData.adm";
 // drop dataset Customers;
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/03-load-ord.aql b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/03-load-ord.aql
index 2d6db81..2fb2740 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/03-load-ord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/03-load-ord.aql
@@ -30,6 +30,6 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 load dataset Orders from rainbow-01:"/home/onose/demo-data/orderData.adm";
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/04-join-custord.aql b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/04-join-custord.aql
index ea6756a..0fd3e75 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/04-join-custord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/04-join-custord.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/onose/hyracks-rainbow/results/custorder.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/05-count-custord.aql b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/05-count-custord.aql
index 4eb0312..db3c485 100644
--- a/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/05-count-custord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo1112/rainbow/05-count-custord.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/onose/hyracks-rainbow/results/custorder.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/01-load-cust.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/01-load-cust.aql
index 12a0207..0665520 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/01-load-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/01-load-cust.aql
@@ -36,7 +36,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/02-filter-cust.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/02-filter-cust.aql
index a4d27b1..c252b5a 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/02-filter-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/02-filter-cust.aql
@@ -36,7 +36,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/02-filter-cust.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/03-count-cust-age.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/03-count-cust-age.aql
index 9ba6702..a4a6c4d 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/03-count-cust-age.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/03-count-cust-age.aql
@@ -36,7 +36,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/03-count-cust-age.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/04-load-ord.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/04-load-ord.aql
index b447d46..a9f6c6d 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/04-load-ord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/04-load-ord.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 load dataset Orders 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/05-count-param1.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/05-count-param1.aql
index a2e5eb1..722ea81 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/05-count-param1.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/05-count-param1.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/05-count-param1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/06-count-custord.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/06-count-custord.aql
index e72a79d..67be87d 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/06-count-custord.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/06-count-custord.aql
@@ -46,9 +46,9 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/06-count-custord.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/101-load-dblp.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/101-load-dblp.aql
index b1dc420..94aafe0 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/101-load-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/101-load-dblp.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType)
- primary key id on group1;
+ primary key id with {"node-group":{"name":"group1"}};
 
 load dataset DBLP 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/102-fuzzy-select.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/102-fuzzy-select.aql
index 1d7a2ca..e0f0234 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/102-fuzzy-select.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/102-fuzzy-select.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType)
- primary key id on group1;
+ primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/102-fuzzy-select.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/local/110-self-join-dblp.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/local/110-self-join-dblp.aql
index df6f75a..8d953b8 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/local/110-self-join-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/local/110-self-join-dblp.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/110-self-join-dblp.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/02-filter-cust.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/02-filter-cust.aql
index 9762c2e..2154c97 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/02-filter-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/02-filter-cust.aql
@@ -36,7 +36,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/onose/hyracks-rainbow/results/02-filter-cust.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/05-count-param1.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/05-count-param1.aql
index 3371aea..22d8b7b 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/05-count-param1.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/05-count-param1.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to rainbow-01:"/home/onose/hyracks-rainbow/results/05-count-param1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/101-load-dblp.aql b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/101-load-dblp.aql
index 1d865ff..d1efd80 100644
--- a/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/101-load-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/demo_aql/rainbow/101-load-dblp.aql
@@ -30,7 +30,7 @@
 declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03, rainbow-04, rainbow-05;
 
 declare dataset DBLP(DBLPType)
- primary key id on group1;
+ primary key id with {"node-group":{"name":"group1"}};
 
 load dataset DBLP from
   rainbow-01:"/home/onose/demo-data/dblp-id.txt" delimited by ":";
diff --git a/asterixdb/asterix-app/src/test/resources/dmlts/scripts/enlist-scan-cust.aql b/asterixdb/asterix-app/src/test/resources/dmlts/scripts/enlist-scan-cust.aql
index e3baaea..d8eb051 100644
--- a/asterixdb/asterix-app/src/test/resources/dmlts/scripts/enlist-scan-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/dmlts/scripts/enlist-scan-cust.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 enlist dataset Customers;
 
diff --git a/asterixdb/asterix-app/src/test/resources/dmlts/scripts/load-cust.aql b/asterixdb/asterix-app/src/test/resources/dmlts/scripts/load-cust.aql
index a74bdae..7c27cb3 100644
--- a/asterixdb/asterix-app/src/test/resources/dmlts/scripts/load-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/dmlts/scripts/load-cust.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/amerix/30-filter-dblp.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/amerix/30-filter-dblp.aql
index 64b9e35..5eb85d6 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/amerix/30-filter-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/amerix/30-filter-dblp.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/amerix.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/000-1-char-at.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/000-1-char-at.aql
index 450ef16..114f9c9 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/000-1-char-at.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/000-1-char-at.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/dblp.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/030-filter.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/030-filter.aql
index b601756..6c62d26 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/030-filter.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/dblp/030-filter.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'/tmp/dblp.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/010-load-dblp.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/010-load-dblp.aql
index 85d29ce..fcceee1 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/010-load-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/010-load-dblp.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 // load dataset DBLP from asterix_nc1:'/asterix/asterix-app/data/pub-small/dblp-small-id.txt'
 load dataset DBLP 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/020-drop-dblp.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/020-drop-dblp.aql
index 407f455..b59ada2 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/020-drop-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/020-drop-dblp.aql
@@ -29,6 +29,6 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 drop dataset DBLP;
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/030-filter-dblp.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/030-filter-dblp.aql
index 3dea415..b97bfb7 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/030-filter-dblp.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/030-filter-dblp.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'/tmp/pub.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/040-load-csx.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/040-load-csx.aql
index 28d08f3..ccebb9e 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/040-load-csx.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/040-load-csx.aql
@@ -29,7 +29,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset CSX(CSXType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 // load dataset CSX from asterix_nc1:'/asterix/asterix-app/data/pub-small/csx-small-id.txt'
 load dataset  CSX
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/050-drop-csx.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/050-drop-csx.aql
index 03c0b00..3e48c17 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/050-drop-csx.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/050-drop-csx.aql
@@ -29,6 +29,6 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset CSX(CSXType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 drop dataset CSX;
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/060-filter-csx.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/060-filter-csx.aql
index bbe1ad9..aad3065 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/060-filter-csx.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/060-filter-csx.aql
@@ -31,7 +31,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset CSX(CSXType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'/tmp/pub.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/070-join-aql.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/070-join-aql.aql
index c49131b..9c8e762 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/070-join-aql.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/070-join-aql.aql
@@ -37,7 +37,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 declare dataset CSX(CSXType) 
   primary key id on group1;
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/080-join-op.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/080-join-op.aql
index 802accf..bd8d48c 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/080-join-op.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/pub/080-join-op.aql
@@ -37,7 +37,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 declare dataset CSX(CSXType) 
   primary key id on group1;
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/030-filter-users.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/030-filter-users.aql
index a73db6e..3051b11 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/030-filter-users.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/030-filter-users.aql
@@ -28,7 +28,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Users(UserType) 
-  primary key uid on group1;
+  primary key uid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'/tmp/users.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/060-fililter-visitors.aql b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/060-fililter-visitors.aql
index d5634e7..2f3e103 100644
--- a/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/060-fililter-visitors.aql
+++ b/asterixdb/asterix-app/src/test/resources/fuzzyjoin/users-visitors/060-fililter-visitors.aql
@@ -28,7 +28,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Visitors(VisitorType) 
-  primary key vid on group1;
+  primary key vid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'/tmp/visitors.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta13/meta13.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta13/meta13.1.ddl.aql
index 52d7d19..8cf7085 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta13/meta13.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta13/meta13.1.ddl.aql
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description  : Create functions and drop that function and query metadata 
+ * Description  : Create functions and drop that function and query metadata
  *              : to verify entries in Function dataset for the dropped UDF.
  * Expected Res : Success
  * Date         : Sep 17 2012
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution.aql b/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution.aql
index 43f9417..9f4ac09 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution.aql
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution.aql
@@ -55,7 +55,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType)
-  primary key cid, name on group1;
+  primary key cid, name with {"node-group":{"name":"group1"}};
 
 create nodegroup group1 on asterix_nc1, asterix_nc2;
 
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution/failure_subsequent_no_execution.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution/failure_subsequent_no_execution.1.ddl.aql
index 43f9417..9f4ac09 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution/failure_subsequent_no_execution.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/transaction/failure_subsequent_no_execution/failure_subsequent_no_execution.1.ddl.aql
@@ -55,7 +55,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType)
-  primary key cid, name on group1;
+  primary key cid, name with {"node-group":{"name":"group1"}};
 
 create nodegroup group1 on asterix_nc1, asterix_nc2;
 
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta06/meta06.1.adm b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta06/meta06.1.adm
index 9df885d..a7ebb36 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta06/meta06.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta06/meta06.1.adm
@@ -1 +1 @@
-{ "DataverseName": "testdv", "Name": "fun01", "Arity": "0", "Params": [  ], "ReturnType": "any", "Definition": "\"This is an AQL Bodied UDF\"", "Language": "AQL", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ] }
\ No newline at end of file
+{ "DataverseName": "testdv", "Name": "fun01", "Arity": "0", "Params": [  ], "ReturnType": "", "Definition": "\"This is an AQL Bodied UDF\"", "Language": "AQL", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ] }
diff --git a/asterixdb/asterix-app/src/test/resources/misc/split01.aql b/asterixdb/asterix-app/src/test/resources/misc/split01.aql
index 804611a..5b48a7a 100644
--- a/asterixdb/asterix-app/src/test/resources/misc/split01.aql
+++ b/asterixdb/asterix-app/src/test/resources/misc/split01.aql
@@ -48,9 +48,9 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/split01.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/cust-load.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/cust-load.aql
index 67fa306..33e089c 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/cust-load.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/cust-load.aql
@@ -35,7 +35,7 @@
 declare nodegroup group1 on asterix_nc1;
 
 declare dataset Dataverse(DataverseType)
-  primary key dataverseName on group1;
+  primary key dataverseName with {"node-group":{"name":"group1"}};
 
 for $c in dataset('Dataverse')
 return $c
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/emp-load.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/emp-load.aql
index 8919f97..e8fc76b 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/emp-load.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/emp-load.aql
@@ -38,6 +38,6 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset Emp(EmpType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Emp from asterix_nc1:"/home/yasser/Dropbox/Research/data/EmpData.json";
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/join-01.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/join-01.aql
index a4638db..b4fa55f 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/join-01.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/join-01.aql
@@ -52,9 +52,9 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_join_1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/numeric-drop.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/numeric-drop.aql
index 6b0ba33..2bc4cbd 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/numeric-drop.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/numeric-drop.aql
@@ -33,6 +33,6 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset Numeric(ExampleType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
   
 drop dataset Numeric;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/ord-load.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/ord-load.aql
index d36692f..d526f2f 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/ord-load.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/ord-load.aql
@@ -33,6 +33,6 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 load dataset Orders from asterix_nc1:"/home/yasser/Dropbox/Research/data/orderData.json";
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/spatial-scan.aql b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/spatial-scan.aql
index c9c06989..b6bfbfd 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/spatial-scan.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/custord/local/spatial-scan.aql
@@ -34,7 +34,7 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset Spatial(ExampleType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_spatial_3.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltables-loadAsOpen.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltables-loadAsOpen.aql
index 9eaccdf..8db50fb 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltables-loadAsOpen.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltables-loadAsOpen.aql
@@ -57,21 +57,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 //load dataset LineItems from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/lineitem.json" pre-sorted;
 //load dataset Orders from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/orders.json" pre-sorted;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltablesAsopen-scan.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltablesAsopen-scan.aql
index 759c9c0..fc85cc2 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltablesAsopen-scan.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/alltablesAsopen-scan.aql
@@ -97,21 +97,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Desktop/result_scan.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-drop.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-drop.aql
index 6a9ce68..f3e6a8c 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-drop.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-drop.aql
@@ -108,21 +108,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 drop dataset LineItems;
 //drop dataset Orders;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-load.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-load.aql
index bbb71d1..9ce82f5 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-load.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-load.aql
@@ -108,21 +108,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 //load dataset LineItems from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/lineitem.json" pre-sorted;
 //load dataset Orders from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/orders.json" pre-sorted;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q1.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q1.aql
index 6f39833..2d7dc47 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q1.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q1.aql
@@ -42,7 +42,7 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_1.adm";
  
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q3.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q3.aql
index 4ec89d7..c07998f 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q3.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q3.aql
@@ -67,9 +67,9 @@
 declare dataset LineItems(LineItemType)
   primary key l_orderkey, l_linenumber on group1;
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_3.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q9.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q9.aql
index 7640d2a..9e66584 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q9.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-q9.aql
@@ -92,17 +92,17 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_9.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-scan.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-scan.aql
index a861c09..66c30cc 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-scan.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/closedtables-scan.aql
@@ -108,21 +108,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Desktop/result_scan.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-drop.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-drop.aql
index db51750..31a19c7 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-drop.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-drop.aql
@@ -57,21 +57,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 drop dataset LineItems;
 //drop dataset Orders;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-load.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-load.aql
index 3b06aa0..89b2590 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-load.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-load.aql
@@ -57,21 +57,21 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 //load dataset LineItems from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/lineitem.json" pre-sorted;
 //load dataset Orders from asterix_nc1:"/home/yasser/Dropbox/Research/data/tpch_data/alldata/jsonformat/orders.json" pre-sorted;
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q1.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q1.aql
index 1b3fd79..cd41928 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q1.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q1.aql
@@ -28,7 +28,7 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_open_1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q3.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q3.aql
index 98296f8..9c319eb 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q3.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q3.aql
@@ -36,7 +36,7 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
   primary key o_orderkey on group1;
 declare dataset Customers(CustomerType) 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q5.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q5.aql
index 94876a5..408c5a5f 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q5.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q5.aql
@@ -48,17 +48,17 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_open_5.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q9.aql b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q9.aql
index d2642ee..dccef80 100644
--- a/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q9.aql
+++ b/asterixdb/asterix-app/src/test/resources/nontagged/tpch/local/opentables-q9.aql
@@ -57,17 +57,17 @@
 set format "org.apache.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_9.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/common-expr-01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/common-expr-01.sqlpp
new file mode 100644
index 0000000..30249d8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/common-expr-01.sqlpp
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+/*
+ * Test common expression extraction
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+CREATE TYPE test.TestType AS
+{
+  id : INTEGER
+};
+
+CREATE DATASET t1(TestType) PRIMARY KEY id;
+
+WITH DT_PATTERN AS "YYYY-MM-DDThh:mm:ss"
+
+SELECT
+  v2.c11,
+  v1.c3,
+  SUM(v1.c4)
+FROM (
+  SELECT
+    c1,
+    c2,
+    GET_MONTH(PRINT_DATETIME(PARSE_DATETIME(c1,DT_PATTERN),DT_PATTERN)) AS c3,
+    (CASE WHEN CONTAINS(c2, "x") THEN 1 ELSE 0 END) AS c4
+  FROM test.t1
+) AS v1
+INNER JOIN (
+  SELECT
+    GET_HOUR(DURATION_FROM_INTERVAL(INTERVAL(
+      PARSE_DATETIME(PRINT_DATETIME(CURRENT_DATETIME(),DT_PATTERN),DT_PATTERN),
+      PARSE_DATETIME(MAX(PRINT_DATETIME(PARSE_DATETIME(t1.c5,DT_PATTERN),DT_PATTERN)),DT_PATTERN)
+    ))) AS c11
+  FROM test.t1
+) AS v2 ON TRUE
+WHERE
+  GET_DAY(DURATION_FROM_INTERVAL(INTERVAL(
+    PARSE_DATETIME(PRINT_DATETIME(CURRENT_DATETIME(),DT_PATTERN),DT_PATTERN),
+    PARSE_DATETIME(v1.c1,DT_PATTERN)
+  ))) <= 30
+  AND
+  (v1.c2 NOT IN ["a","b","c","d"])
+GROUP BY
+  v1.c3, v2.c11;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-complex.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-complex.aql
index c3a2988..9cbd549 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-complex.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-complex.aql
@@ -31,7 +31,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType) 
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset DBLP 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-simple.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-simple.aql
index fa272ef..fe0c6de 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-simple.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/consolidate-selects-simple.aql
@@ -26,7 +26,7 @@
   c_address: string, 
   c_nationkey: int32, 
   c_phone: string, 
-  c_acctbal: double, 
+  c_acctbal: double,
   c_mktsegment: string,
   c_comment: string
 }
@@ -34,7 +34,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/consolidate-selects-simple.aql";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/cust_group_no_agg.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/cust_group_no_agg.sqlpp
index 3c82655..3f64adf 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/cust_group_no_agg.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/cust_group_no_agg.sqlpp
@@ -39,7 +39,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/.adm";
 select element name
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/denorm-cust-order.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/denorm-cust-order.sqlpp
index 508d6ec..5205324 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/denorm-cust-order.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/denorm-cust-order.sqlpp
@@ -57,9 +57,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key oid on group1;
+create  dataset Orders(OrderType) primary key oid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custorder.adm";
 select element {'cid':cid,'cust':(from g select c),'cnt-orders':count(o),'orders': (from g select o)}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_0.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_0.sqlpp
new file mode 100644
index 0000000..33d826b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_0.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+// filter on meta and query on record
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on attr;
+
+select * from KVStore WHERE attr > 10;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_1.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_1.sqlpp
new file mode 100644
index 0000000..3a5743c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_1.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+// filter on meta and query on meta
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+
+select * from KVStore WHERE meta().seq > 11;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_2.sqlpp
new file mode 100644
index 0000000..415e1a9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_2.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+// filter on meta key and query on meta key
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().`key`;
+
+select k, meta() as meta from KVStore k WHERE meta().`key` > 12;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_3.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_3.sqlpp
new file mode 100644
index 0000000..4cca505
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_3.sqlpp
@@ -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.
+ */
+// filter on meta and query on record
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32,
+  attr: int64
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on attr;
+
+select * from KVStore WHERE attr > 10;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_4.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_4.sqlpp
new file mode 100644
index 0000000..cfd4363
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_4.sqlpp
@@ -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.
+ */
+// filter on meta and query on meta
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32,
+  attr: int64
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().attr;
+
+select * from KVStore WHERE meta().attr > 10;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_5.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_5.sqlpp
new file mode 100644
index 0000000..0383e88
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_5.sqlpp
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+// filter on meta and query on meta with a composite primary key
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  attr1: int64,
+  attr2: int64
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  seq:int64,
+  lockTime:int32,
+  attr: int64
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key attr1, attr2 with filter on meta().attr;
+
+select * from KVStore WHERE meta().attr > 10;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_0.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_0.sqlpp
new file mode 100644
index 0000000..cfa2f00
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_0.sqlpp
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+create type DocumentType as open{
+  location: point,
+  area_code: string,
+  text: string
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+CREATE TYPE OfficerLocation AS {
+  oid: int,
+  location: point,
+  vehicle: string
+};
+
+
+CREATE DATASET KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+CREATE DATASET OfficerLocations(OfficerLocation) PRIMARY KEY oid;
+
+CREATE INDEX s_location ON KVStore(location) type RTREE;
+CREATE INDEX o_location ON OfficerLocations(location) type RTREE;
+
+
+SELECT t FROM KVStore t, OfficerLocations o
+WHERE spatial_intersect(create_circle(t.location, 100.0), o.location) AND meta(t).seq > 100;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_1.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_1.sqlpp
new file mode 100644
index 0000000..4d74d24
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_1.sqlpp
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+create type DocumentType as open{
+  location: point,
+  area_code: string,
+  text: string
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+CREATE TYPE OfficerLocation AS {
+  oid: int,
+  location: point,
+  vehicle: string
+};
+
+
+CREATE DATASET KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+CREATE DATASET OfficerLocations(OfficerLocation) PRIMARY KEY oid;
+
+
+SELECT t FROM KVStore t, OfficerLocations o
+WHERE spatial_intersect(create_circle(t.location, 100.0), o.location) AND meta(t).seq > 100;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_2.sqlpp
new file mode 100644
index 0000000..a63c3d31
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_2.sqlpp
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+create type DocumentType as open{
+  location: point,
+  area_code: string,
+  attr1: int64,
+  text: string
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+CREATE TYPE OfficerLocation AS {
+  oid: int,
+  location: point,
+  attr2: int64
+};
+
+
+CREATE DATASET KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+CREATE DATASET OfficerLocations(OfficerLocation) PRIMARY KEY oid;
+
+CREATE INDEX s_location ON KVStore(attr1);
+CREATE INDEX o_location ON OfficerLocations(location) type RTREE;
+
+
+SELECT t FROM KVStore t, OfficerLocations o
+WHERE t.attr1 = o.attr2 AND meta(t).seq > 100;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_3.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_3.sqlpp
new file mode 100644
index 0000000..5ade370
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/filter_on_meta_with_idx_3.sqlpp
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+create type DocumentType as open{
+  location: point,
+  area_code: string,
+  attr1: int64,
+  text: string
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+CREATE TYPE OfficerLocation AS {
+  oid: int,
+  location: point,
+  attr2: int64
+};
+
+
+CREATE DATASET KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+CREATE DATASET OfficerLocations(OfficerLocation) PRIMARY KEY oid;
+
+
+SELECT t FROM KVStore t, OfficerLocations o
+WHERE t.attr1 = o.attr2 AND meta(t).seq > 100;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-selflink.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-selflink.aql
index 1b3f930..cbc88ce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-selflink.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-selflink.aql
@@ -46,8 +46,8 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
-create dataset DBLP(DBLPType) primary key id on group1;
-create dataset CSX(CSXType) primary key id on group1;
+create dataset DBLP(DBLPType) primary key id with {"node-group":{"name":"group1"}};
+create dataset CSX(CSXType) primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'rttest/test.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-simple.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-simple.aql
index b0beb4d..166f305 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-simple.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx-simple.aql
@@ -44,8 +44,8 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
-create dataset DBLP(DBLPType) primary key id on group1;
-create dataset CSX(CSXType) primary key id on group1;
+create dataset DBLP(DBLPType) primary key id with {"node-group":{"name":"group1"}};
+create dataset CSX(CSXType) primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'rttest/fj-dblp-csx.adm';
 for $s in dataset('DBLP')
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx.aql
index c86c8b9..048df9e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-dblp-csx.aql
@@ -40,8 +40,8 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
-create dataset DBLP(DBLPType) primary key id on group1;
-create dataset CSX(CSXType) primary key id on group1;
+create dataset DBLP(DBLPType) primary key id with {"node-group":{"name":"group1"}};
+create dataset CSX(CSXType) primary key id with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:'rttest/fj-dblp-csx.adm';
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-phase1.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-phase1.aql
index 6ef16b5..9a436ed 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-phase1.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/fj-phase1.aql
@@ -37,10 +37,10 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Users(UserType) 
-  primary key uid on group1;
+  primary key uid with {"node-group":{"name":"group1"}};
 
 create dataset Visitors(VisitorType) 
-  primary key vid on group1;
+  primary key vid with {"node-group":{"name":"group1"}};
 
 
 // set simfunction "jaccard";
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/inlined_q18_large_volume_customer.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/inlined_q18_large_volume_customer.aql
index f5537db..e0580a2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/inlined_q18_large_volume_customer.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/inlined_q18_large_volume_customer.aql
@@ -67,11 +67,11 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 create dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/inlined_q18_large_volume_customer.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/introhashpartitionmerge.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/introhashpartitionmerge.sqlpp
index 9921e58..67587dd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/introhashpartitionmerge.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/introhashpartitionmerge.sqlpp
@@ -33,7 +33,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank on group1;
+create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/introhashpartitionmerge.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_01.sqlpp
index 0e7fc0b..9b5e045 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_01.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/join-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'l_partkey':li.l_partkey}
 from  LineItems as li,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_02.sqlpp
index 7247cdc..9c188bc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/join-super-key_02.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/join-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'l_partkey':li.l_partkey}
 from  PartSupp as ps,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_01.sqlpp
index 38bd3e3..3fe8de3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_01.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/loj-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'li':li,'partsupp':partsupp}
 from  LineItems as li
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_02.sqlpp
index 9705785..d6254ab 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/loj-super-key_02.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/loj-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'partsupp':ps,'li':items}
 from  PartSupp as ps
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj2.sqlpp
index aae756c..001da3f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj2.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj2.sqlpp
@@ -72,11 +72,11 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/nested_loj.adm";
 select element {'cust':c,'orders':orders}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj3.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj3.aql
index 2deac67..4022e84 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj3.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nested_loj3.aql
@@ -75,13 +75,13 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 create dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 create dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/nested_loj.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby.aql
index 794a0ab..4ed67ae 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"rttest/gby-using-orderby-desc.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby_ps.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby_ps.sqlpp
index 254bd26..7bebb74 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby_ps.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orderby-desc-using-gby_ps.sqlpp
@@ -47,7 +47,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/gby-using-orderby-desc.adm";
 set `compiler.sort.parallel` "true";
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-aggreg.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-aggreg.aql
index 18ce36b..cd18239 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-aggreg.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-aggreg.aql
@@ -34,7 +34,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key oid on group1;
+  primary key oid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/orders-aggreg.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01.sqlpp
index 190f2f2..b010a1f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01_ps.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01_ps.sqlpp
index 7764086..1c5bfaa 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01_ps.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_01_ps.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02.sqlpp
index 64e2395..deb8b4c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02_ps.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02_ps.sqlpp
index 3814e1c..f5f47b6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02_ps.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive-open_02_ps.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01.sqlpp
index 4fe9e18..5243efd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01_ps.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01_ps.sqlpp
index 80cec87..5ecea40 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01_ps.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_01_ps.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02.sqlpp
index c16810f..fa77884 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02_ps.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02_ps.sqlpp
index de4604e..cb60838 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02_ps.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-conjunctive_02_ps.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-index-only.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-index-only.aql
index 26f9d73..df3f03e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-index-only.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-index-only.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_Orders_Custkey on Orders(o_custkey);
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open-index-only.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open-index-only.aql
index 2e9095a..2857ed4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open-index-only.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open-index-only.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_Orders_Custkey on Orders(o_custkey);
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open.aql
index 9547e6a..8780af2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search-open.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_Orders_Custkey on Orders(o_custkey);
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search.aql
index 3b49d9c..c464258 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/orders-index-search.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_Orders_Custkey on Orders(o_custkey);
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search-open.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search-open.aql
index f59d88a..de8dc87 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search-open.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search-open.aql
@@ -39,7 +39,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 
 write output to asterix_nc1:"/tmp/prim_index_search.adm";
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search.aql
index acba88d..2d2f79c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/prim-idx-search.aql
@@ -39,7 +39,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 
 write output to asterix_nc1:"/tmp/prim_index_search.adm";
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/pull_select_above_eq_join.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/pull_select_above_eq_join.sqlpp
index 8634de5..b03b85b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/pull_select_above_eq_join.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/pull_select_above_eq_join.sqlpp
@@ -43,9 +43,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Users(UserType) primary key uid on group1;
+create  dataset Users(UserType) primary key uid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Visitors(VisitorType) primary key vid on group1;
+create  dataset Visitors(VisitorType) primary key vid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/pull-select-above-eq-join.adm";
 select element {'uid':user.uid,'vid':visitor.vid}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push-project-through-group.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push-project-through-group.sqlpp
index 535ae58..7807359 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push-project-through-group.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push-project-through-group.sqlpp
@@ -36,7 +36,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/fuzzyjoin_080.adm";
 select element {'id':paperDBLP.id,'matches':matches}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push_limit.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push_limit.aql
index 1106cae..6198c45 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push_limit.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/push_limit.aql
@@ -34,7 +34,7 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/push_limit.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q03_shipping_priority.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q03_shipping_priority.aql
index fcc9def..3002280 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q03_shipping_priority.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q03_shipping_priority.aql
@@ -67,11 +67,11 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 create dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q3_shipping_priority.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q05_local_supplier_volume.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q05_local_supplier_volume.aql
index d90b699..7868fcc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q05_local_supplier_volume.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q05_local_supplier_volume.aql
@@ -90,17 +90,17 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 create dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 create dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 create dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 create dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/tmp/q5_local_supplier.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q1.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q1.aql
index 2feb94f..17734e3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q1.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q1.aql
@@ -45,7 +45,7 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
-create dataset User(UserType) primary key name on group1;
+create dataset User(UserType) primary key name with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q1.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q2.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q2.aql
index 15eb3ef..5e8018a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q2.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/q2.aql
@@ -52,7 +52,7 @@
 
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
-create dataset Event(EventType) primary key name on group1;
+create dataset Event(EventType) primary key name with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q2.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-2.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-2.aql
index ae8f860..b5f85b0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-2.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-2.aql
@@ -59,9 +59,9 @@
     asterix_nc1;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey with {"node-group":{"name":"group_test"}};
 
 declare function tmp()
 {
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-3.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-3.aql
index 78e93d8..e044e87 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-3.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-3.aql
@@ -59,9 +59,9 @@
     asterix_nc2;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey with {"node-group":{"name":"group_test"}};
 
 declare function tmp()
 {
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-4.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-4.aql
index 05b1c36..a811380 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-4.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343-4.aql
@@ -58,9 +58,9 @@
     asterix_nc1;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey with {"node-group":{"name":"group_test"}};
 
 create index lineitem_shipdateIx on LineItem (l_shipdate);
 create index lineitem_receiptdateIx on LineItem (l_receiptdate);
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343.aql
index f94f8b0..d99210d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1343.aql
@@ -58,9 +58,9 @@
     asterix_nc1;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey with {"node-group":{"name":"group_test"}};
 
 declare function tmp()
 {
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-index-only.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-index-only.aql
index 54bcef1..2c1deb3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-index-only.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-index-only.aql
@@ -35,7 +35,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open-index-only.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open-index-only.aql
index 8e7420e..03acb15 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open-index-only.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open-index-only.aql
@@ -35,7 +35,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open.aql
index a79face..f0f2855 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index-open.aql
@@ -35,7 +35,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index.aql
index 5636d16..6a2b459 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/rtree-secondary-index.aql
@@ -35,7 +35,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-all.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-all.aql
index 103ccb5..0e37727 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-all.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-all.aql
@@ -48,9 +48,9 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems_q1(LineItemType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 create dataset LineID(LineIDType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 delete $l from dataset LineItems_q1;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-rtree-secondary-index.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-rtree-secondary-index.aql
index 6ac940c..06a8a9e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-rtree-secondary-index.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete-rtree-secondary-index.aql
@@ -35,7 +35,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete.aql
index c140021..4247764 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-delete.aql
@@ -49,9 +49,9 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems_q1(LineItemType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 create dataset LineID(LineIDType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 delete $l from dataset LineItems_q1 where $l.l_shipdate <= '1998-09-02';
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert-secondary-index.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert-secondary-index.aql
index c1de7b7..f98d5c7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert-secondary-index.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert-secondary-index.aql
@@ -48,10 +48,10 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems_q1(LineItemType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 create dataset LineID(LineIDType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_LineID_partkey on LineID(l_partkey);
 create index idx_LineID_suppkey on LineID(l_suppkey);
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert.aql
index d501fc0..289d4f0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/scan-insert.aql
@@ -48,10 +48,10 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset LineItems_q1(LineItemType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 create dataset LineID(LineIDType)
-  primary key l_orderkey on group1;
+  primary key l_orderkey with {"node-group":{"name":"group1"}};
 
 insert into dataset LineID (
 for $l in dataset('LineItems_q1')
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-rtree-secondary-index.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-rtree-secondary-index.aql
index eedaecb..734a3b8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-rtree-secondary-index.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-rtree-secondary-index.aql
@@ -41,7 +41,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset MyData(MyRecord)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 load dataset MyData 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-secondary-btree-index-3.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-secondary-btree-index-3.sqlpp
new file mode 100644
index 0000000..d634a26
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/skip-index/skip-secondary-btree-index-3.sqlpp
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Skip secondary index for IN operator
+ * Expected Res : Success
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type test.TestType as
+{
+  id : integer,
+  fname : string,
+  lname : string
+};
+
+create  dataset testdst(TestType) primary key id;
+
+create  index sec_Idx  on testdst (fname) type btree;
+
+select element emp
+from  testdst as emp
+where emp.fname /*+ skip-index */ in ['Max', 'Roger']
+;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/sort-cust.aql b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/sort-cust.aql
index 3eda850..597fc13 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/sort-cust.aql
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/sort-cust.aql
@@ -45,7 +45,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType)
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custlimit.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-01.sqlpp
new file mode 100644
index 0000000..bde8e75
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-01.sqlpp
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in query plan
+ */
+
+// requesttype=application/json
+
+// param $p_fname:json="Julio"
+// param $p_lname:json=null
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type test.Emp as
+ closed {
+  id : bigint,
+  fname : string,
+  lname : string,
+  age : bigint,
+  dept : string
+};
+
+create  dataset employee(Emp) primary key id;
+
+create  index idx_employee_fname on employee (fname) type btree;
+
+create  index idx_employee_lname on employee (lname) type btree;
+
+select l.id, l.fname, l.lname, l.age
+from employee as l
+where
+  ($p_fname is null or l.fname = $p_fname )
+  and
+  ($p_lname is null or l.lname = $p_lname)
+order by l.id;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-02.sqlpp
new file mode 100644
index 0000000..e74acc5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-index-02.sqlpp
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in query plan
+ */
+
+// requesttype=application/json
+
+// param $p_fname:json="Julio"
+// param $p_lname:json="Isa"
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type test.Emp as
+ closed {
+  id : bigint,
+  fname : string,
+  lname : string,
+  age : bigint,
+  dept : string
+};
+
+create  dataset employee(Emp) primary key id;
+
+create  index idx_employee_fname on employee (fname) type btree;
+
+create  index idx_employee_lname on employee (lname) type btree;
+
+select l.id, l.fname, l.lname, l.age
+from employee as l
+where
+  ($p_fname is null or l.fname = $p_fname )
+  and
+  ($p_lname is null or l.lname = $p_lname)
+order by l.id;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
index a33e6dd..bd35c4b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval after
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff": f.employment, "student" : d.attendance }
+select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-after`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_after(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
index e8ebb86..acea862 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval before
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -45,4 +45,6 @@
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-before`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_before(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
index 854cd59..bc4ec80 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval covered_by
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-covered-by`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covered_by(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
index 1fa198d..a054f13 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval covers
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-covers`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covers(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
index 1d48700..d683999 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval ended_by
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in ended_by because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-ended-by`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ended_by(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
index 14346f6..946edbc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval ends
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in ends because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-ends`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ends(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
index 7bce341..9dc0710 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval meets
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in meets because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-meets`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_meets(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
index 19f206d..720daf1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval met_by
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in met_by because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-met-by`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_met_by(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
index 72a1f50..38a5149 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval overlapped_by
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-overlapped-by`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapped_by(f.employment, d.attendance);
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
index f1c3a68..71b43e7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval overlapping
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlapping`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapping(f.employment, d.attendance);
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
index efb224f..2bf3fd4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval overlaps
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +43,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-overlaps`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlaps(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
index 410504d..b19044a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval started_by
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in started_by because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-started-by`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_started_by(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
index 87ec386..38d855d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
@@ -17,9 +17,11 @@
  * under the License.
  */
 /*
- * Description      :   Check temporal join functionality for interval
+ * Description      :   Check temporal join functionality for interval starts
  * Expected Result  :   Success
- * Date             :   21th Oct, 2019
+ * Date             :   10th Aug, 2019
+ * Note             :   Range hint is not used in ended_by because it is not implemented.
+ *                      This test will default to Hybrid Hash Join
  */
 
 drop dataverse TinyCollege if exists;
@@ -43,6 +45,8 @@
 create dataset Students(StudentType)
 primary key name;
 
-select element { "staff" : f.name, "student" : d.name }
+select element {  "staff" : f.name, "student" : d.name  }
 from Staff as f, Students as d
-where `interval-starts`(f.employment, d.attendance);
\ No newline at end of file
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_starts(f.employment, d.attendance);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_1.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_1.sqlpp
new file mode 100644
index 0000000..532d646
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_1.sqlpp
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type onekType1 as
+ closed {
+  unique1 : bigint,
+  unique2 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+-- switch unique1 and unique2 in the schema
+
+create type onekType2 as
+ closed {
+  unique2 : bigint,
+  unique1 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+create dataset onek1(onekType1) primary key unique2;
+
+create dataset onek2(onekType2) primary key unique2;
+
+create index onek1_idx on onek1(unique1);
+
+create index onek2_idx on onek2(unique1);
+
+with T as (
+  select value t1 from onek1 t1
+  union all
+  select value t2 from onek2 t2
+)
+select unique1, unique2, unique3 from T
+where unique1 >= 98
+order by unique2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_2.sqlpp
new file mode 100644
index 0000000..2554acb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_2.sqlpp
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type onekType1 as
+ closed {
+  unique1 : bigint,
+  unique2 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+-- switch unique1 and unique2 in the schema
+
+create type onekType2 as
+ closed {
+  unique2 : bigint,
+  unique1 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+create dataset onek1(onekType1) primary key unique2;
+
+create dataset onek2(onekType2) primary key unique2;
+
+create index onek1_idx on onek1(unique1);
+
+create index onek2_idx on onek2(unique1);
+
+with T as (
+  select unique1, unique2, unique3 from onek1
+  union all
+  select unique1, unique2, unique3 from onek2
+)
+select value t from T t
+where unique1 >= 98
+order by unique2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_3.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_3.sqlpp
new file mode 100644
index 0000000..73d6c95
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_3.sqlpp
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type fbuType as
+{
+  id : bigint
+};
+
+create dataset fbu1(fbuType) primary key id;
+
+create dataset fbu2(fbuType) primary key id;
+
+create index fbu1_idx on fbu1(alias: string);
+
+create index fbu2_idx on fbu2(alias: string);
+
+with T as (
+  select value t1 from fbu1 t1
+  union all
+  select value t2 from fbu2 t2
+)
+select alias, name from T
+where alias >= "Von"
+order by alias;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_4.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_4.sqlpp
new file mode 100644
index 0000000..260ef94
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/union/union_opt_1_4.sqlpp
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type fbuType as
+{
+  id : bigint
+};
+
+create dataset fbu1(fbuType) primary key id;
+
+create dataset fbu2(fbuType) primary key id;
+
+create index fbu1_idx on fbu1(alias: string);
+
+create index fbu2_idx on fbu2(alias: string);
+
+with T as (
+  select alias, name from fbu1
+  union all
+  select alias, name from fbu2
+)
+select value t from T t
+where alias >= "Von"
+order by alias;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-complex.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-complex.sqlpp
index 03d105f..ff91548 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-complex.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-complex.sqlpp
@@ -36,7 +36,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
 load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-simple.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-simple.sqlpp
index 1ce7642..fcd5e68 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-simple.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/consolidate-selects-simple.sqlpp
@@ -39,7 +39,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/consolidate-selects-simple.aql";
 select element c
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/cust_group_no_agg.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/cust_group_no_agg.sqlpp
index 3c82655..3f64adf 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/cust_group_no_agg.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/cust_group_no_agg.sqlpp
@@ -39,7 +39,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/.adm";
 select element name
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/denorm-cust-order.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/denorm-cust-order.sqlpp
index 508d6ec..5205324 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/denorm-cust-order.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/denorm-cust-order.sqlpp
@@ -57,9 +57,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key oid on group1;
+create  dataset Orders(OrderType) primary key oid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custorder.adm";
 select element {'cid':cid,'cust':(from g select c),'cnt-orders':count(o),'orders': (from g select o)}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/distinct_aggregate.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/distinct_aggregate.sqlpp
index e840882..812e6d0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/distinct_aggregate.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/distinct_aggregate.sqlpp
@@ -47,7 +47,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems_q1(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems_q1(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/tpch_q1_pricing_summary_report_nt.adm";
 select element {'l_returnflag':l_returnflag,'l_linestatus':l_linestatus,'count_suppkey':count(g)}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-dblp-csx.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-dblp-csx.sqlpp
index 66d3523..51c137c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-dblp-csx.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-dblp-csx.sqlpp
@@ -45,9 +45,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset CSX(CSXType) primary key id on group1;
+create  dataset CSX(CSXType) primary key id WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/fj-dblp-csx.adm";
 select element {'idDBLP':idDBLP,'idCSX':idCSX}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase1.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase1.sqlpp
index 0b89b41..98a8dce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase1.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase1.sqlpp
@@ -41,9 +41,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Users(UserType) primary key uid on group1;
+create  dataset Users(UserType) primary key uid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Visitors(VisitorType) primary key vid on group1;
+create  dataset Visitors(VisitorType) primary key vid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/rares03.adm";
 select element {'uid':user.uid,'tokens':tokens}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase2-with-hints.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase2-with-hints.sqlpp
index f8c55e0..26af6b6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase2-with-hints.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/fj-phase2-with-hints.sqlpp
@@ -36,7 +36,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP_fuzzyjoin_078(DBLPType) primary key id on group1;
+create  dataset DBLP_fuzzyjoin_078(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/fuzzyjoin_078.adm";
 select element {'id':paperDBLP.id,'tokens':tokensDBLP}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/inlined_q18_large_volume_customer.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/inlined_q18_large_volume_customer.sqlpp
index 8d97b03..c806296 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/inlined_q18_large_volume_customer.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/inlined_q18_large_volume_customer.sqlpp
@@ -72,11 +72,11 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/inlined_q18_large_volume_customer.adm";
 select element {'c_name':c_name,'c_custkey':c_custkey,'o_orderkey':o_orderkey,'o_orderdate':o_orderdate,'o_totalprice':o_totalprice,'sum_quantity':inlined_q18_large_volume_customer.strict_sum((
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/introhashpartitionmerge.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/introhashpartitionmerge.sqlpp
index 103aae8..a9cf298 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/introhashpartitionmerge.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/introhashpartitionmerge.sqlpp
@@ -33,7 +33,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank on group1;
+create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/introhashpartitionmerge.adm";
 select element token2.rank
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_01.sqlpp
index 0e7fc0b..9b5e045 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_01.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/join-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'l_partkey':li.l_partkey}
 from  LineItems as li,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_02.sqlpp
index 7247cdc..9c188bc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/join-super-key_02.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/join-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'l_partkey':li.l_partkey}
 from  PartSupp as ps,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_01.sqlpp
index 38bd3e3..3fe8de3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_01.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/loj-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'li':li,'partsupp':partsupp}
 from  LineItems as li
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_02.sqlpp
index 9705785..d6254ab 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/loj-super-key_02.sqlpp
@@ -89,9 +89,9 @@
     asterix_nc2
 ;
 write output to asterix_nc1:"/tmp/loj-super-key_01.adm";
-create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_partkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 select element {'partsupp':ps,'li':items}
 from  PartSupp as ps
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj2.sqlpp
index aae756c..001da3f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj2.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj2.sqlpp
@@ -72,11 +72,11 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/nested_loj.adm";
 select element {'cust':c,'orders':orders}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj3.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj3.sqlpp
index b54dee6..0b460b4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj3.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/nested_loj3.sqlpp
@@ -81,13 +81,13 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey on group1;
+create  dataset PartSupp(PartSuppType) primary key ps_partkey,ps_suppkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/nested_loj.adm";
 select element {'cust':c,'orders':orders}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orderby-desc-using-gby.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orderby-desc-using-gby.sqlpp
index 2313e90..6d349c0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orderby-desc-using-gby.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orderby-desc-using-gby.sqlpp
@@ -47,7 +47,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/gby-using-orderby-desc.adm";
 select element {'name':name,'age':age}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-aggreg.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-aggreg.sqlpp
index 5ef7be6..fd54dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-aggreg.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-aggreg.sqlpp
@@ -37,7 +37,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key oid on group1;
+create  dataset Orders(OrderType) primary key oid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/orders-aggreg.adm";
 select element {'cid':cid,'ordpercust':`orders-aggreg`.strict_count(g),'totalcust':`orders-aggreg`.strict_sum((
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_01.sqlpp
index 190f2f2..b010a1f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_01.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_02.sqlpp
index 64e2395..deb8b4c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive-open_02.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_01.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_01.sqlpp
index 4fe9e18..5243efd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_01.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_01.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_02.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_02.sqlpp
index c16810f..fa77884 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_02.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-conjunctive_02.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 load  dataset Orders using localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-open.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-open.sqlpp
index 532f011..366d4b4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-open.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search-open.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 create  index idx_Orders_Custkey  on Orders (o_custkey) type btree;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search.sqlpp
index 99d8f81..b7d0368 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/orders-index-search.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 create  index idx_Orders_Custkey  on Orders (o_custkey) type btree;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search-open.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search-open.sqlpp
index 44c7aff..294cc85 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search-open.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search-open.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/prim_index_search.adm";
 select element {'o_orderkey':o.o_orderkey,'o_custkey':o.o_custkey}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search.sqlpp
index 91bc4fc..4663c89 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/prim-idx-search.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/prim_index_search.adm";
 select element {'o_orderkey':o.o_orderkey,'o_custkey':o.o_custkey}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/pull_select_above_eq_join.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/pull_select_above_eq_join.sqlpp
index 8634de5..b03b85b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/pull_select_above_eq_join.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/pull_select_above_eq_join.sqlpp
@@ -43,9 +43,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Users(UserType) primary key uid on group1;
+create  dataset Users(UserType) primary key uid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Visitors(VisitorType) primary key vid on group1;
+create  dataset Visitors(VisitorType) primary key vid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/pull-select-above-eq-join.adm";
 select element {'uid':user.uid,'vid':visitor.vid}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push-project-through-group.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push-project-through-group.sqlpp
index 535ae58..7807359 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push-project-through-group.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push-project-through-group.sqlpp
@@ -36,7 +36,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/fuzzyjoin_080.adm";
 select element {'id':paperDBLP.id,'matches':matches}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push_limit.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push_limit.sqlpp
index 721ad69..168c659 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push_limit.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/push_limit.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/push_limit.adm";
 select element {'price':o.o_totalprice,'date':o.o_orderdate}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q03_shipping_priority.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q03_shipping_priority.sqlpp
index 509ed18..90e7a13 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q03_shipping_priority.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q03_shipping_priority.sqlpp
@@ -72,11 +72,11 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q3_shipping_priority.adm";
 select element {'l_orderkey':l_orderkey,'revenue':revenue,'o_orderdate':o_orderdate,'o_shippriority':o_shippriority}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q05_local_supplier_volume.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q05_local_supplier_volume.sqlpp
index fd520e2..70288b2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q05_local_supplier_volume.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q05_local_supplier_volume.sqlpp
@@ -98,17 +98,17 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber on group1;
+create  dataset LineItems(LineItemType) primary key l_orderkey,l_linenumber WITH {"node-group":{"name":"group1"}};
 
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key c_custkey on group1;
+create  dataset Customers(CustomerType) primary key c_custkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Suppliers(SupplierType) primary key s_suppkey on group1;
+create  dataset Suppliers(SupplierType) primary key s_suppkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Nations(NationType) primary key n_nationkey on group1;
+create  dataset Nations(NationType) primary key n_nationkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset Regions(RegionType) primary key r_regionkey on group1;
+create  dataset Regions(RegionType) primary key r_regionkey WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q5_local_supplier.adm";
 select element {'n_name':n_name,'revenue':revenue}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q1.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q1.sqlpp
index 145f018..791f0b9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q1.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q1.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset User(UserType) primary key name on group1;
+create  dataset User(UserType) primary key name WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q1.adm";
 select element {'name':user.name}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q2.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q2.sqlpp
index 801f6a3..f2413ef 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q2.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/q2.sqlpp
@@ -54,7 +54,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Event(EventType) primary key name on group1;
+create  dataset Event(EventType) primary key name WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q2.adm";
 select element {'sig_name':sig_name,'total_count':sig_sponsorship_count,'chapter_breakdown':by_chapter}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index-open.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index-open.sqlpp
index 4300355..0b86e27 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index-open.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index-open.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset MyData(MyRecord) primary key id on group1;
+create  dataset MyData(MyRecord) primary key id WITH {"node-group":{"name":"group1"}};
 
 load  dataset MyData using localfs ((`path`=`asterix_nc1://data/spatial/spatialData.json`),("format"="adm")) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index.sqlpp
index 0748c99..ff8bbee 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/rtree-secondary-index.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset MyData(MyRecord) primary key id on group1;
+create  dataset MyData(MyRecord) primary key id WITH {"node-group":{"name":"group1"}};
 
 load  dataset MyData using localfs ((`path`=`asterix_nc1://data/spatial/spatialData.json`),("format"="adm")) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-all.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-all.sqlpp
index daf328d..c126e4d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-all.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-all.sqlpp
@@ -54,8 +54,8 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems_q1(LineItemType) primary key l_orderkey on group1;
+create  dataset LineItems_q1(LineItemType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset LineID(LineIDType) primary key l_orderkey on group1;
+create  dataset LineID(LineIDType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
 delete from LineItems_q1;
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-rtree-secondary-index.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-rtree-secondary-index.sqlpp
index 6493acd..eb4151b6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-rtree-secondary-index.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete-rtree-secondary-index.sqlpp
@@ -40,7 +40,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset MyData(MyRecord) primary key id on group1;
+create  dataset MyData(MyRecord) primary key id WITH {"node-group":{"name":"group1"}};
 
 load  dataset MyData using localfs ((`path`=`asterix_nc1://data/spatial/spatialData.json`),("format"="adm")) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete.sqlpp
index 83c12e0..c41401a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-delete.sqlpp
@@ -54,9 +54,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems_q1(LineItemType) primary key l_orderkey on group1;
+create  dataset LineItems_q1(LineItemType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset LineID(LineIDType) primary key l_orderkey on group1;
+create  dataset LineID(LineIDType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
 delete from LineItems_q1
  where l_shipdate <= '1998-09-02';
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert-secondary-index.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert-secondary-index.sqlpp
index b5e9c66..f3b5a85 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert-secondary-index.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert-secondary-index.sqlpp
@@ -54,9 +54,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems_q1(LineItemType) primary key l_orderkey on group1;
+create  dataset LineItems_q1(LineItemType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset LineID(LineIDType) primary key l_orderkey on group1;
+create  dataset LineID(LineIDType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
 create  index idx_LineID_partkey  on LineID (l_partkey) type btree;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert.sqlpp
index 0bda7a0..f4ef35f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/scan-insert.sqlpp
@@ -54,9 +54,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset LineItems_q1(LineItemType) primary key l_orderkey on group1;
+create  dataset LineItems_q1(LineItemType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
-create  dataset LineID(LineIDType) primary key l_orderkey on group1;
+create  dataset LineID(LineIDType) primary key l_orderkey WITH {"node-group":{"name":"group1"}};
 
 insert into LineID
 select element {'l_orderkey':l.l_orderkey,'l_partkey':l.l_partkey,'l_suppkey':l.l_partkey}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/skip-index/skip-rtree-secondary-index.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/skip-index/skip-rtree-secondary-index.sqlpp
index 00ec8dc..58934cb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/skip-index/skip-rtree-secondary-index.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/skip-index/skip-rtree-secondary-index.sqlpp
@@ -45,7 +45,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset MyData(MyRecord) primary key id on group1;
+create  dataset MyData(MyRecord) primary key id WITH {"node-group":{"name":"group1"}};
 
 load  dataset MyData using localfs ((`path`=`asterix_nc1://data/spatial/spatialData.json`),("format"="adm")) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/sort-cust.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/sort-cust.sqlpp
index b2e78c0..5ce4d75 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/sort-cust.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/sort-cust.sqlpp
@@ -47,7 +47,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/custlimit.adm";
 select element {'custname':c.name,'custage':c.age}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/unnest_list_in_subplan.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/unnest_list_in_subplan.sqlpp
index 3bdae74..e9a7228 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/unnest_list_in_subplan.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries_sqlpp/unnest_list_in_subplan.sqlpp
@@ -42,9 +42,9 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank on group1;
+create  dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) primary key rank WITH {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"rttest/unnest_list_in_subplan.adm";
 select element {'id':idDBLP,'tokens':tokensDBLP}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
index b6d1d39..0a4b517 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
@@ -5,12 +5,12 @@
               {
                 -- AGGREGATE  |LOCAL|
                   -- ASSIGN  |LOCAL|
-                    -- MICRO_PRE_CLUSTERED_GROUP_BY[$$200]  |LOCAL|
+                    -- MICRO_PRE_CLUSTERED_GROUP_BY[$$215]  |LOCAL|
                             {
                               -- AGGREGATE  |LOCAL|
                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                             }
-                      -- MICRO_STABLE_SORT [$$200(ASC)]  |LOCAL|
+                      -- MICRO_STABLE_SORT [$$215(ASC)]  |LOCAL|
                         -- ASSIGN  |LOCAL|
                           -- UNNEST  |LOCAL|
                             -- SUBPLAN  |LOCAL|
@@ -27,7 +27,7 @@
             -- STREAM_PROJECT  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- INSERT_DELETE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$184]  |PARTITIONED|
+                  -- HASH_PARTITION_EXCHANGE [$$199]  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
                       -- STREAM_PROJECT  |PARTITIONED|
                         -- ASSIGN  |PARTITIONED|
@@ -37,28 +37,28 @@
                                 -- ASSIGN  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- PRE_CLUSTERED_GROUP_BY[$$238]  |PARTITIONED|
+                                      -- PRE_CLUSTERED_GROUP_BY[$$253]  |PARTITIONED|
                                               {
                                                 -- AGGREGATE  |LOCAL|
                                                   -- STREAM_SELECT  |LOCAL|
                                                     -- NESTED_TUPLE_SOURCE  |LOCAL|
                                               }
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- STABLE_SORT [$$238(ASC)]  |PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$238]  |PARTITIONED|
+                                          -- STABLE_SORT [$$253(ASC)]  |PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$253]  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- HYBRID_HASH_JOIN [$$294][$$207]  |PARTITIONED|
-                                                    -- HASH_PARTITION_EXCHANGE [$$294]  |PARTITIONED|
+                                                  -- HYBRID_HASH_JOIN [$$309][$$222]  |PARTITIONED|
+                                                    -- HASH_PARTITION_EXCHANGE [$$309]  |PARTITIONED|
                                                       -- ASSIGN  |PARTITIONED|
                                                         -- STREAM_PROJECT  |PARTITIONED|
                                                           -- UNNEST  |PARTITIONED|
                                                             -- STREAM_PROJECT  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- PRE_CLUSTERED_GROUP_BY[$$298]  |PARTITIONED|
+                                                                -- PRE_CLUSTERED_GROUP_BY[$$317]  |PARTITIONED|
                                                                         {
                                                                           -- AGGREGATE  |LOCAL|
-                                                                            -- MICRO_PRE_CLUSTERED_GROUP_BY[$$300, $$302]  |LOCAL|
+                                                                            -- MICRO_PRE_CLUSTERED_GROUP_BY[$$319, $$321]  |LOCAL|
                                                                                     {
                                                                                       -- AGGREGATE  |LOCAL|
                                                                                         -- STREAM_SELECT  |LOCAL|
@@ -68,8 +68,8 @@
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                         }
                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- STABLE_SORT [$$298(ASC), $$300(ASC), $$302(ASC)]  |PARTITIONED|
-                                                                      -- HASH_PARTITION_EXCHANGE [$$298]  |PARTITIONED|
+                                                                    -- STABLE_SORT [$$317(ASC), $$319(ASC), $$321(ASC)]  |PARTITIONED|
+                                                                      -- HASH_PARTITION_EXCHANGE [$$317]  |PARTITIONED|
                                                                         -- UNION_ALL  |PARTITIONED|
                                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- STREAM_PROJECT  |PARTITIONED|
@@ -106,7 +106,7 @@
                                                                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                               -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- STABLE_SORT [$$245(ASC)]  |PARTITIONED|
+                                                                                                                                  -- STABLE_SORT [$$260(ASC)]  |PARTITIONED|
                                                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                       -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -152,7 +152,7 @@
                                                                                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                         -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STABLE_SORT [$$245(ASC)]  |PARTITIONED|
+                                                                                                                            -- STABLE_SORT [$$260(ASC)]  |PARTITIONED|
                                                                                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -166,12 +166,12 @@
                                                                                                                 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                    -- HASH_PARTITION_EXCHANGE [$$207]  |PARTITIONED|
+                                                    -- HASH_PARTITION_EXCHANGE [$$222]  |PARTITIONED|
                                                       -- ASSIGN  |PARTITIONED|
                                                         -- STREAM_PROJECT  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$215, $$217][$$209, $$210]  |PARTITIONED|
-                                                              -- HASH_PARTITION_EXCHANGE [$$215, $$217]  |PARTITIONED|
+                                                            -- HYBRID_HASH_JOIN [$$230, $$232][$$224, $$225]  |PARTITIONED|
+                                                              -- HASH_PARTITION_EXCHANGE [$$230, $$232]  |PARTITIONED|
                                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                                   -- ASSIGN  |PARTITIONED|
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate-subclause/agg_filter_01/agg_filter_01.5.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate-subclause/agg_filter_01/agg_filter_01.5.plan
index 92f10c3..07c478a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate-subclause/agg_filter_01/agg_filter_01.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate-subclause/agg_filter_01/agg_filter_01.5.plan
@@ -1,94 +1,90 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$128(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$128(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$197(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$197(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ASSIGN  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- PRE_CLUSTERED_GROUP_BY[$$244]  |PARTITIONED|
+                              {
+                                -- AGGREGATE  |LOCAL|
+                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                              }
+                              {
+                                -- AGGREGATE  |LOCAL|
+                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                              }
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- PRE_CLUSTERED_GROUP_BY[$$133]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STABLE_SORT [$$133(ASC)]  |PARTITIONED|
-                                -- HASH_PARTITION_EXCHANGE [$$133]  |PARTITIONED|
-                                  -- PRE_CLUSTERED_GROUP_BY[$$112]  |PARTITIONED|
-                                          {
-                                            -- AGGREGATE  |LOCAL|
-                                              -- STREAM_SELECT  |LOCAL|
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                          }
-                                          {
-                                            -- AGGREGATE  |LOCAL|
-                                              -- STREAM_SELECT  |LOCAL|
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                          }
+                          -- STABLE_SORT [$$244(ASC)]  |PARTITIONED|
+                            -- HASH_PARTITION_EXCHANGE [$$244]  |PARTITIONED|
+                              -- PRE_CLUSTERED_GROUP_BY[$$115]  |PARTITIONED|
+                                      {
+                                        -- AGGREGATE  |LOCAL|
+                                          -- STREAM_SELECT  |LOCAL|
+                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                      }
+                                      {
+                                        -- AGGREGATE  |LOCAL|
+                                          -- STREAM_SELECT  |LOCAL|
+                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                      }
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$115(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- STABLE_SORT [$$112(ASC)]  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- REPLICATE  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- DATASOURCE_SCAN  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ASSIGN  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- PRE_CLUSTERED_GROUP_BY[$$247]  |PARTITIONED|
+                                {
+                                  -- AGGREGATE  |LOCAL|
+                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                }
+                                {
+                                  -- AGGREGATE  |LOCAL|
+                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                }
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- PRE_CLUSTERED_GROUP_BY[$$136]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STABLE_SORT [$$136(ASC)]  |PARTITIONED|
-                                  -- HASH_PARTITION_EXCHANGE [$$136]  |PARTITIONED|
-                                    -- PRE_CLUSTERED_GROUP_BY[$$113]  |PARTITIONED|
-                                            {
-                                              -- AGGREGATE  |LOCAL|
-                                                -- STREAM_SELECT  |LOCAL|
-                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                            }
-                                            {
-                                              -- AGGREGATE  |LOCAL|
-                                                -- STREAM_SELECT  |LOCAL|
-                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                            }
+                            -- STABLE_SORT [$$247(ASC)]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$247]  |PARTITIONED|
+                                -- PRE_CLUSTERED_GROUP_BY[$$116]  |PARTITIONED|
+                                        {
+                                          -- AGGREGATE  |LOCAL|
+                                            -- STREAM_SELECT  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                        }
+                                        {
+                                          -- AGGREGATE  |LOCAL|
+                                            -- STREAM_SELECT  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                        }
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STABLE_SORT [$$116(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- STABLE_SORT [$$113(ASC)]  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- REPLICATE  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- REPLICATE  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- DATASOURCE_SCAN  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan
new file mode 100644
index 0000000..c7b21c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan
@@ -0,0 +1,68 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+          -- SORT_GROUP_BY[$$185, $$186]  |PARTITIONED|
+                  {
+                    -- AGGREGATE  |LOCAL|
+                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                  }
+            -- HASH_PARTITION_EXCHANGE [$$185, $$186]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$168, $$169]  |PARTITIONED|
+                      {
+                        -- AGGREGATE  |LOCAL|
+                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                      }
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- NESTED_LOOP  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- STREAM_PROJECT  |PARTITIONED|
+                                  -- STREAM_SELECT  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- PRE_CLUSTERED_GROUP_BY[$$172]  |PARTITIONED|
+                                                {
+                                                  -- AGGREGATE  |LOCAL|
+                                                    -- STREAM_SELECT  |LOCAL|
+                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                }
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STABLE_SORT [$$172(ASC)]  |PARTITIONED|
+                                              -- HASH_PARTITION_EXCHANGE [$$172]  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- NESTED_LOOP  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- STREAM_SELECT  |PARTITIONED|
+                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                            -- ASSIGN  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- REPLICATE  |PARTITIONED|
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                        -- ASSIGN  |UNPARTITIONED|
+                                                          -- UNNEST  |UNPARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                            -- AGGREGATE  |UNPARTITIONED|
+                              -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+                                -- AGGREGATE  |PARTITIONED|
+                                  -- STREAM_PROJECT  |PARTITIONED|
+                                    -- ASSIGN  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- REPLICATE  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_0.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_0.plan
new file mode 100644
index 0000000..fbdf7a6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_0.plan
@@ -0,0 +1,11 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_SELECT  |PARTITIONED|
+          -- STREAM_PROJECT  |PARTITIONED|
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              -- DATASOURCE_SCAN  |PARTITIONED|
+                -- BROADCAST_EXCHANGE  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_1.plan
new file mode 100644
index 0000000..69abc9a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_1.plan
@@ -0,0 +1,12 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_2.plan
new file mode 100644
index 0000000..69abc9a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_2.plan
@@ -0,0 +1,12 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_3.plan
new file mode 100644
index 0000000..fbdf7a6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_3.plan
@@ -0,0 +1,11 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_SELECT  |PARTITIONED|
+          -- STREAM_PROJECT  |PARTITIONED|
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              -- DATASOURCE_SCAN  |PARTITIONED|
+                -- BROADCAST_EXCHANGE  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_4.plan
new file mode 100644
index 0000000..69abc9a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_4.plan
@@ -0,0 +1,12 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_5.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_5.plan
new file mode 100644
index 0000000..69abc9a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_5.plan
@@ -0,0 +1,12 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_0.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_0.plan
new file mode 100644
index 0000000..6ab1e92
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_0.plan
@@ -0,0 +1,25 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_1.plan
new file mode 100644
index 0000000..6ab1e92
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_1.plan
@@ -0,0 +1,25 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_2.plan
new file mode 100644
index 0000000..0e83dd0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_2.plan
@@ -0,0 +1,25 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$33][$$34]  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$34]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_3.plan
new file mode 100644
index 0000000..0e83dd0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_3.plan
@@ -0,0 +1,25 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$33][$$34]  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$34]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-hybrid.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-hybrid.plan
index babba3b..2af5c43 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-hybrid.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-hybrid.plan
@@ -4,12 +4,12 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$49, $$50, $$51][$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$49, $$50, $$51][$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$49, $$50, $$51]  |PARTITIONED|
+                    -- NESTED_LOOP  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- NESTED_LOOP  |PARTITIONED|
@@ -22,8 +22,8 @@
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
                                               -- ASSIGN  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                       -- DATASOURCE_SCAN  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -32,12 +32,12 @@
                                             -- ASSIGN  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ASSIGN  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ASSIGN  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- REPLICATE  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- REPLICATE  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                          -- ASSIGN  |PARTITIONED|
+                                                            -- STREAM_PROJECT  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -45,550 +45,35 @@
                               -- BROADCAST_EXCHANGE  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- REPLICATE  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- REPLICATE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- REPLICATE  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                               -- DATASOURCE_SCAN  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$52][$$idRight_0]  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                -- EXTERNAL_GROUP_BY[$$331, $$329, $$330, $$327]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- HASH_PARTITION_EXCHANGE [$$331, $$329, $$330, $$327]  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- STREAM_SELECT  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- REPLICATE  |PARTITIONED|
-                                                        -- HASH_PARTITION_EXCHANGE [$$201]  |PARTITIONED|
-                                                          -- UNNEST  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- PRE_CLUSTERED_GROUP_BY[$$194]  |PARTITIONED|
-                                                                      {
-                                                                        -- AGGREGATE  |LOCAL|
-                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                      }
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STABLE_SORT [$$194(ASC), $$210(ASC)]  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- HYBRID_HASH_JOIN [$$211][$$214]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- UNNEST  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- SORT_MERGE_EXCHANGE [$$363(ASC), $$244(ASC) ]  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$363(ASC), $$244(ASC)]  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- EXTERNAL_GROUP_BY[$$395]  |PARTITIONED|
-                                                                                                            {
-                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                            }
-                                                                                                      -- HASH_PARTITION_EXCHANGE [$$395]  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$246]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- UNNEST  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$81, $$84, $$76]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$81(ASC), $$84(ASC), $$76(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- HASH_PARTITION_EXCHANGE [$$81, $$84, $$76]  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- NESTED_LOOP  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- NESTED_LOOP  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- SORT_MERGE_EXCHANGE [$$363(ASC), $$244(ASC) ]  |PARTITIONED|
-                                                                                          -- STABLE_SORT [$$363(ASC), $$244(ASC)]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$395]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- HASH_PARTITION_EXCHANGE [$$395]  |PARTITIONED|
-                                                                                                  -- EXTERNAL_GROUP_BY[$$246]  |PARTITIONED|
-                                                                                                          {
-                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                          }
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$53][$$idRight_0]  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- REPLICATE  |PARTITIONED|
+                              -- DATASOURCE_SCAN  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- REPLICATE  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                        -- EXTERNAL_GROUP_BY[$$341, $$344, $$347, $$333]  |PARTITIONED|
-                                {
-                                  -- AGGREGATE  |LOCAL|
-                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                }
-                          -- HASH_PARTITION_EXCHANGE [$$341, $$344, $$347, $$333]  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- STREAM_SELECT  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                        -- UNNEST  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- PRE_CLUSTERED_GROUP_BY[$$259]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- STREAM_SELECT  |LOCAL|
-                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STABLE_SORT [$$259(ASC), $$i(ASC)]  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- UNNEST  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$364(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$364(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$397]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$397]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ASSIGN  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$166, $$167, $$184, $$168, $$169, $$185, $$170, $$171]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$166(ASC), $$167(ASC), $$184(ASC), $$168(ASC), $$169(ASC), $$185(ASC), $$170(ASC), $$171(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$166, $$168, $$170][$$167, $$169, $$171]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$166, $$168, $$170]  |PARTITIONED|
-                                                                                  -- NESTED_LOOP  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- NESTED_LOOP  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$167, $$169, $$171]  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$184][$$185]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$185]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$339, $$337, $$338, $$335]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$339, $$337, $$338, $$335]  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- HYBRID_HASH_JOIN [$$201][$$200]  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$201]  |PARTITIONED|
-                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$194]  |PARTITIONED|
-                                                                                                                      {
-                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                      }
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STABLE_SORT [$$194(ASC), $$210(ASC)]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- HYBRID_HASH_JOIN [$$211][$$214]  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$363(ASC), $$244(ASC) ]  |PARTITIONED|
-                                                                                                                                                -- STABLE_SORT [$$363(ASC), $$244(ASC)]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$395]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$395]  |PARTITIONED|
-                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$246]  |PARTITIONED|
-                                                                                                                                                                {
-                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                }
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                    -- HASH_PARTITION_EXCHANGE [$$200]  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$192, $$193, $$191]  |PARTITIONED|
-                                                                                                                      {
-                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                      }
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STABLE_SORT [$$192(ASC), $$193(ASC), $$191(ASC), $$240(ASC)]  |PARTITIONED|
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$192, $$193, $$191]  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- HYBRID_HASH_JOIN [$$241][$$244]  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- NESTED_LOOP  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- NESTED_LOOP  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$363(ASC), $$244(ASC) ]  |PARTITIONED|
-                                                                                                                                          -- STABLE_SORT [$$363(ASC), $$244(ASC)]  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- EXTERNAL_GROUP_BY[$$395]  |PARTITIONED|
-                                                                                                                                                      {
-                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                      }
-                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$395]  |PARTITIONED|
-                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$246]  |PARTITIONED|
-                                                                                                                                                          {
-                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                          }
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$364(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$364(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$397]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$397]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-selflink.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-selflink.plan
index a020bf4..f54154b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-selflink.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-selflink.plan
@@ -4,2433 +4,71 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$37, $$38][$$idLeft_0, $$idLeft_1]  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$37, $$38][$$idLeft_0, $$idLeft_1]  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
+                        -- NESTED_LOOP  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$37, $$38][$$idLeft_0, $$idLeft_1]  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$37][$$idLeft_0]  |PARTITIONED|
+                                    -- NESTED_LOOP  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ASSIGN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- REPLICATE  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- NESTED_LOOP  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- REPLICATE  |PARTITIONED|
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
                                               -- ASSIGN  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                   -- REPLICATE  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- HYBRID_HASH_JOIN [$$693][$$734]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- REPLICATE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- REPLICATE  |PARTITIONED|
-                                                                  -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                    -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                            {
-                                                                              -- AGGREGATE  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                            }
-                                                                      -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                          {
-                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                          }
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                {
-                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                }
-                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                    {
-                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                    }
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                  -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                              -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                          {
-                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                          }
-                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                      -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                              {
-                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                              }
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$39][$$idRight_0]  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- REPLICATE  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                       -- DATASOURCE_SCAN  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                        -- EXTERNAL_GROUP_BY[$$988, $$990, $$982]  |PARTITIONED|
-                                                {
-                                                  -- AGGREGATE  |LOCAL|
-                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                }
-                                          -- HASH_PARTITION_EXCHANGE [$$988, $$990, $$982]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- STREAM_SELECT  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- REPLICATE  |PARTITIONED|
-                                                                -- HASH_PARTITION_EXCHANGE [$$800]  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- PRE_CLUSTERED_GROUP_BY[$$793]  |PARTITIONED|
-                                                                              {
-                                                                                -- AGGREGATE  |LOCAL|
-                                                                                  -- STREAM_SELECT  |LOCAL|
-                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                              }
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STABLE_SORT [$$793(ASC), $$807(ASC)]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$808][$$811]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                        -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                        {
-                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                        }
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- UNNEST  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$137, $$138, $$142, $$143]  |PARTITIONED|
-                                                                          {
-                                                                            -- AGGREGATE  |LOCAL|
-                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                          }
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$137(ASC), $$138(ASC), $$142(ASC), $$143(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- HYBRID_HASH_JOIN [$$791][$$825]  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$825]  |PARTITIONED|
-                                                                                                            -- HYBRID_HASH_JOIN [$$792][$$829]  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                    -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                          {
-                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                          }
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                {
-                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                }
-                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                    {
-                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                    }
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                    {
-                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                    }
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                              -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                          {
-                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                          }
-                                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                              {
-                                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                              }
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                    -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$40][$$idRight_0]  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- REPLICATE  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                -- EXTERNAL_GROUP_BY[$$1014, $$1016, $$993]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- HASH_PARTITION_EXCHANGE [$$1014, $$1016, $$993]  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- STREAM_SELECT  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- REPLICATE  |PARTITIONED|
-                                                        -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                          -- UNNEST  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                      {
-                                                                        -- AGGREGATE  |LOCAL|
-                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                      }
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- UNNEST  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                            {
-                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                            }
-                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- UNNEST  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- PRE_CLUSTERED_GROUP_BY[$$274, $$278, $$330, $$331, $$268, $$269, $$270, $$271]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- STREAM_SELECT  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STABLE_SORT [$$274(ASC), $$278(ASC), $$330(ASC), $$331(ASC), $$268(ASC), $$269(ASC), $$270(ASC), $$271(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- HYBRID_HASH_JOIN [$$268, $$270][$$269, $$271]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- HYBRID_HASH_JOIN [$$692][$$730]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                      -- HASH_PARTITION_EXCHANGE [$$730]  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- HYBRID_HASH_JOIN [$$693][$$734]  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                          -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                  {
-                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                  }
-                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                                {
-                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                }
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                          -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                      {
-                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                      }
-                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                          {
-                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                          }
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                          {
-                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                          }
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                {
-                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                }
-                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                    {
-                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                    }
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$269]  |PARTITIONED|
-                                                                                          -- HYBRID_HASH_JOIN [$$330][$$331]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$331]  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$1008, $$1005, $$999]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- HASH_PARTITION_EXCHANGE [$$1008, $$1005, $$999]  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- STREAM_SELECT  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- HYBRID_HASH_JOIN [$$344][$$343]  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$800]  |PARTITIONED|
-                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$793]  |PARTITIONED|
-                                                                                                                                    {
-                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                    }
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STABLE_SORT [$$793(ASC), $$807(ASC)]  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- HYBRID_HASH_JOIN [$$808][$$811]  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                              -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                              {
-                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                              }
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                            -- HASH_PARTITION_EXCHANGE [$$343]  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$336, $$369, $$373, $$335]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STABLE_SORT [$$336(ASC), $$369(ASC), $$373(ASC), $$335(ASC), $$425(ASC)]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- HYBRID_HASH_JOIN [$$426][$$429]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- HYBRID_HASH_JOIN [$$791][$$825]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$825]  |PARTITIONED|
-                                                                                                                                                                  -- HYBRID_HASH_JOIN [$$792][$$829]  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                                  {
-                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                  }
-                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                                                                                {
-                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                }
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                          -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                                                                          {
-                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                          }
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                          -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                            -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                        {
-                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                        }
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                    -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                            {
-                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                            }
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$41][$$idRight_0]  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- REPLICATE  |PARTITIONED|
+                              -- DATASOURCE_SCAN  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                        -- EXTERNAL_GROUP_BY[$$1062, $$1065, $$1019]  |PARTITIONED|
-                                {
-                                  -- AGGREGATE  |LOCAL|
-                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                }
-                          -- HASH_PARTITION_EXCHANGE [$$1062, $$1065, $$1019]  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- STREAM_SELECT  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                        -- UNNEST  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- PRE_CLUSTERED_GROUP_BY[$$912]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- STREAM_SELECT  |LOCAL|
-                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STABLE_SORT [$$912(ASC), $$i(ASC)]  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- UNNEST  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$1148(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$1148(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$1673]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$1673]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ASSIGN  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$512, $$688, $$513, $$514, $$578, $$515, $$579, $$518, $$519, $$522, $$526, $$687]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$512(ASC), $$688(ASC), $$513(ASC), $$514(ASC), $$578(ASC), $$515(ASC), $$579(ASC), $$518(ASC), $$519(ASC), $$522(ASC), $$526(ASC), $$687(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$512, $$514][$$513, $$515]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$512, $$514][$$518, $$519]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- HYBRID_HASH_JOIN [$$692][$$730]  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$730]  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- HYBRID_HASH_JOIN [$$693][$$734]  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                      -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                              {
-                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                              }
-                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                      -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                  {
-                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                  }
-                                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                      {
-                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                      }
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                      {
-                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                      }
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                            {
-                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                            }
-                                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                {
-                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                }
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$518]  |PARTITIONED|
-                                                                                      -- HYBRID_HASH_JOIN [$$578][$$579]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$579]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$1031, $$1032, $$1025]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$1031, $$1032, $$1025]  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- HYBRID_HASH_JOIN [$$592][$$591]  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$800]  |PARTITIONED|
-                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$793]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STABLE_SORT [$$793(ASC), $$807(ASC)]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- HYBRID_HASH_JOIN [$$808][$$811]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                          -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$591]  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$583, $$584, $$617, $$621]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- STABLE_SORT [$$583(ASC), $$584(ASC), $$617(ASC), $$621(ASC), $$673(ASC)]  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- HYBRID_HASH_JOIN [$$674][$$677]  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- HYBRID_HASH_JOIN [$$791][$$825]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$825]  |PARTITIONED|
-                                                                                                                                                              -- HYBRID_HASH_JOIN [$$792][$$829]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                              {
-                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                              }
-                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                                                                            {
-                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                            }
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                  {
-                                                                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                  }
-                                                                                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                                                                      {
-                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                      }
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                            {
-                                                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                            }
-                                                                                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                      -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                  {
-                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                  }
-                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$513]  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$687][$$688]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$688]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$1055, $$1056, $$1036]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$1055, $$1056, $$1036]  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- HYBRID_HASH_JOIN [$$701][$$700]  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                      {
-                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                      }
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                {
-                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                }
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                    -- HASH_PARTITION_EXCHANGE [$$700]  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- PRE_CLUSTERED_GROUP_BY[$$786, $$787, $$692, $$693, $$726, $$727, $$730, $$734]  |PARTITIONED|
-                                                                                                                        {
-                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                            -- STREAM_SELECT  |LOCAL|
-                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                        }
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- STABLE_SORT [$$786(ASC), $$787(ASC), $$692(ASC), $$693(ASC), $$726(ASC), $$727(ASC), $$730(ASC), $$734(ASC), $$895(ASC)]  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- HYBRID_HASH_JOIN [$$896][$$899]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- HYBRID_HASH_JOIN [$$692, $$693][$$726, $$727]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- HYBRID_HASH_JOIN [$$692][$$730]  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$730]  |PARTITIONED|
-                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- HYBRID_HASH_JOIN [$$693][$$734]  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                                  {
-                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                  }
-                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                                                                                {
-                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                }
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                          -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                                                                          {
-                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                          }
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$726]  |PARTITIONED|
-                                                                                                                                                -- HYBRID_HASH_JOIN [$$786][$$787]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$787]  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1048, $$1049, $$1042]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1048, $$1049, $$1042]  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- HYBRID_HASH_JOIN [$$800][$$799]  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$800]  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$793]  |PARTITIONED|
-                                                                                                                                                                                    {
-                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                    }
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- STABLE_SORT [$$793(ASC), $$807(ASC)]  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$808][$$811]  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                              -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                                                                              {
-                                                                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                              }
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$799]  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$791, $$792, $$825, $$829]  |PARTITIONED|
-                                                                                                                                                                                      {
-                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                      }
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- STABLE_SORT [$$791(ASC), $$792(ASC), $$825(ASC), $$829(ASC), $$881(ASC)]  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- HYBRID_HASH_JOIN [$$882][$$885]  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- HYBRID_HASH_JOIN [$$791][$$825]  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$825]  |PARTITIONED|
-                                                                                                                                                                                                                  -- HYBRID_HASH_JOIN [$$792][$$829]  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$829]  |PARTITIONED|
-                                                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                                                                                  {
-                                                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                  }
-                                                                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1046, $$1044]  |PARTITIONED|
-                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- HYBRID_HASH_JOIN [$$841][$$840]  |PARTITIONED|
-                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$701]  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$694]  |PARTITIONED|
-                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- STABLE_SORT [$$694(ASC), $$708(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$709][$$712]  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                          -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$840]  |PARTITIONED|
-                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$833]  |PARTITIONED|
-                                                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- STABLE_SORT [$$833(ASC), $$867(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- HYBRID_HASH_JOIN [$$868][$$871]  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1146(ASC), $$885(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                          -- STABLE_SORT [$$1146(ASC), $$885(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1669]  |PARTITIONED|
-                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1669]  |PARTITIONED|
-                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$887]  |PARTITIONED|
-                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- SORT_MERGE_EXCHANGE [$$1147(ASC), $$899(ASC) ]  |PARTITIONED|
-                                                                                                                                            -- STABLE_SORT [$$1147(ASC), $$899(ASC)]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- EXTERNAL_GROUP_BY[$$1671]  |PARTITIONED|
-                                                                                                                                                        {
-                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                        }
-                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1671]  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$901]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$1148(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$1148(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$1673]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$1673]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-simple.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-simple.plan
index 9270c86..757511d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-simple.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-simple.plan
@@ -4,143 +4,18 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$12][$$idLeft_0]  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$13][$$idRight_0]  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                        -- EXTERNAL_GROUP_BY[$$92, $$90]  |PARTITIONED|
-                                {
-                                  -- AGGREGATE  |LOCAL|
-                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                }
-                          -- HASH_PARTITION_EXCHANGE [$$92, $$90]  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- STREAM_SELECT  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                        -- UNNEST  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- PRE_CLUSTERED_GROUP_BY[$$27]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- STREAM_SELECT  |LOCAL|
-                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STABLE_SORT [$$27(ASC), $$i(ASC)]  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- UNNEST  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$97(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$97(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$104]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$104]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ASSIGN  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$23]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$23(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- REPLICATE  |PARTITIONED|
-                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- SORT_MERGE_EXCHANGE [$$97(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                            -- STABLE_SORT [$$97(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EXTERNAL_GROUP_BY[$$104]  |PARTITIONED|
-                                                                                        {
-                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                        }
-                                                                                  -- HASH_PARTITION_EXCHANGE [$$104]  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-star.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-star.plan
index 6de1788..669a4a1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-star.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-dblp-csx-star.plan
@@ -4,499 +4,59 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$50, $$51, $$52][$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
+            -- NESTED_LOOP  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$50, $$51, $$52][$$idLeft_0, $$idLeft_1, $$idLeft_2]  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
+                        -- NESTED_LOOP  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$50, $$51][$$idLeft_0, $$idLeft_1]  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$50][$$idLeft_0]  |PARTITIONED|
+                                    -- NESTED_LOOP  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$51][$$idRight_0]  |PARTITIONED|
+                                            -- NESTED_LOOP  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- REPLICATE  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                    -- ASSIGN  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          -- STREAM_PROJECT  |PARTITIONED|
                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                       -- REPLICATE  |PARTITIONED|
-                                                        -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                          -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                            -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                          -- UNNEST  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                      {
-                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                      }
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                        -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                              -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                          {
-                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                          }
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                      -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                              {
-                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                              }
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$52][$$idRight_0]  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ASSIGN  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                               -- REPLICATE  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- DATASOURCE_SCAN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                        -- EXTERNAL_GROUP_BY[$$1075, $$1073, $$1067]  |PARTITIONED|
-                                                {
-                                                  -- AGGREGATE  |LOCAL|
-                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                }
-                                          -- HASH_PARTITION_EXCHANGE [$$1075, $$1073, $$1067]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- STREAM_SELECT  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- REPLICATE  |PARTITIONED|
-                                                                -- HASH_PARTITION_EXCHANGE [$$875]  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- PRE_CLUSTERED_GROUP_BY[$$868]  |PARTITIONED|
-                                                                              {
-                                                                                -- AGGREGATE  |LOCAL|
-                                                                                  -- STREAM_SELECT  |LOCAL|
-                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                              }
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STABLE_SORT [$$868(ASC), $$881(ASC)]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$882][$$885]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                        -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                        {
-                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                        }
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- UNNEST  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$162, $$163, $$155, $$156]  |PARTITIONED|
-                                                                          {
-                                                                            -- AGGREGATE  |LOCAL|
-                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                          }
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$162(ASC), $$163(ASC), $$155(ASC), $$156(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- HYBRID_HASH_JOIN [$$866][$$898]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                                  -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                          -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                  {
-                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                  }
-                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                      {
-                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                      }
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                            {
-                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                            }
-                                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                {
-                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                }
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                          {
-                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                          }
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                              -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                          {
-                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                          }
-                                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                              {
-                                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                              }
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                    -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$53][$$idRight_0]  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -504,1860 +64,19 @@
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                -- EXTERNAL_GROUP_BY[$$1096, $$1098, $$1101, $$1078]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- HASH_PARTITION_EXCHANGE [$$1096, $$1098, $$1101, $$1078]  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- STREAM_SELECT  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- REPLICATE  |PARTITIONED|
-                                                        -- HASH_PARTITION_EXCHANGE [$$766]  |PARTITIONED|
-                                                          -- UNNEST  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- PRE_CLUSTERED_GROUP_BY[$$759]  |PARTITIONED|
-                                                                      {
-                                                                        -- AGGREGATE  |LOCAL|
-                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                      }
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STABLE_SORT [$$759(ASC), $$774(ASC)]  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- HYBRID_HASH_JOIN [$$775][$$778]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- UNNEST  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- SORT_MERGE_EXCHANGE [$$1233(ASC), $$981(ASC) ]  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$1233(ASC), $$981(ASC)]  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- EXTERNAL_GROUP_BY[$$1757]  |PARTITIONED|
-                                                                                                            {
-                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                            }
-                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1757]  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$983]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- UNNEST  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- PRE_CLUSTERED_GROUP_BY[$$304, $$293, $$294, $$295, $$296, $$299, $$364, $$365]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- STREAM_SELECT  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STABLE_SORT [$$304(ASC), $$293(ASC), $$294(ASC), $$295(ASC), $$296(ASC), $$299(ASC), $$364(ASC), $$365(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- HYBRID_HASH_JOIN [$$293, $$295][$$294, $$296]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- HYBRID_HASH_JOIN [$$756][$$797]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                            -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                    -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                {
-                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                }
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                          -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                      {
-                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                      }
-                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                          {
-                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                          }
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                    {
-                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                    }
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                        -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                    {
-                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                    }
-                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                        {
-                                                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                        }
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$294]  |PARTITIONED|
-                                                                                          -- HYBRID_HASH_JOIN [$$364][$$365]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$365]  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$1090, $$1092, $$1084]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- HASH_PARTITION_EXCHANGE [$$1090, $$1092, $$1084]  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- STREAM_SELECT  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- HYBRID_HASH_JOIN [$$378][$$377]  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$875]  |PARTITIONED|
-                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$868]  |PARTITIONED|
-                                                                                                                                    {
-                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                    }
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STABLE_SORT [$$868(ASC), $$881(ASC)]  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- HYBRID_HASH_JOIN [$$882][$$885]  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                              -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                              {
-                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                              }
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                            -- HASH_PARTITION_EXCHANGE [$$377]  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$369, $$401, $$370, $$407]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STABLE_SORT [$$369(ASC), $$401(ASC), $$370(ASC), $$407(ASC), $$467(ASC)]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- HYBRID_HASH_JOIN [$$468][$$471]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- HYBRID_HASH_JOIN [$$866][$$898]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                                                                                -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                        {
-                                                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                        }
-                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                                                                            {
-                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                            }
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                  {
-                                                                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                  }
-                                                                                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                                                                                {
-                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                }
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                          -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- SORT_MERGE_EXCHANGE [$$1233(ASC), $$981(ASC) ]  |PARTITIONED|
-                                                                                            -- STABLE_SORT [$$1233(ASC), $$981(ASC)]  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- EXTERNAL_GROUP_BY[$$1757]  |PARTITIONED|
-                                                                                                        {
-                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                        }
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1757]  |PARTITIONED|
-                                                                                                    -- EXTERNAL_GROUP_BY[$$983]  |PARTITIONED|
-                                                                                                            {
-                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                            }
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$54][$$idRight_0]  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- REPLICATE  |PARTITIONED|
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                        -- EXTERNAL_GROUP_BY[$$1148, $$1151, $$1153, $$1104]  |PARTITIONED|
-                                {
-                                  -- AGGREGATE  |LOCAL|
-                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                }
-                          -- HASH_PARTITION_EXCHANGE [$$1148, $$1151, $$1153, $$1104]  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- STREAM_SELECT  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                        -- UNNEST  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- PRE_CLUSTERED_GROUP_BY[$$995]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- STREAM_SELECT  |LOCAL|
-                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STABLE_SORT [$$995(ASC), $$i(ASC)]  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- UNNEST  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$1234(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$1234(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$1759]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$1759]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ASSIGN  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$749, $$558, $$750, $$559, $$560, $$561, $$562, $$563, $$566, $$567, $$569, $$634, $$574]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
+                                                  -- DATASOURCE_SCAN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$749(ASC), $$558(ASC), $$750(ASC), $$559(ASC), $$560(ASC), $$561(ASC), $$562(ASC), $$563(ASC), $$566(ASC), $$567(ASC), $$569(ASC), $$634(ASC), $$574(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$558, $$560, $$562][$$559, $$561, $$563]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$558, $$560][$$566, $$567]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- HYBRID_HASH_JOIN [$$558][$$569]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                    -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                        {
-                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                            -- STREAM_SELECT  |LOCAL|
-                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                        }
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                  -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                              {
-                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                              }
-                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                  {
-                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                  }
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                            {
-                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                            }
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                            {
-                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                            }
-                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                {
-                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                }
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$566]  |PARTITIONED|
-                                                                                      -- HYBRID_HASH_JOIN [$$562][$$634]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$634]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$1117, $$1119, $$1110]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$1117, $$1119, $$1110]  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- HYBRID_HASH_JOIN [$$647][$$646]  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$875]  |PARTITIONED|
-                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$868]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STABLE_SORT [$$868(ASC), $$881(ASC)]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- HYBRID_HASH_JOIN [$$882][$$885]  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                          -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                          {
-                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                          }
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$646]  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$676, $$638, $$670, $$639]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- STABLE_SORT [$$676(ASC), $$638(ASC), $$670(ASC), $$639(ASC), $$736(ASC)]  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- HYBRID_HASH_JOIN [$$737][$$740]  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- HYBRID_HASH_JOIN [$$866][$$898]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                    {
-                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                    }
-                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                                                                        {
-                                                                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                            -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                        }
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                  -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                              {
-                                                                                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                              }
-                                                                                                                                                                                                                                        -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                  {
-                                                                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                  }
-                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                                                                            {
-                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                            }
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                            {
-                                                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                            }
-                                                                                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                      -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                  {
-                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                  }
-                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                      {
-                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                      }
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$559]  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$749][$$750]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$750]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$1139, $$1140, $$1141, $$1121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$1139, $$1140, $$1141, $$1121]  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- HYBRID_HASH_JOIN [$$766][$$765]  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$766]  |PARTITIONED|
-                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$759]  |PARTITIONED|
-                                                                                                                      {
-                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                      }
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STABLE_SORT [$$759(ASC), $$774(ASC)]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- HYBRID_HASH_JOIN [$$775][$$778]  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                              -- SORT_MERGE_EXCHANGE [$$1233(ASC), $$981(ASC) ]  |PARTITIONED|
-                                                                                                                                                -- STABLE_SORT [$$1233(ASC), $$981(ASC)]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1757]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1757]  |PARTITIONED|
-                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$983]  |PARTITIONED|
-                                                                                                                                                                {
-                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                }
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                    -- HASH_PARTITION_EXCHANGE [$$765]  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- PRE_CLUSTERED_GROUP_BY[$$802, $$756, $$757, $$758, $$793, $$794, $$797, $$862]  |PARTITIONED|
-                                                                                                                        {
-                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                            -- STREAM_SELECT  |LOCAL|
-                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                        }
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- STABLE_SORT [$$802(ASC), $$756(ASC), $$757(ASC), $$758(ASC), $$793(ASC), $$794(ASC), $$797(ASC), $$862(ASC), $$977(ASC)]  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- HYBRID_HASH_JOIN [$$978][$$981]  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- HYBRID_HASH_JOIN [$$756, $$757][$$793, $$794]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- HYBRID_HASH_JOIN [$$756][$$797]  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                                                                            -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                            {
-                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                            }
-                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                                                                {
-                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                }
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                          -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                                                                    {
-                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                    }
-                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                      -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                        -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$793]  |PARTITIONED|
-                                                                                                                                                -- HYBRID_HASH_JOIN [$$758][$$862]  |PARTITIONED|
-                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$862]  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$1133, $$1135, $$1127]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$1133, $$1135, $$1127]  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                -- HYBRID_HASH_JOIN [$$875][$$874]  |PARTITIONED|
-                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$875]  |PARTITIONED|
-                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$868]  |PARTITIONED|
-                                                                                                                                                                                    {
-                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                    }
-                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                -- STABLE_SORT [$$868(ASC), $$881(ASC)]  |PARTITIONED|
-                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$882][$$885]  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                            -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                              -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                                                                                      -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                                                                              {
-                                                                                                                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                              }
-                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$874]  |PARTITIONED|
-                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- PRE_CLUSTERED_GROUP_BY[$$866, $$898, $$867, $$904]  |PARTITIONED|
-                                                                                                                                                                                      {
-                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                      }
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- STABLE_SORT [$$866(ASC), $$898(ASC), $$867(ASC), $$904(ASC), $$964(ASC)]  |PARTITIONED|
-                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                          -- HYBRID_HASH_JOIN [$$965][$$968]  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                          -- HYBRID_HASH_JOIN [$$866][$$898]  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$797]  |PARTITIONED|
-                                                                                                                                                                                                                        -- HYBRID_HASH_JOIN [$$757][$$802]  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                                                                                                                                                                                                                -- EXTERNAL_GROUP_BY[$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1125, $$1123]  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                      -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- HYBRID_HASH_JOIN [$$816][$$815]  |PARTITIONED|
-                                                                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$816]  |PARTITIONED|
-                                                                                                                                                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- PRE_CLUSTERED_GROUP_BY[$$809]  |PARTITIONED|
-                                                                                                                                                                                                                                                            {
-                                                                                                                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                            }
-                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- STABLE_SORT [$$809(ASC), $$824(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- HYBRID_HASH_JOIN [$$825][$$828]  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                      -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                          -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                  {
-                                                                                                                                                                                                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                  }
-                                                                                                                                                                                                                                                                                            -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                            -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                              -- HASH_PARTITION_EXCHANGE [$$815]  |PARTITIONED|
-                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                        -- PRE_CLUSTERED_GROUP_BY[$$808]  |PARTITIONED|
-                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                                                                                                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                            -- STABLE_SORT [$$808(ASC), $$847(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                    -- HYBRID_HASH_JOIN [$$848][$$851]  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                  -- SORT_MERGE_EXCHANGE [$$1228(ASC), $$851(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                    -- STABLE_SORT [$$1228(ASC), $$851(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                        -- EXTERNAL_GROUP_BY[$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                                                          -- HASH_PARTITION_EXCHANGE [$$1747]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                            -- EXTERNAL_GROUP_BY[$$853]  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                    {
-                                                                                                                                                                                                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                                                                                                    }
-                                                                                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                        -- SORT_MERGE_EXCHANGE [$$1232(ASC), $$968(ASC) ]  |PARTITIONED|
-                                                                                                                                                                                                          -- STABLE_SORT [$$1232(ASC), $$968(ASC)]  |PARTITIONED|
-                                                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                              -- EXTERNAL_GROUP_BY[$$1755]  |PARTITIONED|
-                                                                                                                                                                                                                      {
-                                                                                                                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                      }
-                                                                                                                                                                                                                -- HASH_PARTITION_EXCHANGE [$$1755]  |PARTITIONED|
-                                                                                                                                                                                                                  -- EXTERNAL_GROUP_BY[$$970]  |PARTITIONED|
-                                                                                                                                                                                                                          {
-                                                                                                                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                                                                                          }
-                                                                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                          -- SORT_MERGE_EXCHANGE [$$1233(ASC), $$981(ASC) ]  |PARTITIONED|
-                                                                                                                                            -- STABLE_SORT [$$1233(ASC), $$981(ASC)]  |PARTITIONED|
-                                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                -- EXTERNAL_GROUP_BY[$$1757]  |PARTITIONED|
-                                                                                                                                                        {
-                                                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                        }
-                                                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$1757]  |PARTITIONED|
-                                                                                                                                                    -- EXTERNAL_GROUP_BY[$$983]  |PARTITIONED|
-                                                                                                                                                            {
-                                                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                                            }
-                                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$1234(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$1234(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$1759]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$1759]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- BROADCAST_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.1.plan
index 72d2bb1..aec6087 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.1.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.1.plan
@@ -1,8 +1,8 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$245(ASC), $$246(ASC), $$247(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$245(ASC), $$246(ASC), $$247(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$385(ASC), $$386(ASC), $$387(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$385(ASC), $$386(ASC), $$387(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -14,74 +14,14 @@
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- SORT_GROUP_BY[$$253]  |PARTITIONED|
-                                              {
-                                                -- AGGREGATE  |LOCAL|
-                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                              }
-                                        -- HASH_PARTITION_EXCHANGE [$$253]  |PARTITIONED|
-                                          -- SORT_GROUP_BY[$$232]  |PARTITIONED|
-                                                  {
-                                                    -- AGGREGATE  |LOCAL|
-                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                  }
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- REPLICATE  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- ASSIGN  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- SORT_GROUP_BY[$$255]  |PARTITIONED|
-                                              {
-                                                -- AGGREGATE  |LOCAL|
-                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                              }
-                                        -- HASH_PARTITION_EXCHANGE [$$255]  |PARTITIONED|
-                                          -- SORT_GROUP_BY[$$233]  |PARTITIONED|
-                                                  {
-                                                    -- AGGREGATE  |LOCAL|
-                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                  }
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- ASSIGN  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- SORT_GROUP_BY[$$257, $$258]  |PARTITIONED|
+                                  -- SORT_GROUP_BY[$$1077]  |PARTITIONED|
                                           {
                                             -- AGGREGATE  |LOCAL|
                                               -- NESTED_TUPLE_SOURCE  |LOCAL|
                                           }
-                                    -- HASH_PARTITION_EXCHANGE [$$257, $$258]  |PARTITIONED|
-                                      -- SORT_GROUP_BY[$$234, $$235]  |PARTITIONED|
+                                    -- HASH_PARTITION_EXCHANGE [$$1077]  |PARTITIONED|
+                                      -- SORT_GROUP_BY[$$238]  |PARTITIONED|
                                               {
                                                 -- AGGREGATE  |LOCAL|
                                                   -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -99,33 +39,85 @@
                                                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- SORT_GROUP_BY[$$260]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- HASH_PARTITION_EXCHANGE [$$260]  |PARTITIONED|
-                              -- SORT_GROUP_BY[$$236]  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- SORT_GROUP_BY[$$1079]  |PARTITIONED|
+                                          {
+                                            -- AGGREGATE  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                          }
+                                    -- HASH_PARTITION_EXCHANGE [$$1079]  |PARTITIONED|
+                                      -- SORT_GROUP_BY[$$239]  |PARTITIONED|
+                                              {
+                                                -- AGGREGATE  |LOCAL|
+                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                              }
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- REPLICATE  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- SORT_GROUP_BY[$$1081, $$1082]  |PARTITIONED|
                                       {
                                         -- AGGREGATE  |LOCAL|
                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                                       }
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
+                                -- HASH_PARTITION_EXCHANGE [$$1081, $$1082]  |PARTITIONED|
+                                  -- SORT_GROUP_BY[$$240, $$241]  |PARTITIONED|
+                                          {
+                                            -- AGGREGATE  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                          }
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- REPLICATE  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                -- REPLICATE  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- SORT_GROUP_BY[$$1084]  |PARTITIONED|
+                              {
+                                -- AGGREGATE  |LOCAL|
+                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                              }
+                        -- HASH_PARTITION_EXCHANGE [$$1084]  |PARTITIONED|
+                          -- SORT_GROUP_BY[$$242]  |PARTITIONED|
+                                  {
+                                    -- AGGREGATE  |LOCAL|
+                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                  }
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                -- ASSIGN  |PARTITIONED|
+                                  -- STREAM_PROJECT  |PARTITIONED|
+                                    -- ASSIGN  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- REPLICATE  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.2.plan
index bea5ef6..ed348a1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/grouping-sets-1.2.plan
@@ -1,8 +1,8 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$759(ASC), $$760(ASC), $$761(ASC), $$762(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$759(ASC), $$760(ASC), $$761(ASC), $$762(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$1224(ASC), $$1225(ASC), $$1226(ASC), $$1227(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$1224(ASC), $$1225(ASC), $$1226(ASC), $$1227(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -12,7 +12,7 @@
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- UNION_ALL  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- UNION_ALL  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- UNION_ALL  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -26,350 +26,339 @@
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                     -- UNION_ALL  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- ASSIGN  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- SORT_GROUP_BY[$$776, $$777, $$778, $$779]  |PARTITIONED|
-                                                                        {
-                                                                          -- AGGREGATE  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                        }
-                                                                  -- HASH_PARTITION_EXCHANGE [$$776, $$777, $$778, $$779]  |PARTITIONED|
-                                                                    -- SORT_GROUP_BY[$$710, $$711, $$712, $$713]  |PARTITIONED|
-                                                                            {
-                                                                              -- AGGREGATE  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                            }
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                        -- UNION_ALL  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- SORT_GROUP_BY[$$10189, $$10190, $$10191, $$10192]  |PARTITIONED|
+                                                                          {
+                                                                            -- AGGREGATE  |LOCAL|
+                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                          }
+                                                                    -- HASH_PARTITION_EXCHANGE [$$10189, $$10190, $$10191, $$10192]  |PARTITIONED|
+                                                                      -- SORT_GROUP_BY[$$717, $$718, $$719, $$720]  |PARTITIONED|
+                                                                              {
+                                                                                -- AGGREGATE  |LOCAL|
+                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                              }
+                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                            -- ASSIGN  |PARTITIONED|
+                                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                                -- ASSIGN  |PARTITIONED|
+                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                    -- REPLICATE  |PARTITIONED|
+                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- SORT_GROUP_BY[$$10194, $$10195, $$10196]  |PARTITIONED|
+                                                                          {
+                                                                            -- AGGREGATE  |LOCAL|
+                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                          }
+                                                                    -- HASH_PARTITION_EXCHANGE [$$10194, $$10195, $$10196]  |PARTITIONED|
+                                                                      -- SORT_GROUP_BY[$$721, $$722, $$723]  |PARTITIONED|
+                                                                              {
+                                                                                -- AGGREGATE  |LOCAL|
+                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                              }
+                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                            -- ASSIGN  |PARTITIONED|
+                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                -- REPLICATE  |PARTITIONED|
+                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                          -- ASSIGN  |PARTITIONED|
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- SORT_GROUP_BY[$$10198, $$10199, $$10200]  |PARTITIONED|
+                                                                      {
+                                                                        -- AGGREGATE  |LOCAL|
+                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                      }
+                                                                -- HASH_PARTITION_EXCHANGE [$$10198, $$10199, $$10200]  |PARTITIONED|
+                                                                  -- SORT_GROUP_BY[$$724, $$725, $$726]  |PARTITIONED|
+                                                                          {
+                                                                            -- AGGREGATE  |LOCAL|
+                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                          }
+                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                                        -- ASSIGN  |PARTITIONED|
+                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                            -- ASSIGN  |PARTITIONED|
+                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                -- REPLICATE  |PARTITIONED|
+                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- SORT_GROUP_BY[$$10202, $$10203]  |PARTITIONED|
+                                                                  {
+                                                                    -- AGGREGATE  |LOCAL|
+                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                  }
+                                                            -- HASH_PARTITION_EXCHANGE [$$10202, $$10203]  |PARTITIONED|
+                                                              -- SORT_GROUP_BY[$$727, $$728]  |PARTITIONED|
+                                                                      {
+                                                                        -- AGGREGATE  |LOCAL|
+                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                      }
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                    -- ASSIGN  |PARTITIONED|
+                                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                                        -- ASSIGN  |PARTITIONED|
+                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                            -- REPLICATE  |PARTITIONED|
+                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- SORT_GROUP_BY[$$10205, $$10206, $$10207]  |PARTITIONED|
+                                                              {
+                                                                -- AGGREGATE  |LOCAL|
+                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                              }
+                                                        -- HASH_PARTITION_EXCHANGE [$$10205, $$10206, $$10207]  |PARTITIONED|
+                                                          -- SORT_GROUP_BY[$$729, $$730, $$731]  |PARTITIONED|
+                                                                  {
+                                                                    -- AGGREGATE  |LOCAL|
+                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                  }
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                -- ASSIGN  |PARTITIONED|
+                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                    -- ASSIGN  |PARTITIONED|
+                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- REPLICATE  |PARTITIONED|
+                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- SORT_GROUP_BY[$$10209, $$10210]  |PARTITIONED|
+                                                          {
+                                                            -- AGGREGATE  |LOCAL|
+                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                          }
+                                                    -- HASH_PARTITION_EXCHANGE [$$10209, $$10210]  |PARTITIONED|
+                                                      -- SORT_GROUP_BY[$$732, $$733]  |PARTITIONED|
+                                                              {
+                                                                -- AGGREGATE  |LOCAL|
+                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                              }
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                            -- ASSIGN  |PARTITIONED|
+                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                -- ASSIGN  |PARTITIONED|
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    -- REPLICATE  |PARTITIONED|
+                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- SORT_GROUP_BY[$$10212, $$10213]  |PARTITIONED|
+                                                      {
+                                                        -- AGGREGATE  |LOCAL|
+                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                      }
+                                                -- HASH_PARTITION_EXCHANGE [$$10212, $$10213]  |PARTITIONED|
+                                                  -- SORT_GROUP_BY[$$734, $$735]  |PARTITIONED|
+                                                          {
+                                                            -- AGGREGATE  |LOCAL|
+                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                          }
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
                                                         -- ASSIGN  |PARTITIONED|
                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- SORT_GROUP_BY[$$781, $$782, $$783]  |PARTITIONED|
-                                                                        {
-                                                                          -- AGGREGATE  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                        }
-                                                                  -- HASH_PARTITION_EXCHANGE [$$781, $$782, $$783]  |PARTITIONED|
-                                                                    -- SORT_GROUP_BY[$$714, $$715, $$716]  |PARTITIONED|
-                                                                            {
-                                                                              -- AGGREGATE  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                            }
+                                                                -- REPLICATE  |PARTITIONED|
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    -- STREAM_PROJECT  |PARTITIONED|
                                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- SORT_GROUP_BY[$$10215]  |PARTITIONED|
+                                                  {
+                                                    -- AGGREGATE  |LOCAL|
+                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                  }
+                                            -- HASH_PARTITION_EXCHANGE [$$10215]  |PARTITIONED|
+                                              -- SORT_GROUP_BY[$$736]  |PARTITIONED|
+                                                      {
+                                                        -- AGGREGATE  |LOCAL|
+                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                      }
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
                                                     -- ASSIGN  |PARTITIONED|
                                                       -- STREAM_PROJECT  |PARTITIONED|
                                                         -- ASSIGN  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- SORT_GROUP_BY[$$785, $$786, $$787]  |PARTITIONED|
-                                                                    {
-                                                                      -- AGGREGATE  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                    }
-                                                              -- HASH_PARTITION_EXCHANGE [$$785, $$786, $$787]  |PARTITIONED|
-                                                                -- SORT_GROUP_BY[$$717, $$718, $$719]  |PARTITIONED|
-                                                                        {
-                                                                          -- AGGREGATE  |LOCAL|
-                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                        }
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- SORT_GROUP_BY[$$789, $$790]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- HASH_PARTITION_EXCHANGE [$$789, $$790]  |PARTITIONED|
-                                                            -- SORT_GROUP_BY[$$720, $$721]  |PARTITIONED|
-                                                                    {
-                                                                      -- AGGREGATE  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                    }
+                                                            -- REPLICATE  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                 -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- SORT_GROUP_BY[$$10217, $$10218]  |PARTITIONED|
+                                          {
+                                            -- AGGREGATE  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                          }
+                                    -- HASH_PARTITION_EXCHANGE [$$10217, $$10218]  |PARTITIONED|
+                                      -- SORT_GROUP_BY[$$737, $$738]  |PARTITIONED|
+                                              {
+                                                -- AGGREGATE  |LOCAL|
+                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                              }
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ASSIGN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- SORT_GROUP_BY[$$792, $$793, $$794]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- HASH_PARTITION_EXCHANGE [$$792, $$793, $$794]  |PARTITIONED|
-                                                        -- SORT_GROUP_BY[$$722, $$723, $$724]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
+                                                    -- REPLICATE  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- STREAM_PROJECT  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- SORT_GROUP_BY[$$10220]  |PARTITIONED|
+                                      {
+                                        -- AGGREGATE  |LOCAL|
+                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                      }
+                                -- HASH_PARTITION_EXCHANGE [$$10220]  |PARTITIONED|
+                                  -- SORT_GROUP_BY[$$739]  |PARTITIONED|
+                                          {
+                                            -- AGGREGATE  |LOCAL|
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                          }
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- SORT_GROUP_BY[$$796, $$797]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- HASH_PARTITION_EXCHANGE [$$796, $$797]  |PARTITIONED|
-                                                    -- SORT_GROUP_BY[$$725, $$726]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
+                                                -- REPLICATE  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- SORT_GROUP_BY[$$10222]  |PARTITIONED|
+                                  {
+                                    -- AGGREGATE  |LOCAL|
+                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                  }
+                            -- HASH_PARTITION_EXCHANGE [$$10222]  |PARTITIONED|
+                              -- SORT_GROUP_BY[$$740]  |PARTITIONED|
+                                      {
+                                        -- AGGREGATE  |LOCAL|
+                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                      }
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STREAM_PROJECT  |PARTITIONED|
                                     -- ASSIGN  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- SORT_GROUP_BY[$$799, $$800]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
-                                              -- HASH_PARTITION_EXCHANGE [$$799, $$800]  |PARTITIONED|
-                                                -- SORT_GROUP_BY[$$727, $$728]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- REPLICATE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- SORT_GROUP_BY[$$802]  |PARTITIONED|
-                                                {
-                                                  -- AGGREGATE  |LOCAL|
-                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                }
-                                          -- HASH_PARTITION_EXCHANGE [$$802]  |PARTITIONED|
-                                            -- SORT_GROUP_BY[$$729]  |PARTITIONED|
-                                                    {
-                                                      -- AGGREGATE  |LOCAL|
-                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                    }
+                                            -- REPLICATE  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- REPLICATE  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- SORT_GROUP_BY[$$804, $$805]  |PARTITIONED|
-                                            {
-                                              -- AGGREGATE  |LOCAL|
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                            }
-                                      -- HASH_PARTITION_EXCHANGE [$$804, $$805]  |PARTITIONED|
-                                        -- SORT_GROUP_BY[$$730, $$731]  |PARTITIONED|
-                                                {
-                                                  -- AGGREGATE  |LOCAL|
-                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                }
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- REPLICATE  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$807]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- HASH_PARTITION_EXCHANGE [$$807]  |PARTITIONED|
-                                    -- SORT_GROUP_BY[$$732]  |PARTITIONED|
-                                            {
-                                              -- AGGREGATE  |LOCAL|
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                            }
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- REPLICATE  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- ASSIGN  |PARTITIONED|
-                      -- STREAM_PROJECT  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- SORT_GROUP_BY[$$809]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$809]  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$733]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- REPLICATE  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ASSIGN  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- SORT_GROUP_BY[$$811]  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- SORT_GROUP_BY[$$10224]  |PARTITIONED|
+                                {
+                                  -- AGGREGATE  |LOCAL|
+                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                }
+                          -- HASH_PARTITION_EXCHANGE [$$10224]  |PARTITIONED|
+                            -- SORT_GROUP_BY[$$741]  |PARTITIONED|
                                     {
                                       -- AGGREGATE  |LOCAL|
                                         -- NESTED_TUPLE_SOURCE  |LOCAL|
                                     }
-                              -- HASH_PARTITION_EXCHANGE [$$811]  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$734]  |PARTITIONED|
-                                        {
-                                          -- AGGREGATE  |LOCAL|
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                        }
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STREAM_PROJECT  |PARTITIONED|
+                                  -- ASSIGN  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
                                       -- ASSIGN  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- REPLICATE  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- REPLICATE  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- DATASOURCE_SCAN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
index 1a36d3c..f9372b2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
@@ -3,154 +3,32 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$46]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$46][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$46]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$47][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                                      -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
index 1a36d3c..f9372b2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
@@ -3,154 +3,32 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$46]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$46][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$46]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$47][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                                      -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
index 619b74e..4580d06 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
@@ -14,7 +14,7 @@
                 -- HASH_PARTITION_EXCHANGE [$$54]  |PARTITIONED|
                   -- STREAM_PROJECT  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- NESTED_LOOP  |PARTITIONED|
+                      -- HYBRID_HASH_JOIN [$$65][$$54]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- STREAM_SELECT  |PARTITIONED|
@@ -24,143 +24,22 @@
                                     -- DATASOURCE_SCAN  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$54]  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- HYBRID_HASH_JOIN [$$55][$$idRight_0]  |PARTITIONED|
+                            -- STREAM_SELECT  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                  -- EXTERNAL_GROUP_BY[$$135, $$133]  |PARTITIONED|
-                                          {
-                                            -- AGGREGATE  |LOCAL|
-                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                          }
-                                    -- HASH_PARTITION_EXCHANGE [$$135, $$133]  |PARTITIONED|
-                                      -- STREAM_PROJECT  |PARTITIONED|
-                                        -- STREAM_SELECT  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                  -- UNNEST  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- PRE_CLUSTERED_GROUP_BY[$$70]  |PARTITIONED|
-                                                              {
-                                                                -- AGGREGATE  |LOCAL|
-                                                                  -- STREAM_SELECT  |LOCAL|
-                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                              }
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STABLE_SORT [$$70(ASC), $$i(ASC)]  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- REPLICATE  |PARTITIONED|
-                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- SORT_MERGE_EXCHANGE [$$140(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                        -- STABLE_SORT [$$140(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- EXTERNAL_GROUP_BY[$$147]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- HASH_PARTITION_EXCHANGE [$$147]  |PARTITIONED|
-                                                                                                -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                        {
-                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                        }
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
+                                  -- BTREE_SEARCH  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STABLE_SORT [$$68(ASC)]  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                -- STREAM_SELECT  |PARTITIONED|
                                                   -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- UNNEST  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- PRE_CLUSTERED_GROUP_BY[$$66]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- STREAM_SELECT  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STABLE_SORT [$$66(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- STREAM_SELECT  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- SORT_MERGE_EXCHANGE [$$140(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                      -- STABLE_SORT [$$140(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$147]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$147]  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- ASSIGN  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
index 774794e..67b7088 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
@@ -14,159 +14,35 @@
                 -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
                   -- STREAM_PROJECT  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- NESTED_LOOP  |PARTITIONED|
+                      -- HYBRID_HASH_JOIN [$$72][$$56]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ASSIGN  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- REPLICATE  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- BTREE_SEARCH  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
-                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- HYBRID_HASH_JOIN [$$57][$$idRight_0]  |PARTITIONED|
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
+                                    -- BTREE_SEARCH  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
+                          -- STREAM_SELECT  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ASSIGN  |PARTITIONED|
+                                -- STREAM_PROJECT  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- BTREE_SEARCH  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- STABLE_SORT [$$76(ASC)]  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                  -- EXTERNAL_GROUP_BY[$$138, $$136]  |PARTITIONED|
-                                          {
-                                            -- AGGREGATE  |LOCAL|
-                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                          }
-                                    -- HASH_PARTITION_EXCHANGE [$$138, $$136]  |PARTITIONED|
-                                      -- STREAM_PROJECT  |PARTITIONED|
-                                        -- STREAM_SELECT  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                  -- UNNEST  |PARTITIONED|
+                                            -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- PRE_CLUSTERED_GROUP_BY[$$73]  |PARTITIONED|
-                                                              {
-                                                                -- AGGREGATE  |LOCAL|
-                                                                  -- STREAM_SELECT  |LOCAL|
-                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                              }
+                                                      -- REPLICATE  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STABLE_SORT [$$73(ASC), $$i(ASC)]  |PARTITIONED|
+                                                          -- BTREE_SEARCH  |PARTITIONED|
                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- REPLICATE  |PARTITIONED|
-                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                        -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                                -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                        {
-                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                        }
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- UNNEST  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- PRE_CLUSTERED_GROUP_BY[$$67]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- STREAM_SELECT  |LOCAL|
-                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STABLE_SORT [$$67(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- BTREE_SEARCH  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                      -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
+                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
index 336a4d4..3a5824d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
@@ -20,162 +20,38 @@
                             -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
                               -- STREAM_PROJECT  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- NESTED_LOOP  |PARTITIONED|
+                                  -- HYBRID_HASH_JOIN [$$72][$$56]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                             -- REPLICATE  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- BTREE_SEARCH  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
-                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                      -- STREAM_PROJECT  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- HYBRID_HASH_JOIN [$$57][$$idRight_0]  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                                                -- BTREE_SEARCH  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                    -- ASSIGN  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                    -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
+                                      -- STREAM_SELECT  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- BTREE_SEARCH  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STABLE_SORT [$$76(ASC)]  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                              -- EXTERNAL_GROUP_BY[$$138, $$136]  |PARTITIONED|
-                                                      {
-                                                        -- AGGREGATE  |LOCAL|
-                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                      }
-                                                -- HASH_PARTITION_EXCHANGE [$$138, $$136]  |PARTITIONED|
-                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- STREAM_SELECT  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                            -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                              -- UNNEST  |PARTITIONED|
+                                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$73]  |PARTITIONED|
-                                                                          {
-                                                                            -- AGGREGATE  |LOCAL|
-                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                          }
+                                                                  -- REPLICATE  |PARTITIONED|
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$73(ASC), $$i(ASC)]  |PARTITIONED|
+                                                                      -- BTREE_SEARCH  |PARTITIONED|
                                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                    -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- PRE_CLUSTERED_GROUP_BY[$$67]  |PARTITIONED|
-                                                                              {
-                                                                                -- AGGREGATE  |LOCAL|
-                                                                                  -- STREAM_SELECT  |LOCAL|
-                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                              }
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- STABLE_SORT [$$67(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- REPLICATE  |PARTITIONED|
-                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                  -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                              {
-                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                              }
-                                                                                                        -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                  {
-                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                  }
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                          -- ASSIGN  |PARTITIONED|
+                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                 -- BROADCAST_EXCHANGE  |PARTITIONED|
                   -- AGGREGATE  |UNPARTITIONED|
                     -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
@@ -195,159 +71,35 @@
                                       -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- NESTED_LOOP  |PARTITIONED|
+                                            -- HYBRID_HASH_JOIN [$$72][$$56]  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                       -- REPLICATE  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- BTREE_SEARCH  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- HYBRID_HASH_JOIN [$$57][$$idRight_0]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ASSIGN  |PARTITIONED|
+                                                          -- BTREE_SEARCH  |PARTITIONED|
                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
+                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- HASH_PARTITION_EXCHANGE [$$56]  |PARTITIONED|
+                                                -- STREAM_SELECT  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                    -- ASSIGN  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- BTREE_SEARCH  |PARTITIONED|
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- STABLE_SORT [$$76(ASC)]  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                      -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                                        -- EXTERNAL_GROUP_BY[$$138, $$136]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- HASH_PARTITION_EXCHANGE [$$138, $$136]  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- STREAM_SELECT  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
+                                                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                                        -- ASSIGN  |PARTITIONED|
                                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- PRE_CLUSTERED_GROUP_BY[$$73]  |PARTITIONED|
-                                                                                    {
-                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                    }
+                                                                            -- REPLICATE  |PARTITIONED|
                                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$73(ASC), $$i(ASC)]  |PARTITIONED|
+                                                                                -- BTREE_SEARCH  |PARTITIONED|
                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                              -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                                          {
-                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                          }
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                              {
-                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                              }
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- UNNEST  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- PRE_CLUSTERED_GROUP_BY[$$67]  |PARTITIONED|
-                                                                                        {
-                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                            -- STREAM_SELECT  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                        }
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- STABLE_SORT [$$67(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- REPLICATE  |PARTITIONED|
-                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- SORT_MERGE_EXCHANGE [$$143(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                            -- STABLE_SORT [$$143(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- EXTERNAL_GROUP_BY[$$150]  |PARTITIONED|
-                                                                                                                        {
-                                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                        }
-                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
-                                                                                                                    -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                    -- ASSIGN  |PARTITIONED|
+                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
index cbbce46..53559f6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$42][$$32]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$32][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$32]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$33][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$45(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$112, $$110]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$112, $$110]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$47]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$47(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
index 79e824e..53559f6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$42][$$32]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$32][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$32]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$33][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$45(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$112, $$110]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$112, $$110]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
index 1daa1cf..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$48]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$48(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
index 01e070e..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
index 22ad072..2a2ad4f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$43]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$43][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$44][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$43]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
index 1daa1cf..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$48]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$48(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
index 01e070e..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
index d3acd29..10f2ce8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$42]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$42][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$43][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$42]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_01.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
index cbbce46..53559f6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$42][$$32]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$32][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$32]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$33][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$45(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$112, $$110]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$112, $$110]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$47]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$47(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
index 79e824e..53559f6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$42][$$32]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$32][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$32]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$33][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$45(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$112, $$110]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$112, $$110]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$43]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$43(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$117(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$117(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$124]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
index 80d465e..3fdbcd1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
@@ -2,156 +2,40 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- STREAM_SELECT  |PARTITIONED|
-          -- STREAM_PROJECT  |PARTITIONED|
-            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- HYBRID_HASH_JOIN [$$50][$$idLeft_0]  |PARTITIONED|
-                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ASSIGN  |PARTITIONED|
-                      -- STREAM_PROJECT  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- BTREE_SEARCH  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$51][$$idRight_0]  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$63][$$50]  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- ASSIGN  |PARTITIONED|
                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                          -- EXTERNAL_GROUP_BY[$$130, $$128]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- HASH_PARTITION_EXCHANGE [$$130, $$128]  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- STREAM_SELECT  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$50]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$68(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$65]  |PARTITIONED|
-                                                      {
-                                                        -- AGGREGATE  |LOCAL|
-                                                          -- STREAM_SELECT  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                      }
+                                              -- REPLICATE  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STABLE_SORT [$$65(ASC), $$i(ASC)]  |PARTITIONED|
+                                                  -- BTREE_SEARCH  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- UNNEST  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$135(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$135(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$142]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$142]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$60]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$60(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$135(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$135(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$142]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$142]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
index 1daa1cf..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$48]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$48(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
index 01e070e..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
index 22ad072..2a2ad4f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$43]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$43][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$44][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$43]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
index 1daa1cf..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$48]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$48(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
index 01e070e..956cdc5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$43][$$33]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$33][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$33]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$34][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$113, $$111]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$113, $$111]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$118(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$118(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$125]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$125]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
index d3acd29..10f2ce8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$55][$$42]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$42][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$43][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$125, $$123]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$125, $$123]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$56]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$56(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$130(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$130(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$137]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$42]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$58(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
index 874503d..4a3ac9a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
@@ -15,161 +15,42 @@
                   -- HASH_PARTITION_EXCHANGE [$$39]  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- NESTED_LOOP  |PARTITIONED|
+                        -- HYBRID_HASH_JOIN [$$60][$$39]  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- REPLICATE  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- REPLICATE  |PARTITIONED|
+                                          -- BTREE_SEARCH  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                          -- HASH_PARTITION_EXCHANGE [$$39]  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- HYBRID_HASH_JOIN [$$40][$$idRight_0]  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_SELECT  |PARTITIONED|
+                                -- STREAM_PROJECT  |PARTITIONED|
+                                  -- ASSIGN  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
                                       -- ASSIGN  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ASSIGN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                  -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                    -- EXTERNAL_GROUP_BY[$$136, $$134]  |PARTITIONED|
-                                            {
-                                              -- AGGREGATE  |LOCAL|
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                            }
-                                      -- HASH_PARTITION_EXCHANGE [$$136, $$134]  |PARTITIONED|
-                                        -- STREAM_PROJECT  |PARTITIONED|
-                                          -- STREAM_SELECT  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- BTREE_SEARCH  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                  -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                    -- UNNEST  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$67]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$67(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                          -- UNNEST  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                -- STABLE_SORT [$$66(ASC)]  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                          -- ASSIGN  |PARTITIONED|
+                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                              -- ASSIGN  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- REPLICATE  |PARTITIONED|
+                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                      -- BTREE_SEARCH  |PARTITIONED|
+                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                           -- ASSIGN  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- SORT_MERGE_EXCHANGE [$$141(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                          -- STABLE_SORT [$$141(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- EXTERNAL_GROUP_BY[$$148]  |PARTITIONED|
-                                                                                                      {
-                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                      }
-                                                                                                -- HASH_PARTITION_EXCHANGE [$$148]  |PARTITIONED|
-                                                                                                  -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                          {
-                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                          }
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- UNNEST  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                  -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- UNNEST  |PARTITIONED|
-                                                        -- ASSIGN  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- PRE_CLUSTERED_GROUP_BY[$$61]  |PARTITIONED|
-                                                                    {
-                                                                      -- AGGREGATE  |LOCAL|
-                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                    }
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STABLE_SORT [$$61(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- UNNEST  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- BTREE_SEARCH  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- REPLICATE  |PARTITIONED|
-                                                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                  -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- SORT_MERGE_EXCHANGE [$$141(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                        -- STABLE_SORT [$$141(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- EXTERNAL_GROUP_BY[$$148]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- HASH_PARTITION_EXCHANGE [$$148]  |PARTITIONED|
-                                                                                                -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                        {
-                                                                                                          -- AGGREGATE  |LOCAL|
-                                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                        }
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
index dc19740..93d1ef5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
@@ -21,164 +21,45 @@
                               -- HASH_PARTITION_EXCHANGE [$$68]  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- NESTED_LOOP  |PARTITIONED|
+                                    -- HYBRID_HASH_JOIN [$$89][$$68]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ASSIGN  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
                                               -- ASSIGN  |PARTITIONED|
-                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                  -- ASSIGN  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- REPLICATE  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- REPLICATE  |PARTITIONED|
+                                                      -- BTREE_SEARCH  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- BTREE_SEARCH  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- ASSIGN  |PARTITIONED|
-                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                          -- ASSIGN  |PARTITIONED|
+                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- HASH_PARTITION_EXCHANGE [$$68]  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$69][$$idRight_0]  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- STREAM_SELECT  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- ASSIGN  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                                -- EXTERNAL_GROUP_BY[$$165, $$163]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- HASH_PARTITION_EXCHANGE [$$165, $$163]  |PARTITIONED|
-                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                      -- STREAM_SELECT  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- BTREE_SEARCH  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                              -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- PRE_CLUSTERED_GROUP_BY[$$96]  |PARTITIONED|
-                                                                            {
-                                                                              -- AGGREGATE  |LOCAL|
-                                                                                -- STREAM_SELECT  |LOCAL|
-                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                            }
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- STABLE_SORT [$$96(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                      -- UNNEST  |PARTITIONED|
-                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                            -- STABLE_SORT [$$95(ASC)]  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                      -- ASSIGN  |PARTITIONED|
+                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                                          -- ASSIGN  |PARTITIONED|
+                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                              -- REPLICATE  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                  -- BTREE_SEARCH  |PARTITIONED|
+                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                       -- ASSIGN  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- REPLICATE  |PARTITIONED|
-                                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- SORT_MERGE_EXCHANGE [$$170(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                      -- STABLE_SORT [$$170(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EXTERNAL_GROUP_BY[$$177]  |PARTITIONED|
-                                                                                                                  {
-                                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                  }
-                                                                                                            -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
-                                                                                                              -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                      {
-                                                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                      }
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- PRE_CLUSTERED_GROUP_BY[$$90]  |PARTITIONED|
-                                                                                {
-                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                }
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- STABLE_SORT [$$90(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- UNNEST  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                        -- REPLICATE  |PARTITIONED|
-                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                            -- ASSIGN  |PARTITIONED|
-                                                                                              -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- SORT_MERGE_EXCHANGE [$$170(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                    -- STABLE_SORT [$$170(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- EXTERNAL_GROUP_BY[$$177]  |PARTITIONED|
-                                                                                                                {
-                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                }
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
-                                                                                                            -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                    {
-                                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                    }
-                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- UNNEST  |PARTITIONED|
-                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                   -- BROADCAST_EXCHANGE  |PARTITIONED|
                     -- AGGREGATE  |UNPARTITIONED|
                       -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
@@ -198,161 +79,42 @@
                                         -- HASH_PARTITION_EXCHANGE [$$68]  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- NESTED_LOOP  |PARTITIONED|
+                                              -- HYBRID_HASH_JOIN [$$89][$$68]  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                   -- STREAM_PROJECT  |PARTITIONED|
                                                     -- ASSIGN  |PARTITIONED|
                                                       -- STREAM_PROJECT  |PARTITIONED|
                                                         -- ASSIGN  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ASSIGN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- REPLICATE  |PARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- REPLICATE  |PARTITIONED|
+                                                                -- BTREE_SEARCH  |PARTITIONED|
                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- BTREE_SEARCH  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                    -- ASSIGN  |PARTITIONED|
+                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE [$$68]  |PARTITIONED|
                                                   -- STREAM_PROJECT  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- HYBRID_HASH_JOIN [$$69][$$idRight_0]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_SELECT  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                        -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                                                          -- EXTERNAL_GROUP_BY[$$165, $$163]  |PARTITIONED|
-                                                                  {
-                                                                    -- AGGREGATE  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                  }
-                                                            -- HASH_PARTITION_EXCHANGE [$$165, $$163]  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  -- BTREE_SEARCH  |PARTITIONED|
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                                                          -- UNNEST  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- PRE_CLUSTERED_GROUP_BY[$$96]  |PARTITIONED|
-                                                                                      {
-                                                                                        -- AGGREGATE  |LOCAL|
-                                                                                          -- STREAM_SELECT  |LOCAL|
-                                                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                      }
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$96(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$95(ASC)]  |PARTITIONED|
+                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                          -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                                                            -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                                -- ASSIGN  |PARTITIONED|
+                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                    -- ASSIGN  |PARTITIONED|
+                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                        -- REPLICATE  |PARTITIONED|
+                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                            -- BTREE_SEARCH  |PARTITIONED|
+                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                 -- ASSIGN  |PARTITIONED|
-                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                    -- REPLICATE  |PARTITIONED|
-                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                        -- ASSIGN  |PARTITIONED|
-                                                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- SORT_MERGE_EXCHANGE [$$170(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                                -- STABLE_SORT [$$170(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- EXTERNAL_GROUP_BY[$$177]  |PARTITIONED|
-                                                                                                                            {
-                                                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                            }
-                                                                                                                      -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
-                                                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                                {
-                                                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                                }
-                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- UNNEST  |PARTITIONED|
-                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- PRE_CLUSTERED_GROUP_BY[$$90]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- STREAM_SELECT  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- STABLE_SORT [$$90(ASC), $$i(ASC)]  |PARTITIONED|
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- UNNEST  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- REPLICATE  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                  -- REPLICATE  |PARTITIONED|
-                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                            -- SORT_MERGE_EXCHANGE [$$170(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                                              -- STABLE_SORT [$$170(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- EXTERNAL_GROUP_BY[$$177]  |PARTITIONED|
-                                                                                                                          {
-                                                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                          }
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
-                                                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                                              {
-                                                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                                              }
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-check_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-check_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-inline.plan
index 3ece49c..9dd364e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard-inline.plan
@@ -3,158 +3,35 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$41][$$26]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$26][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$27][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$26]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$119, $$117]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$119, $$117]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/ngram-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
index cfd8f3f..cb9ca09 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
@@ -2,160 +2,48 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- STREAM_SELECT  |PARTITIONED|
-          -- STREAM_PROJECT  |PARTITIONED|
-            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- HYBRID_HASH_JOIN [$$31][$$idLeft_0]  |PARTITIONED|
-                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ASSIGN  |PARTITIONED|
-                      -- STREAM_PROJECT  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- REPLICATE  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$49][$$31]  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                -- ASSIGN  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- BTREE_SEARCH  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$32][$$idRight_0]  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$31]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                    -- STABLE_SORT [$$56(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                          -- EXTERNAL_GROUP_BY[$$124, $$122]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- HASH_PARTITION_EXCHANGE [$$124, $$122]  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- STREAM_SELECT  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$55]  |PARTITIONED|
-                                                      {
-                                                        -- AGGREGATE  |LOCAL|
-                                                          -- STREAM_SELECT  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                      }
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STABLE_SORT [$$55(ASC), $$i(ASC)]  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- UNNEST  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$129(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$129(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$136]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$136]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
                                               -- ASSIGN  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$49]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
+                                                  -- REPLICATE  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$49(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$129(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$129(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$136]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$136]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- BTREE_SEARCH  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- ASSIGN  |PARTITIONED|
+                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-check_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-inline.plan
index 3ece49c..9dd364e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard-inline.plan
@@ -3,158 +3,35 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$41][$$26]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$26][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$27][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$26]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$119, $$117]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$119, $$117]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/word-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
index ab750e8..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_02.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_03.plan
index bbea9b2..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_04.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-check_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-inline.plan
index 3ece49c..9dd364e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard-inline.plan
@@ -3,158 +3,35 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$41][$$26]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$26][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$27][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$26]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$119, $$117]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$119, $$117]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_02.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_03.plan
index bbea9b2..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_04.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/ngram-jaccard_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.plan
index ab750e8..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.plan
index 44471c4..826f335 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$30][$$20]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$20][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$21][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$108, $$106]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$108, $$106]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$33(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$113(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$113(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$120]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
index cfd8f3f..cb9ca09 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.plan
@@ -2,160 +2,48 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- STREAM_SELECT  |PARTITIONED|
-          -- STREAM_PROJECT  |PARTITIONED|
-            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- HYBRID_HASH_JOIN [$$31][$$idLeft_0]  |PARTITIONED|
-                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ASSIGN  |PARTITIONED|
-                      -- STREAM_PROJECT  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- REPLICATE  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$49][$$31]  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                -- ASSIGN  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- BTREE_SEARCH  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$32][$$idRight_0]  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$31]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                    -- STABLE_SORT [$$56(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                          -- EXTERNAL_GROUP_BY[$$124, $$122]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- HASH_PARTITION_EXCHANGE [$$124, $$122]  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- STREAM_SELECT  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$55]  |PARTITIONED|
-                                                      {
-                                                        -- AGGREGATE  |LOCAL|
-                                                          -- STREAM_SELECT  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                      }
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STABLE_SORT [$$55(ASC), $$i(ASC)]  |PARTITIONED|
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- UNNEST  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$129(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$129(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$136]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$136]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
                                               -- ASSIGN  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$49]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
+                                                  -- REPLICATE  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$49(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$129(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$129(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$136]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$136]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- BTREE_SEARCH  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- ASSIGN  |PARTITIONED|
+                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_02.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_03.plan
index bbea9b2..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_04.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-check_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-inline.plan
index 3ece49c..9dd364e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard-inline.plan
@@ -3,158 +3,35 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$41][$$26]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$26][$$idLeft_0]  |PARTITIONED|
-                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- DATASOURCE_SCAN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- REPLICATE  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- ASSIGN  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$27][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$26]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ASSIGN  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$119, $$117]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$119, $$117]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
+                                -- BTREE_SEARCH  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STABLE_SORT [$$46(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
+                                        -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$44(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$124(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$124(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$131]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$131]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_01.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_01.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_02.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_02.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_03.plan
index bbea9b2..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_03.plan
@@ -3,145 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_04.plan
index 3790694..e91e17c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/word-jaccard_04.plan
@@ -3,146 +3,29 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$31][$$21]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$21][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- ASSIGN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- DATASOURCE_SCAN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$22][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$109, $$107]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$109, $$107]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- STREAM_PROJECT  |PARTITIONED|
+                                            -- ASSIGN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$40]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
+                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$40(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$114(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$114(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$121]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
index 7bcd281..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.plan
index 40b2f5b..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.plan
index c07cb22..3b0a3c9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$29][$$17]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$17][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$18][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$99, $$97]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$99, $$97]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$17]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$32(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_02.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_03.plan
index 40b2f5b..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_04.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.plan
index 79e7525..443e560 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$29][$$16]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$16][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$17][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$99, $$97]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$99, $$97]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$16]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$32(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.plan
index 7bcd281..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.plan
index df6eef4..38b5343 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$24][$$14]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$14][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$14]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$15][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$27(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$94, $$92]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$94, $$92]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$29]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$29(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$25]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$25(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$99(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$99(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$106]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.plan
index 0cf00f2..0cd8363 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.plan
@@ -2,156 +2,40 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- STREAM_SELECT  |PARTITIONED|
-          -- STREAM_PROJECT  |PARTITIONED|
-            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- HYBRID_HASH_JOIN [$$24][$$idLeft_0]  |PARTITIONED|
-                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ASSIGN  |PARTITIONED|
-                      -- STREAM_PROJECT  |PARTITIONED|
-                        -- ASSIGN  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- REPLICATE  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- BTREE_SEARCH  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
-                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$25][$$idRight_0]  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$37][$$24]  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ASSIGN  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- STREAM_PROJECT  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- ASSIGN  |PARTITIONED|
                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                        -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                          -- EXTERNAL_GROUP_BY[$$104, $$102]  |PARTITIONED|
-                                  {
-                                    -- AGGREGATE  |LOCAL|
-                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                  }
-                            -- HASH_PARTITION_EXCHANGE [$$104, $$102]  |PARTITIONED|
-                              -- STREAM_PROJECT  |PARTITIONED|
-                                -- STREAM_SELECT  |PARTITIONED|
-                                  -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                          -- UNNEST  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$24]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$42(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
-                                                      {
-                                                        -- AGGREGATE  |LOCAL|
-                                                          -- STREAM_SELECT  |LOCAL|
-                                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                      }
+                                              -- REPLICATE  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- STABLE_SORT [$$39(ASC), $$i(ASC)]  |PARTITIONED|
+                                                  -- BTREE_SEARCH  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- UNNEST  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                -- ASSIGN  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$109(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$109(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$116]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$116]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ASSIGN  |PARTITIONED|
-                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                  -- PRE_CLUSTERED_GROUP_BY[$$34]  |PARTITIONED|
-                                                          {
-                                                            -- AGGREGATE  |LOCAL|
-                                                              -- STREAM_SELECT  |LOCAL|
-                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                          }
-                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                      -- STABLE_SORT [$$34(ASC), $$i(ASC)]  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- UNNEST  |PARTITIONED|
-                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          -- REPLICATE  |PARTITIONED|
-                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- REPLICATE  |PARTITIONED|
-                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                      -- ASSIGN  |PARTITIONED|
-                                                                        -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- SORT_MERGE_EXCHANGE [$$109(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                              -- STABLE_SORT [$$109(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                  -- EXTERNAL_GROUP_BY[$$116]  |PARTITIONED|
-                                                                                          {
-                                                                                            -- AGGREGATE  |LOCAL|
-                                                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                          }
-                                                                                    -- HASH_PARTITION_EXCHANGE [$$116]  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                            -- UNNEST  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- ASSIGN  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_02.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_03.plan
index 40b2f5b..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_04.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.plan
index c07cb22..3b0a3c9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$29][$$17]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$17][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$18][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$99, $$97]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$99, $$97]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$17]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$32(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_01.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_01.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_02.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_02.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_03.plan
index 40b2f5b..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_03.plan
@@ -3,141 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_04.plan
index a871960..4ae3e53 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_04.plan
@@ -3,142 +3,26 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$25][$$15]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$15][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$15]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$16][$$idRight_0]  |PARTITIONED|
+                        -- BTREE_SEARCH  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- DATASOURCE_SCAN  |PARTITIONED|
+                            -- STABLE_SORT [$$28(ASC)]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$95, $$93]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$95, $$93]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
+                                -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                        {
-                                                          -- AGGREGATE  |LOCAL|
-                                                            -- STREAM_SELECT  |LOCAL|
-                                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                        }
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- UNNEST  |PARTITIONED|
-                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                    -- ASSIGN  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ASSIGN  |PARTITIONED|
-                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- REPLICATE  |PARTITIONED|
-                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                          -- ASSIGN  |PARTITIONED|
-                                                                            -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                  -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                      -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                              {
-                                                                                                -- AGGREGATE  |LOCAL|
-                                                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                              }
-                                                                                        -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                          -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                  {
-                                                                                                    -- AGGREGATE  |LOCAL|
-                                                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                  }
-                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                -- UNNEST  |PARTITIONED|
-                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                    -- ASSIGN  |PARTITIONED|
-                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
-                                                            {
-                                                              -- AGGREGATE  |LOCAL|
-                                                                -- STREAM_SELECT  |LOCAL|
-                                                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                            }
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- STABLE_SORT [$$26(ASC), $$i(ASC)]  |PARTITIONED|
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- UNNEST  |PARTITIONED|
-                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- REPLICATE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$100(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$100(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$107]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$107]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_inline_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_inline_03.plan
index 79e7525..443e560 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_inline_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/word-jaccard_inline_03.plan
@@ -3,143 +3,27 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- STREAM_SELECT  |PARTITIONED|
-            -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$29][$$16]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- HYBRID_HASH_JOIN [$$16][$$idLeft_0]  |PARTITIONED|
+                -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- DATASOURCE_SCAN  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                  -- HASH_PARTITION_EXCHANGE [$$idLeft_0]  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$17][$$idRight_0]  |PARTITIONED|
-                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- ASSIGN  |PARTITIONED|
-                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$idRight_0]  |PARTITIONED|
-                            -- EXTERNAL_GROUP_BY[$$99, $$97]  |PARTITIONED|
-                                    {
-                                      -- AGGREGATE  |LOCAL|
-                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                    }
-                              -- HASH_PARTITION_EXCHANGE [$$99, $$97]  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$prefixTokenRight][$$prefixTokenLeft]  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenRight]  |PARTITIONED|
-                                            -- UNNEST  |PARTITIONED|
-                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$prefixTokenLeft]  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- UNNEST  |PARTITIONED|
-                                                -- ASSIGN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- REPLICATE  |PARTITIONED|
-                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                        -- PRE_CLUSTERED_GROUP_BY[$$30]  |PARTITIONED|
-                                                                {
-                                                                  -- AGGREGATE  |LOCAL|
-                                                                    -- STREAM_SELECT  |LOCAL|
-                                                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                }
-                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- STABLE_SORT [$$30(ASC), $$i(ASC)]  |PARTITIONED|
-                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- HYBRID_HASH_JOIN [$$token][$$tokenGroupped]  |PARTITIONED|
-                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- UNNEST  |PARTITIONED|
-                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                            -- ASSIGN  |PARTITIONED|
-                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                        -- ASSIGN  |PARTITIONED|
-                                                                          -- RUNNING_AGGREGATE  |PARTITIONED|
-                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                              -- SORT_MERGE_EXCHANGE [$$104(ASC), $$tokenGroupped(ASC) ]  |PARTITIONED|
-                                                                                -- STABLE_SORT [$$104(ASC), $$tokenGroupped(ASC)]  |PARTITIONED|
-                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                    -- EXTERNAL_GROUP_BY[$$111]  |PARTITIONED|
-                                                                                            {
-                                                                                              -- AGGREGATE  |LOCAL|
-                                                                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                            }
-                                                                                      -- HASH_PARTITION_EXCHANGE [$$111]  |PARTITIONED|
-                                                                                        -- EXTERNAL_GROUP_BY[$$token]  |PARTITIONED|
-                                                                                                {
-                                                                                                  -- AGGREGATE  |LOCAL|
-                                                                                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                }
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                              -- UNNEST  |PARTITIONED|
-                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$16]  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- ASSIGN  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- BTREE_SEARCH  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STABLE_SORT [$$32(ASC)]  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
+                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ASSIGN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan
index 2348735..3584dca 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan
@@ -15,14 +15,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$22(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$23(ASC) ]  |PARTITIONED|
           -- STREAM_PROJECT  |PARTITIONED|
             -- STREAM_SELECT  |PARTITIONED|
               -- ASSIGN  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- BTREE_SEARCH  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                      -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01_ps.plan
index 1b855f5..473c2d8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01_ps.plan
@@ -16,8 +16,8 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- STABLE_SORT [$$22(ASC)]  |PARTITIONED|
-            -- RANGE_PARTITION_EXCHANGE [$$22(ASC)]  |PARTITIONED|
+          -- STABLE_SORT [$$23(ASC)]  |PARTITIONED|
+            -- RANGE_PARTITION_EXCHANGE [$$23(ASC)]  |PARTITIONED|
               -- FORWARD  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
@@ -28,7 +28,7 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- BTREE_SEARCH  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                                  -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -50,7 +50,7 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- BTREE_SEARCH  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                                            -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan
index 6bb0d82..fa82276 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan
@@ -15,14 +15,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$24(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
           -- STREAM_SELECT  |PARTITIONED|
             -- STREAM_PROJECT  |PARTITIONED|
               -- ASSIGN  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- BTREE_SEARCH  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                      -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02_ps.plan
index 179b91c..26faa03 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02_ps.plan
@@ -16,8 +16,8 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- STABLE_SORT [$$24(ASC)]  |PARTITIONED|
-            -- RANGE_PARTITION_EXCHANGE [$$24(ASC)]  |PARTITIONED|
+          -- STABLE_SORT [$$25(ASC)]  |PARTITIONED|
+            -- RANGE_PARTITION_EXCHANGE [$$25(ASC)]  |PARTITIONED|
               -- FORWARD  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
@@ -28,7 +28,7 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- BTREE_SEARCH  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                                  -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -50,7 +50,7 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- BTREE_SEARCH  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                                            -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan
index 2348735..3584dca 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan
@@ -15,14 +15,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$22(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$23(ASC) ]  |PARTITIONED|
           -- STREAM_PROJECT  |PARTITIONED|
             -- STREAM_SELECT  |PARTITIONED|
               -- ASSIGN  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- BTREE_SEARCH  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                      -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01_ps.plan
index 1b855f5..473c2d8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01_ps.plan
@@ -16,8 +16,8 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- STABLE_SORT [$$22(ASC)]  |PARTITIONED|
-            -- RANGE_PARTITION_EXCHANGE [$$22(ASC)]  |PARTITIONED|
+          -- STABLE_SORT [$$23(ASC)]  |PARTITIONED|
+            -- RANGE_PARTITION_EXCHANGE [$$23(ASC)]  |PARTITIONED|
               -- FORWARD  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
@@ -28,7 +28,7 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- BTREE_SEARCH  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                                  -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -50,7 +50,7 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- BTREE_SEARCH  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+                                            -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan
index 6bb0d82..fa82276 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan
@@ -15,14 +15,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$24(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
           -- STREAM_SELECT  |PARTITIONED|
             -- STREAM_PROJECT  |PARTITIONED|
               -- ASSIGN  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- BTREE_SEARCH  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                      -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02_ps.plan
index 179b91c..26faa03 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02_ps.plan
@@ -16,8 +16,8 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- STABLE_SORT [$$24(ASC)]  |PARTITIONED|
-            -- RANGE_PARTITION_EXCHANGE [$$24(ASC)]  |PARTITIONED|
+          -- STABLE_SORT [$$25(ASC)]  |PARTITIONED|
+            -- RANGE_PARTITION_EXCHANGE [$$25(ASC)]  |PARTITIONED|
               -- FORWARD  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
@@ -28,7 +28,7 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- BTREE_SEARCH  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                                  -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -50,7 +50,7 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- BTREE_SEARCH  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                                            -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_PROJECT  |PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt_ps.plan
index f774187..b99c3c6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt_ps.plan
@@ -22,13 +22,13 @@
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- EXTERNAL_GROUP_BY[$$201, $$202]  |PARTITIONED|
+                      -- EXTERNAL_GROUP_BY[$$212, $$213]  |PARTITIONED|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- NESTED_TUPLE_SOURCE  |LOCAL|
                               }
-                        -- HASH_PARTITION_EXCHANGE [$$201, $$202]  |PARTITIONED|
-                          -- EXTERNAL_GROUP_BY[$$170, $$171]  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$212, $$213]  |PARTITIONED|
+                          -- EXTERNAL_GROUP_BY[$$181, $$182]  |PARTITIONED|
                                   {
                                     -- AGGREGATE  |LOCAL|
                                       -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -51,13 +51,13 @@
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- REPLICATE  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- EXTERNAL_GROUP_BY[$$201, $$202]  |PARTITIONED|
+                                -- EXTERNAL_GROUP_BY[$$212, $$213]  |PARTITIONED|
                                         {
                                           -- AGGREGATE  |LOCAL|
                                             -- NESTED_TUPLE_SOURCE  |LOCAL|
                                         }
-                                  -- HASH_PARTITION_EXCHANGE [$$201, $$202]  |PARTITIONED|
-                                    -- EXTERNAL_GROUP_BY[$$170, $$171]  |PARTITIONED|
+                                  -- HASH_PARTITION_EXCHANGE [$$212, $$213]  |PARTITIONED|
+                                    -- EXTERNAL_GROUP_BY[$$181, $$182]  |PARTITIONED|
                                             {
                                               -- AGGREGATE  |LOCAL|
                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan
index 0181a84..dbcdb5b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan
@@ -1,46 +1,45 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$74(ASC), $$75(ASC), $$76(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$74(ASC), $$75(ASC), $$76(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$114(ASC), $$115(ASC), $$116(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$114(ASC), $$115(ASC), $$116(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
-              -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
+                  -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ASSIGN  |PARTITIONED|
-                        -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
-                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- REPLICATE  |PARTITIONED|
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- REPLICATE  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_SELECT  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ASSIGN  |PARTITIONED|
-                    -- STREAM_PROJECT  |PARTITIONED|
-                      -- ASSIGN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- NESTED_LOOP  |PARTITIONED|
-                            -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- NESTED_LOOP  |PARTITIONED|
+                        -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                          -- STREAM_SELECT  |PARTITIONED|
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                          -- REPLICATE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- STREAM_SELECT  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- DATASOURCE_SCAN  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                            -- BROADCAST_EXCHANGE  |PARTITIONED|
-                              -- REPLICATE  |PARTITIONED|
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STREAM_SELECT  |PARTITIONED|
-                                    -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- DATASOURCE_SCAN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354_ps.plan
index a17555e..6e96ce5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354_ps.plan
@@ -2,52 +2,51 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-        -- STABLE_SORT [$$74(ASC), $$75(ASC), $$76(ASC)]  |PARTITIONED|
-          -- RANGE_PARTITION_EXCHANGE [$$74(ASC), $$75(ASC), $$76(ASC)]  |PARTITIONED|
+        -- STABLE_SORT [$$114(ASC), $$115(ASC), $$116(ASC)]  |PARTITIONED|
+          -- RANGE_PARTITION_EXCHANGE [$$114(ASC), $$115(ASC), $$116(ASC)]  |PARTITIONED|
             -- FORWARD  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- REPLICATE  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                     -- UNION_ALL  |PARTITIONED|
-                      -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
-                          -- ASSIGN  |PARTITIONED|
+                          -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
-                                -- STREAM_PROJECT  |PARTITIONED|
-                                  -- ASSIGN  |PARTITIONED|
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- REPLICATE  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- STREAM_SELECT  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                -- ASSIGN  |PARTITIONED|
+                                  -- STREAM_PROJECT  |PARTITIONED|
+                                    -- ASSIGN  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- REPLICATE  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_SELECT  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- DATASOURCE_SCAN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ASSIGN  |PARTITIONED|
-                            -- STREAM_PROJECT  |PARTITIONED|
-                              -- ASSIGN  |PARTITIONED|
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- NESTED_LOOP  |PARTITIONED|
-                                    -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- NESTED_LOOP  |PARTITIONED|
+                                -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                                  -- STREAM_SELECT  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- DATASOURCE_SCAN  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                  -- REPLICATE  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_SELECT  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                             -- DATASOURCE_SCAN  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                      -- REPLICATE  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- STREAM_SELECT  |PARTITIONED|
-                                            -- STREAM_PROJECT  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- DATASOURCE_SCAN  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- BROADCAST_EXCHANGE  |PARTITIONED|
                 -- AGGREGATE  |UNPARTITIONED|
                   -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
@@ -57,42 +56,41 @@
                           -- REPLICATE  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- UNION_ALL  |PARTITIONED|
-                                -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
-                                    -- ASSIGN  |PARTITIONED|
+                                    -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ASSIGN  |PARTITIONED|
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            -- ASSIGN  |PARTITIONED|
-                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- REPLICATE  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_SELECT  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- REPLICATE  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- STREAM_SELECT  |PARTITIONED|
+                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- ASSIGN  |PARTITIONED|
-                                      -- STREAM_PROJECT  |PARTITIONED|
-                                        -- ASSIGN  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- NESTED_LOOP  |PARTITIONED|
-                                              -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- NESTED_LOOP  |PARTITIONED|
+                                          -- RANDOM_PARTITION_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_SELECT  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- DATASOURCE_SCAN  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                            -- REPLICATE  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                 -- STREAM_SELECT  |PARTITIONED|
                                                   -- STREAM_PROJECT  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                       -- DATASOURCE_SCAN  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                -- REPLICATE  |PARTITIONED|
-                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                    -- STREAM_SELECT  |PARTITIONED|
-                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                          -- DATASOURCE_SCAN  |PARTITIONED|
-                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
index 496ae5a..05a9e35 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
@@ -20,12 +20,12 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$41][$$43]  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$44][$$46]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- DATASOURCE_SCAN  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$43]  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$46]  |PARTITIONED|
                 -- STREAM_PROJECT  |UNPARTITIONED|
                   -- ASSIGN  |UNPARTITIONED|
                     -- UNNEST  |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
index 08fa6a0..2638f71 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
@@ -20,8 +20,8 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- HYBRID_HASH_JOIN [$$42][$$41]  |PARTITIONED|
-              -- HASH_PARTITION_EXCHANGE [$$42]  |PARTITIONED|
+            -- HYBRID_HASH_JOIN [$$45][$$44]  |PARTITIONED|
+              -- HASH_PARTITION_EXCHANGE [$$45]  |PARTITIONED|
                 -- ASSIGN  |UNPARTITIONED|
                   -- UNNEST  |UNPARTITIONED|
                     -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-secondary-btree-index-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-secondary-btree-index-3.plan
new file mode 100644
index 0000000..87bb65f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-secondary-btree-index-3.plan
@@ -0,0 +1,15 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+        -- HYBRID_HASH_JOIN [$$14][$$17]  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- ASSIGN  |PARTITIONED|
+              -- STREAM_PROJECT  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- DATASOURCE_SCAN  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+          -- BROADCAST_EXCHANGE  |PARTITIONED|
+            -- UNNEST  |UNPARTITIONED|
+              -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-01.plan
new file mode 100644
index 0000000..0f02160
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-01.plan
@@ -0,0 +1,19 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$28(ASC) ]  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ASSIGN  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- BTREE_SEARCH  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- ASSIGN  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-02.plan
new file mode 100644
index 0000000..1a1db2c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-index-02.plan
@@ -0,0 +1,30 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$29(ASC) ]  |PARTITIONED|
+          -- STREAM_SELECT  |PARTITIONED|
+            -- STREAM_PROJECT  |PARTITIONED|
+              -- ASSIGN  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- BTREE_SEARCH  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- INTERSECT  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- BTREE_SEARCH  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          -- STABLE_SORT [$$40(ASC)]  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- BTREE_SEARCH  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- ASSIGN  |PARTITIONED|
+                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_after/interval_after.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_after/interval_after.3.query.plan
index 6ac3ccc..1aab448 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_after/interval_after.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_after/interval_after.3.query.plan
@@ -2,21 +2,30 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- NESTED_LOOP  |PARTITIONED|
-            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- STREAM_PROJECT  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-            -- BROADCAST_EXCHANGE  |PARTITIONED|
-              -- STREAM_PROJECT  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+        -- STREAM_PROJECT  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$34(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_FOLLOWING_EXCHANGE [$$36(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_before/interval_before.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_before/interval_before.3.query.plan
index 757511d..883bfed 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_before/interval_before.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_before/interval_before.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_FOLLOWING_EXCHANGE [$$34(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$36(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.plan
index 757511d..a9f6d74 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$34(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$36,$$37,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covers/interval_covers.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covers/interval_covers.3.query.plan
index 757511d..d67dc29 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covers/interval_covers.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_covers/interval_covers.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$34,$$35,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$36(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.plan
index 757511d..a9f6d74 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$34(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$36,$$37,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.plan
index 757511d..9f4a00d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$34,$$35,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$36,$$37,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.plan
index 757511d..d67dc29 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.plan
@@ -4,18 +4,28 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- NESTED_LOOP  |PARTITIONED|
+            -- INTERVAL_MERGE_JOIN [$$30] [$$31]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-              -- BROADCAST_EXCHANGE  |PARTITIONED|
-                -- STREAM_PROJECT  |PARTITIONED|
-                  -- ASSIGN  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STABLE_SORT [$$30(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE [{$$34,$$35,ASC}] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- RANGE_PARTITION_EXCHANGE [$$36(ASC)] RANGE_MAP:{SPLIT:3}  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
index 80a0089..160ab94 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
@@ -16,7 +16,7 @@
                 -- STREAM_PROJECT  |LOCAL|
                   -- ASSIGN  |LOCAL|
                     -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                      -- PRE_CLUSTERED_GROUP_BY[$$159]  |LOCAL|
+                      -- PRE_CLUSTERED_GROUP_BY[$$166]  |LOCAL|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- AGGREGATE  |LOCAL|
@@ -26,9 +26,9 @@
                         -- ONE_TO_ONE_EXCHANGE  |LOCAL|
                           -- STREAM_PROJECT  |LOCAL|
                             -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                              -- HYBRID_HASH_JOIN [$$159][$$160]  |LOCAL|
+                              -- HYBRID_HASH_JOIN [$$166][$$167]  |LOCAL|
                                 -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                                  -- PRE_CLUSTERED_GROUP_BY[$$95]  |LOCAL|
+                                  -- PRE_CLUSTERED_GROUP_BY[$$102]  |LOCAL|
                                           {
                                             -- AGGREGATE  |LOCAL|
                                               -- AGGREGATE  |LOCAL|
@@ -36,11 +36,11 @@
                                                   -- NESTED_TUPLE_SOURCE  |LOCAL|
                                           }
                                     -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                                      -- STABLE_SORT [$$95(ASC)]  |LOCAL|
+                                      -- STABLE_SORT [$$102(ASC)]  |LOCAL|
                                         -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
                                           -- STREAM_PROJECT  |UNPARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$95][$$152]  |UNPARTITIONED|
+                                              -- HYBRID_HASH_JOIN [$$102][$$159]  |UNPARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
                                                   -- STREAM_PROJECT  |UNPARTITIONED|
                                                     -- ASSIGN  |UNPARTITIONED|
@@ -123,7 +123,7 @@
                                           -- STREAM_SELECT  |LOCAL|
                                             -- ASSIGN  |LOCAL|
                                               -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                                                -- PRE_CLUSTERED_GROUP_BY[$$161]  |LOCAL|
+                                                -- PRE_CLUSTERED_GROUP_BY[$$168]  |LOCAL|
                                                         {
                                                           -- AGGREGATE  |LOCAL|
                                                             -- AGGREGATE  |LOCAL|
@@ -131,11 +131,11 @@
                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                         }
                                                   -- ONE_TO_ONE_EXCHANGE  |LOCAL|
-                                                    -- STABLE_SORT [$$161(ASC)]  |LOCAL|
+                                                    -- STABLE_SORT [$$168(ASC)]  |LOCAL|
                                                       -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
                                                         -- STREAM_PROJECT  |UNPARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-                                                            -- HYBRID_HASH_JOIN [$$161][$$162]  |UNPARTITIONED|
+                                                            -- HYBRID_HASH_JOIN [$$168][$$169]  |UNPARTITIONED|
                                                               -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
                                                                 -- REPLICATE  |UNPARTITIONED|
                                                                   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset.plan
index fdc7d4c..5a955a0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset.plan
@@ -1,21 +1,19 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$11(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$11(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$21(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$21(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset3.plan
index 9d51d1c..0772bd8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset3.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_dataset3.plan
@@ -1,21 +1,19 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
-      -- SORT_MERGE_EXCHANGE [$$10(ASC) ]  |PARTITIONED|
-        -- STABLE_SORT [$$10(ASC)]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$20(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$20(ASC)]  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- ASSIGN  |PARTITIONED|
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_1.plan
new file mode 100644
index 0000000..7537523
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_1.plan
@@ -0,0 +1,47 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$122(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$122(ASC)]  |PARTITIONED|
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              -- UNION_ALL  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    -- STREAM_SELECT  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$165(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- BTREE_SEARCH  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- REPLICATE  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    -- STREAM_SELECT  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$168(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- BTREE_SEARCH  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- REPLICATE  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_2.plan
new file mode 100644
index 0000000..08770db
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_2.plan
@@ -0,0 +1,48 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$116(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$116(ASC)]  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- UNION_ALL  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$141(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- BTREE_SEARCH  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
+                                              -- ASSIGN  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- REPLICATE  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- ASSIGN  |PARTITIONED|
+                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            -- BTREE_SEARCH  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- STABLE_SORT [$$144(ASC)]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- STREAM_PROJECT  |PARTITIONED|
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        -- BTREE_SEARCH  |PARTITIONED|
+                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                            -- REPLICATE  |PARTITIONED|
+                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_3.plan
new file mode 100644
index 0000000..6a422c4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_3.plan
@@ -0,0 +1,49 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$60(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$60(ASC)]  |PARTITIONED|
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              -- UNION_ALL  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    -- STREAM_SELECT  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$163(ASC)]  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- BTREE_SEARCH  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- REPLICATE  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    -- STREAM_SELECT  |PARTITIONED|
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$166(ASC)]  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- BTREE_SEARCH  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- REPLICATE  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_4.plan
new file mode 100644
index 0000000..85a6667
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_opt_1_4.plan
@@ -0,0 +1,50 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$112(ASC) ]  |PARTITIONED|
+        -- STABLE_SORT [$$112(ASC)]  |PARTITIONED|
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            -- UNION_ALL  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$137(ASC)]  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- BTREE_SEARCH  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                -- ASSIGN  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- REPLICATE  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                -- STREAM_PROJECT  |PARTITIONED|
+                  -- STREAM_SELECT  |PARTITIONED|
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      -- ASSIGN  |PARTITIONED|
+                        -- ASSIGN  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              -- BTREE_SEARCH  |PARTITIONED|
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  -- STABLE_SORT [$$140(ASC)]  |PARTITIONED|
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          -- BTREE_SEARCH  |PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                              -- REPLICATE  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_query.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_query.plan
index 67de4c9..fd103f8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_query.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/union/union_query.plan
@@ -1,9 +1,9 @@
 -- DISTRIBUTE_RESULT  |PARTITIONED|
-  -- SORT_MERGE_EXCHANGE [$$16(ASC) ]  |PARTITIONED|
+  -- SORT_MERGE_EXCHANGE [$$res(ASC) ]  |PARTITIONED|
     -- PRE_SORTED_DISTINCT_BY  |PARTITIONED|
       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-        -- STABLE_SORT [$$16(ASC)]  |PARTITIONED|
-          -- HASH_PARTITION_EXCHANGE [$$16]  |PARTITIONED|
+        -- STABLE_SORT [$$res(ASC)]  |PARTITIONED|
+          -- HASH_PARTITION_EXCHANGE [$$res]  |PARTITIONED|
             -- UNION_ALL  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
index ea19f64..d3c5a2c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
@@ -107,7 +107,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
index 090b6f4..6a10149 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
@@ -121,7 +121,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-01.ast
index 9cfb593..bdaa1c3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-01.ast
@@ -29,10 +29,10 @@
       ]
       >=
       OperatorExpr [
-        FunctionCall emergencyTest.current-datetime@0[
+        FunctionCall asterix.current-datetime@0[
         ]
         -
-        FunctionCall emergencyTest.day-time-duration@1[
+        FunctionCall asterix.day-time-duration@1[
           LiteralExpr [STRING] [PT10H]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-02.ast
index 9359bfa..c98fc93 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-02.ast
@@ -20,10 +20,10 @@
 Let Variable [ Name=$time ]
   :=
   OperatorExpr [
-    FunctionCall emergencyTest.current-datetime@0[
+    FunctionCall asterix.current-datetime@0[
     ]
     -
-    FunctionCall emergencyTest.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT10H]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-03.ast
index 95baeaa..6cd0030 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-03.ast
@@ -24,6 +24,6 @@
       Field=timestamp
     ]
     >=
-    FunctionCall emergencyTest.current-datetime@0[
+    FunctionCall asterix.current-datetime@0[
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-04.ast
index 6c2d45c..19bafd3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/btree-index/btree-datetime-04.ast
@@ -24,6 +24,6 @@
       Field=timestamp
     ]
     >=
-    FunctionCall emergencyTest.current-datetime@0[
+    FunctionCall asterix.current-datetime@0[
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/consolidate-selects-complex.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/consolidate-selects-complex.ast
index 165e2e3..ba2ff41 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/consolidate-selects-complex.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/consolidate-selects-complex.ast
@@ -32,7 +32,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -40,26 +40,26 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Let Variable [ Name=$jacca ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.8]
   ]
 Let Variable [ Name=$jaccb ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
   ]
 Let Variable [ Name=$jaccc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.3]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/count-tweets.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/count-tweets.ast
index ec7c370..f7ec498 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/count-tweets.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/count-tweets.ast
@@ -49,7 +49,7 @@
 ]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall twitter.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$t ]
       Field=text
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-dblp-csx.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-dblp-csx.ast
index 7e68aa8..56c7eb1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-dblp-csx.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-dblp-csx.ast
@@ -1,4 +1,4 @@
-DataverseUse fj-dblp-csx
+DataverseUse `fj-dblp-csx`
 TypeDecl DBLPType [
   open RecordType {
     id : integer,
@@ -63,7 +63,7 @@
   ]
 Let Variable [ Name=$unrankedTokensDBLP ]
   :=
-  FunctionCall fj-dblp-csx.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -114,7 +114,7 @@
   ]
 Let Variable [ Name=$unrankedTokensCSX ]
   :=
-  FunctionCall fj-dblp-csx.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-phase2-with-hints.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-phase2-with-hints.ast
index 760a65f..7175ec1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-phase2-with-hints.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/fj-phase2-with-hints.ast
@@ -35,7 +35,7 @@
 ]
 Let Variable [ Name=$unrankedTokensDBLP ]
   :=
-  FunctionCall fuzzyjoin_078.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -59,7 +59,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin_078.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains-panic.ast
index f63ae69..75e47cc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains-panic.ast
@@ -20,7 +20,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains.ast
index 4bfd511..ccd9f32 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-contains.ast
@@ -20,7 +20,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check-panic.ast
index b91eee9..473028d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check-panic.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check.ast
index f3ec986..6248728 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-check.ast
@@ -21,7 +21,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-panic.ast
index 96828e4..fdf46f9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance-panic.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance.ast
index adf6402..d8917a4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-edit-distance.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
index be82f72..6c7dd82 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
@@ -24,7 +24,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -33,7 +33,7 @@
       LiteralExpr [FALSE]
     ]
     ~=
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard-check.ast
index 65dfc45..d4eabb8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard-check.ast
@@ -22,8 +22,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
@@ -31,7 +31,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard.ast
index 9919418..fc39ba9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ngram-jaccard.ast
@@ -22,8 +22,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
@@ -31,7 +31,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check-panic.ast
index 81e0f92..1626785 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check-panic.ast
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check.ast
index 6125ef7..b3de7ad 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-check.ast
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-panic.ast
index 84b062d..b9e055b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance-panic.ast
@@ -35,7 +35,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance.ast
index a452237..fb69611 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-edit-distance.ast
@@ -35,7 +35,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard-check.ast
index 95538bb..6906987 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard-check.ast
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard.ast
index edd77ff..61f30e3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/olist-jaccard.ast
@@ -35,7 +35,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard-check.ast
index cfdd948..192b9a9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard-check.ast
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard.ast
index 239a83fbb..3b734f9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/ulist-jaccard.ast
@@ -35,7 +35,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-contains.ast
index 6ba9e63..964c8ef 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-contains.ast
@@ -20,7 +20,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-fuzzyeq-jaccard.ast
index 31c6b58..88f2e79 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-fuzzyeq-jaccard.ast
@@ -23,14 +23,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard-check.ast
index d0f765c..6b2ef84 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard-check.ast
@@ -21,14 +21,14 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
       LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard.ast
index 93cc528..13a5f3b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-basic/word-jaccard.ast
@@ -21,14 +21,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
index 4573700..50562cc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
@@ -31,7 +31,7 @@
   ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
index 80a0c1e..295bc07 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
@@ -31,7 +31,7 @@
   ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
index 1426c21..9908ea7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let.ast
index 6be8d11..360b8fe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-let.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-substring.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-substring.ast
index 23b6ef3..4bd24fe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-substring.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-substring.ast
@@ -38,8 +38,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
-      FunctionCall test.substring@3[
+    FunctionCall asterix.edit-distance-check@3[
+      FunctionCall asterix.substring@3[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
index 4e740dd..3cc550e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
@@ -36,7 +36,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -46,7 +46,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-let.ast
index bc735ac..10cc2e1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-let.ast
@@ -22,8 +22,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -31,7 +31,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-multi-let.ast
index c56b4cc..2b7df8c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ngram-jaccard-check-multi-let.ast
@@ -33,7 +33,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -43,14 +43,14 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let-panic.ast
index 73eea6c..1a98c4c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let-panic.ast
@@ -35,7 +35,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let.ast
index 8519356..1125acc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-edit-distance-check-let.ast
@@ -35,7 +35,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-jaccard-check-let.ast
index 2069fba..f4a90e6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/olist-jaccard-check-let.ast
@@ -35,7 +35,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ulist-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ulist-jaccard-check-let.ast
index ddda42c..b9cc80e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ulist-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/ulist-jaccard-check-let.ast
@@ -35,7 +35,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-let.ast
index 53299c1..9343f70 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-let.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-multi-let.ast
index 36c3ad3..6a2c11a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-complex/word-jaccard-check-multi-let.ast
@@ -32,7 +32,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -40,12 +40,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline.ast
index 149dadd..884b632 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline.ast
@@ -48,7 +48,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance.ast
index 6e07481..659a3c6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance.ast
@@ -54,7 +54,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-fuzzyeq-jaccard.ast
index ed58c20..880cf73 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-fuzzyeq-jaccard.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -66,7 +66,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline.ast
index 9ba0a6c..21e6d40 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline.ast
@@ -49,8 +49,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -58,7 +58,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard.ast
index c14577e..a8a3b7c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard.ast
@@ -55,8 +55,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -64,7 +64,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline.ast
index 48c7269..1a68dec 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline.ast
@@ -62,7 +62,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance.ast
index 309af23..fc91fc2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline.ast
index 177a4ab..13d4c9c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline.ast
@@ -62,7 +62,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard.ast
index 174ce27..acabdb3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline.ast
index fc3c6da..6c78a5a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline.ast
@@ -62,7 +62,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard.ast
index a217c50..63fcf0a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-fuzzyeq-jaccard.ast
index 64fb45b..58e5337 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-fuzzyeq-jaccard.ast
@@ -56,14 +56,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline.ast
index dd4d340..db614be 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline.ast
@@ -48,14 +48,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard.ast
index b05b6c4..bd8e3aa 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard.ast
@@ -54,14 +54,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/issue741.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/issue741.ast
index feab647..e06271a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/issue741.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/issue741.ast
@@ -50,7 +50,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.similarity-jaccard-check@3[
+        FunctionCall asterix.similarity-jaccard-check@3[
           FieldAccessor [
             Variable [ Name=$t ]
             Field=referred_topics
@@ -97,7 +97,7 @@
         Field=send_time
       ]
       >=
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-06-18T14:10:17]
       ]
     ]
@@ -108,7 +108,7 @@
         Field=send_time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-06-18T15:10:17]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
index e0091da..2404dd0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
@@ -80,7 +80,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=message-text
@@ -133,7 +133,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
index 7953333..496e162 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
@@ -80,7 +80,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.similarity-jaccard-check@3[
+        FunctionCall asterix.similarity-jaccard-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=referred-topics
@@ -133,7 +133,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-contains.ast
index ec9d99f..2f0b5fc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-contains.ast
@@ -43,7 +43,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_01.ast
index fb901be..5e342d7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_01.ast
@@ -48,7 +48,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_02.ast
index 0ca48a7..5a3ee14 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_02.ast
@@ -48,7 +48,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_03.ast
index ba2ec52..9567f1b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_03.ast
@@ -38,7 +38,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_04.ast
index b7b4232..391303a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-check_04.ast
@@ -45,7 +45,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-contains.ast
index 379fb25..b9277ef 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-contains.ast
@@ -48,7 +48,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-contains@3[
+      FunctionCall asterix.edit-distance-contains@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_01.ast
index 31ae3d4..e9d5fe7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_01.ast
@@ -48,7 +48,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_02.ast
index a81df4e..690329c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_02.ast
@@ -48,7 +48,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_03.ast
index 331c38e..6d8ce54 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_03.ast
@@ -38,7 +38,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_04.ast
index 21aad57..f34e41f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-edit-distance_04.ast
@@ -42,7 +42,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
index e9579c5..a784bd9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
@@ -51,7 +51,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -60,7 +60,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
index edbe33a..fa42c63 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
@@ -51,7 +51,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -60,7 +60,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
index 4b0b23e..0e9708d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
@@ -41,7 +41,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -50,7 +50,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_01.ast
index 6335c6e..620a4ce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_01.ast
@@ -49,8 +49,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -58,7 +58,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_02.ast
index 2b6296d..8e4844a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_02.ast
@@ -49,8 +49,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -58,7 +58,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_03.ast
index a217b81..41ca5dd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_03.ast
@@ -39,8 +39,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -48,7 +48,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_04.ast
index 14ce520..d201069 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard-check_04.ast
@@ -46,8 +46,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -55,7 +55,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_01.ast
index 99dc8bd..363ed04 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_01.ast
@@ -49,8 +49,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -58,7 +58,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_02.ast
index ab4f3a7..038e003 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_02.ast
@@ -49,8 +49,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -58,7 +58,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_03.ast
index 21f2967..fe3316e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_03.ast
@@ -39,8 +39,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -48,7 +48,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_04.ast
index f72bb82..e70b58a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ngram-jaccard_04.ast
@@ -43,8 +43,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -52,7 +52,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_01.ast
index 51f5dbb..036b09f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_02.ast
index 6cd3181..483fdde 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_03.ast
index d4b9f2b..a3caf5d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_04.ast
index 956b14b..4ce8f78 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance-check_04.ast
@@ -59,7 +59,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_01.ast
index 43f7ed9..5dfbcc8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_02.ast
index 0d3ceda..828fdf0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_03.ast
index bc94b88..757d663 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_04.ast
index f1a1d3f..cb4f2ac 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-edit-distance_04.ast
@@ -56,7 +56,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_01.ast
index ce38b34..0eeff59 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_02.ast
index 9b508c7..f968782 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_03.ast
index 16beb06..39927e1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_04.ast
index cbf5765..21f585b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard-check_04.ast
@@ -59,7 +59,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_01.ast
index 8822738..d03aaba 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_02.ast
index 49bd093..eb3b7e8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_03.ast
index ecfac07..0b8979a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_04.ast
index ca1098d..3b84c14 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/olist-jaccard_04.ast
@@ -56,7 +56,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_01.ast
index d63e18c..89a6e1c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_02.ast
index 4fb802a..5273305 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_03.ast
index 4d00756..f99a6c2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_04.ast
index edc49c9..e1d293d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard-check_04.ast
@@ -59,7 +59,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_01.ast
index b72a4ef..726f1ce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_01.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_02.ast
index dcf7ba3..77e63a2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_02.ast
@@ -53,7 +53,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_03.ast
index 0e76c21..d64050c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_03.ast
@@ -52,7 +52,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_04.ast
index fb53866..b7158b5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/ulist-jaccard_04.ast
@@ -56,7 +56,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_01.ast
index e7ce5f7..aeb5c2d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_01.ast
@@ -50,14 +50,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_02.ast
index c37b4e6..51c8a69 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_02.ast
@@ -50,14 +50,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_03.ast
index aed4e5c..413fcf7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-fuzzyeq-jaccard_03.ast
@@ -40,14 +40,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check-after-btree-access.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check-after-btree-access.ast
index 977fd78..0f36b7e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check-after-btree-access.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check-after-btree-access.ast
@@ -65,14 +65,14 @@
 ]
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$t1 ]
         Field=message-text
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$t2 ]
         Field=message-text
@@ -93,7 +93,7 @@
         Field=tweetid
       ]
       <
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [20]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_01.ast
index 8137523..3a30e84 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_01.ast
@@ -48,14 +48,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_02.ast
index 02f1194..d728851 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_02.ast
@@ -48,14 +48,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_03.ast
index 61f0161..fc7198f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_03.ast
@@ -38,14 +38,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_04.ast
index 425e82ce..49d2acb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard-check_04.ast
@@ -45,14 +45,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_01.ast
index 3a12ec0..0252523 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_01.ast
@@ -48,14 +48,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_02.ast
index 090bf16..e67df1e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_02.ast
@@ -48,14 +48,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_03.ast
index ec3cea1..58000c8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_03.ast
@@ -38,14 +38,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_04.ast
index 5f0e53a..ef04a85 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/inverted-index-join/word-jaccard_04.ast
@@ -42,14 +42,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_01.ast
index 50b2a5a..b0813fd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_01.ast
@@ -1,4 +1,4 @@
-DataverseUse join-super-key_1
+DataverseUse `join-super-key_1`
 TypeDecl SupplierType [
   closed RecordType {
     s_suppkey : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_02.ast
index 8e8cfe6..0b6b9b4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/join-super-key_02.ast
@@ -1,4 +1,4 @@
-DataverseUse join-super-key_01
+DataverseUse `join-super-key_01`
 TypeDecl SupplierType [
   closed RecordType {
     s_suppkey : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_01.ast
index 46c09a9..b012a70 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_01.ast
@@ -1,4 +1,4 @@
-DataverseUse loj-super-key_01
+DataverseUse `loj-super-key_01`
 TypeDecl SupplierType [
   closed RecordType {
     s_suppkey : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_02.ast
index c0390e9..deee859 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/loj-super-key_02.ast
@@ -1,4 +1,4 @@
-DataverseUse loj-super-key_02
+DataverseUse `loj-super-key_02`
 TypeDecl SupplierType [
   closed RecordType {
     s_suppkey : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
index 6687d69..7db8a94 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.ast
@@ -136,7 +136,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
index 1fd15fa..fb366dc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.ast
@@ -156,7 +156,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains-panic.ast
index 67a69d7..39e743a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains-panic.ast
@@ -25,7 +25,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains.ast
index 239b045..8d823c8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-contains.ast
@@ -25,7 +25,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
index fc47597..b31bc52 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
@@ -26,7 +26,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check.ast
index 05d2532..0727633 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-check.ast
@@ -26,7 +26,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-panic.ast
index f00873b..c711fee13 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance-panic.ast
@@ -26,7 +26,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance.ast
index fa976ab..f4fe1b3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-edit-distance.ast
@@ -26,7 +26,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
index 99df8bb..3373f5a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
@@ -29,7 +29,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -41,7 +41,7 @@
       LiteralExpr [FALSE]
     ]
     ~=
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard-check.ast
index d4764a4..13f6890 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard-check.ast
@@ -27,8 +27,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -39,7 +39,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard.ast
index 993fc7c..c581611 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ngram-jaccard.ast
@@ -27,8 +27,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -39,7 +39,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check-panic.ast
index b60a90f..e7b386f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check-panic.ast
@@ -41,7 +41,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check.ast
index a57d7bf..77a1e63 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-check.ast
@@ -41,7 +41,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-panic.ast
index 73895ec..ec18fdf 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance-panic.ast
@@ -41,7 +41,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance.ast
index 14402a0..5672136 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-edit-distance.ast
@@ -41,7 +41,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard-check.ast
index 36a3968..8944f56 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard-check.ast
@@ -40,7 +40,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard.ast
index 7662170..2b3fd59 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/olist-jaccard.ast
@@ -41,7 +41,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard-check.ast
index c7de02f..951cc2c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard-check.ast
@@ -41,7 +41,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard.ast
index a1920b0..33be47b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/ulist-jaccard.ast
@@ -41,7 +41,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-contains.ast
index 07c2257..c319895 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-contains.ast
@@ -25,7 +25,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
index 115cffd..b03e6c7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
@@ -28,7 +28,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -38,7 +38,7 @@
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard-check.ast
index cd2f808..e8bf4a2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard-check.ast
@@ -26,8 +26,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -36,7 +36,7 @@
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
       LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard.ast
index 8d6ebff..40574f5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-basic/word-jaccard.ast
@@ -26,8 +26,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -36,7 +36,7 @@
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
index cd87e3d..0818407 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
@@ -26,7 +26,7 @@
 ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -39,7 +39,7 @@
   ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
index e83f266..fffd48a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
@@ -26,7 +26,7 @@
 ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -39,7 +39,7 @@
   ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
index 3182178..abd2b19 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
@@ -26,7 +26,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let.ast
index 4d74189..9b45cff 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-let.ast
@@ -26,7 +26,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-substring.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
index 12e5004..5fa1ef2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
@@ -49,8 +49,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
-      FunctionCall test.substring@3[
+    FunctionCall asterix.edit-distance-check@3[
+      FunctionCall asterix.substring@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$paper ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
index 83e7c39..2067c42 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
@@ -47,7 +47,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -60,7 +60,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-let.ast
index da3e28d..36cd36e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-let.ast
@@ -27,8 +27,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -39,7 +39,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
index c313df1..88c222c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
@@ -38,7 +38,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -51,14 +51,14 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let-panic.ast
index 7926519..f1740e6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let-panic.ast
@@ -41,7 +41,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let.ast
index f811f6f..dfa394c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-edit-distance-check-let.ast
@@ -41,7 +41,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-jaccard-check-let.ast
index d4fb901..02ad60e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/olist-jaccard-check-let.ast
@@ -40,7 +40,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ulist-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ulist-jaccard-check-let.ast
index 7fbf43b..794d5cb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ulist-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/ulist-jaccard-check-let.ast
@@ -41,7 +41,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-let.ast
index 0e81882..f66ecd2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-let.ast
@@ -26,8 +26,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -36,7 +36,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-multi-let.ast
index 09c2663..2881a88 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-complex/word-jaccard-check-multi-let.ast
@@ -37,7 +37,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -48,12 +48,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
index 21fc269..b502870 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
@@ -97,7 +97,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t1 ]
@@ -168,7 +168,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
index f27b10a..63c7261 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.ast
@@ -97,7 +97,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.similarity-jaccard-check@3[
+        FunctionCall asterix.similarity-jaccard-check@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t1 ]
@@ -168,7 +168,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-check_01.ast
index 2c56b6d..95723fc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-check_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-contains.ast
index be76ff4..fb8882c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-contains.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-contains@3[
+      FunctionCall asterix.edit-distance-contains@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-inline.ast
index 486ebf9..201b5ac 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance-inline.ast
@@ -59,7 +59,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance_01.ast
index 3cbdf20..59d970e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-edit-distance_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
index 766812b..22333cf 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
@@ -61,7 +61,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -73,7 +73,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-check_01.ast
index 4bf1d3a..cfe0ee8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-check_01.ast
@@ -59,8 +59,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -71,7 +71,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-inline.ast
index 9eac854..6230626 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard-inline.ast
@@ -60,8 +60,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -72,7 +72,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard_01.ast
index 6c3a6c7..a168d88 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ngram-jaccard_01.ast
@@ -59,8 +59,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -71,7 +71,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-check_01.ast
index 12d27fa..371a58b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-check_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-inline.ast
index 84e2153..9bdd0e8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance-inline.ast
@@ -74,7 +74,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance_01.ast
index 79306cc..5b964fb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-edit-distance_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-check_01.ast
index 010d833..ab9edac 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-check_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-inline.ast
index e4c4c65..e867a37 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard-inline.ast
@@ -74,7 +74,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard_01.ast
index 4df3370..8fa6c8a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/olist-jaccard_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-check_01.ast
index d1d960a..19e40f9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-check_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-inline.ast
index b52756f..3f13c3a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard-inline.ast
@@ -74,7 +74,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard_01.ast
index 541c5c8..d3c444d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/ulist-jaccard_01.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
index a2df3ef..78d9cab 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
@@ -60,7 +60,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -70,7 +70,7 @@
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
index 7371c6f..36d3927 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
@@ -76,8 +76,8 @@
 ]
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$t1 ]
@@ -86,7 +86,7 @@
         Field=message-text
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$t2 ]
@@ -113,7 +113,7 @@
         Field=tweetid
       ]
       <
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [20]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check_01.ast
index ca36bc2..3a22300 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-check_01.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -68,7 +68,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-inline.ast
index c2d5bdf..7518da7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard-inline.ast
@@ -59,8 +59,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -69,7 +69,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard_01.ast
index d766ddf..8ab5b17 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/inverted-index-join/word-jaccard_01.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -68,7 +68,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
index 5db718b..8bde23b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
@@ -90,7 +90,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -118,7 +118,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -138,7 +138,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
index 004d42a..c486ca1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
@@ -91,7 +91,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               FieldAccessor [
                 Variable [ Name=$t2 ]
@@ -141,7 +141,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -161,7 +161,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_01.ast
index af4b22c..6e2f4e3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_01.ast
@@ -45,7 +45,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_02.ast
index f0b71f8..88ede17 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_02.ast
@@ -45,7 +45,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_03.ast
index 4d62044..911ded3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-index/rtree-index-join/spatial-intersect-point_03.ast
@@ -44,7 +44,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
index 42e98bd..35c6c68 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
@@ -135,7 +135,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
index eafaa62..ee998a5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
@@ -134,7 +134,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
index 3830ce2..5002b83 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
@@ -155,7 +155,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
index 763759e..e6a964f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
@@ -154,7 +154,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains-panic.ast
index f6e781a..cab3477 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains-panic.ast
@@ -24,7 +24,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains.ast
index 283e91c..dc27e08 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-contains.ast
@@ -24,7 +24,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
index e9a2f0a..95b82a5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check-panic.ast
@@ -25,7 +25,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check.ast
index 8bc458d..6f79953 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-check.ast
@@ -25,7 +25,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-panic.ast
index cea6433..1d0e98c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance-panic.ast
@@ -25,7 +25,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance.ast
index 026476c..622bc67 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-edit-distance.ast
@@ -25,7 +25,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
index 31ccaf8..4eac1f3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
@@ -28,7 +28,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -40,7 +40,7 @@
       LiteralExpr [FALSE]
     ]
     ~=
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard-check.ast
index 3ff23f9..4d23eee 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard-check.ast
@@ -26,8 +26,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -38,7 +38,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard.ast
index f57427b..6e8bcec 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/ngram-jaccard.ast
@@ -26,8 +26,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -38,7 +38,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-contains.ast
index 2088a9e..a05ab69 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-contains.ast
@@ -24,7 +24,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
index 7efb273..b508d79 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-fuzzyeq-jaccard.ast
@@ -27,7 +27,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -37,7 +37,7 @@
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard-check.ast
index 4ee76d2..2cdb0a8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard-check.ast
@@ -25,8 +25,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -35,7 +35,7 @@
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
       LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard.ast
index fe1460f..b4790d5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-basic/word-jaccard.ast
@@ -25,8 +25,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$o ]
@@ -35,7 +35,7 @@
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
index a47c5d7..53aabf3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
@@ -25,7 +25,7 @@
 ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -38,7 +38,7 @@
   ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
index b666419..963578c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
@@ -25,7 +25,7 @@
 ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -38,7 +38,7 @@
   ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
index 2f08590..6c21d1d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
@@ -25,7 +25,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let.ast
index b2a5d79..e7c5cdc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-let.ast
@@ -25,7 +25,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-substring.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
index 78aac04..49970e7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-substring.ast
@@ -48,8 +48,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
-      FunctionCall test.substring@3[
+    FunctionCall asterix.edit-distance-check@3[
+      FunctionCall asterix.substring@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$paper ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
index 0559bbc..f58dc37 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
@@ -46,7 +46,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -59,7 +59,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-let.ast
index 336b9d6..5ff1c93 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-let.ast
@@ -26,8 +26,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -38,7 +38,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
index e246355..e09c194 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/ngram-jaccard-check-multi-let.ast
@@ -37,7 +37,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -50,14 +50,14 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-let.ast
index f710009..518ccad 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-let.ast
@@ -25,8 +25,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -35,7 +35,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-multi-let.ast
index fe3fb7c..0dddc3b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-complex/word-jaccard-check-multi-let.ast
@@ -36,7 +36,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -47,12 +47,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
index ab37e11..ad10e1a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
@@ -96,7 +96,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t1 ]
@@ -167,7 +167,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_01.ast
index b80cae4..a91d675 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_01.ast
@@ -51,7 +51,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_02.ast
index 8b5571d..99f37fe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_02.ast
@@ -51,7 +51,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_03.ast
index f8085ca..96cf45d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_03.ast
@@ -42,7 +42,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_04.ast
index 84389f3..19e5761 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-contains_04.ast
@@ -50,7 +50,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_01.ast
index d2c4499..bf45f51 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_01.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_02.ast
index 2d74c5f..f8d095b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_02.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_03.ast
index 17bdeca..4e035d3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_03.ast
@@ -42,7 +42,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_04.ast
index 9fcd085..aa2b585 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_04.ast
@@ -56,7 +56,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_05.ast
index 9fcd085..aa2b585 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-check_05.ast
@@ -56,7 +56,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-contains.ast
index 399c1e7..481d88b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-contains.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-contains@3[
+      FunctionCall asterix.edit-distance-contains@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-inline.ast
index b1ed987..b593eb1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance-inline.ast
@@ -58,7 +58,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_01.ast
index 402625f..658f36d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_01.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_02.ast
index 4eed056..bad80a0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_02.ast
@@ -57,7 +57,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_03.ast
index 6f51552..8d5c48f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_03.ast
@@ -42,7 +42,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_04.ast
index dc5e707..63a7e24 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_04.ast
@@ -56,7 +56,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_05.ast
index dc5e707..63a7e24 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-edit-distance_05.ast
@@ -56,7 +56,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
index 2705525..e78296e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
@@ -60,7 +60,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -72,7 +72,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
index 1bba5a8..2c72b66 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
@@ -60,7 +60,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -72,7 +72,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
index 658259b..28f0316 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
@@ -45,7 +45,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -57,7 +57,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
index 274474e..7fa83e4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -71,7 +71,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_01.ast
index 1a7702e..9c108d3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_01.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -70,7 +70,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_02.ast
index 27ac86c..bd600b8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_02.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -70,7 +70,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_03.ast
index 8cd5e54..f3e0583 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_03.ast
@@ -43,8 +43,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -55,7 +55,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_04.ast
index c5154c0..beb9f7f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-check_04.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -69,7 +69,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-inline.ast
index e2a7a9f..b685fd2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard-inline.ast
@@ -59,8 +59,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -71,7 +71,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_01.ast
index fe046f5..6ea9758 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_01.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -70,7 +70,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_02.ast
index 066f5ca..607ea6e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_02.ast
@@ -58,8 +58,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -70,7 +70,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_03.ast
index 4bbc6ca..da33640 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_03.ast
@@ -43,8 +43,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -55,7 +55,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_04.ast
index b8a8e6b..d8fb211 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/ngram-jaccard_04.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -69,7 +69,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
index f2872bb..957db1c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_01.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -69,7 +69,7 @@
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.ast
index 9e3ccd0..7325128 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_02.ast
@@ -59,7 +59,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -69,7 +69,7 @@
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.ast
index d8d300d..8ae897f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_03.ast
@@ -44,7 +44,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -54,7 +54,7 @@
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.ast
index 32449a8..fb2de63 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-fuzzyeq-jaccard_04.ast
@@ -58,7 +58,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
@@ -68,7 +68,7 @@
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
index bbd9e0b..9240411 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check-after-btree-access.ast
@@ -75,8 +75,8 @@
 ]
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$t1 ]
@@ -85,7 +85,7 @@
         Field=message-text
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$t2 ]
@@ -112,7 +112,7 @@
         Field=tweetid
       ]
       <
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [20]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_01.ast
index 6ed0796..81152b2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_01.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -67,7 +67,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_02.ast
index 6666280..ab13a8d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_02.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -67,7 +67,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_03.ast
index 84ddb2c..a11fccb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_03.ast
@@ -42,8 +42,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -52,7 +52,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_04.ast
index fe15603..6b51ee3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-check_04.ast
@@ -56,8 +56,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -66,7 +66,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-inline.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-inline.ast
index 55e4dff..31e1ed3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-inline.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard-inline.ast
@@ -58,8 +58,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -68,7 +68,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_01.ast
index d94b65b..5f693a1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_01.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -67,7 +67,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_02.ast
index e30d595..dce9644 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_02.ast
@@ -57,8 +57,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -67,7 +67,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_03.ast
index b313d66..9b2b54a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_03.ast
@@ -42,8 +42,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -52,7 +52,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_04.ast
index 544fcc6..5b113fa 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/inverted-index-join/word-jaccard_04.ast
@@ -56,8 +56,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -66,7 +66,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
index 9277b59..0b31824 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
@@ -89,7 +89,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -117,7 +117,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -137,7 +137,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
index 7da0f59..76669c4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
@@ -90,7 +90,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               FieldAccessor [
                 Variable [ Name=$t2 ]
@@ -140,7 +140,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -160,7 +160,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_01.ast
index af4b22c..6e2f4e3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_01.ast
@@ -45,7 +45,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_02.ast
index f0b71f8..88ede17 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_02.ast
@@ -45,7 +45,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_03.ast
index 4d62044..911ded3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_03.ast
@@ -44,7 +44,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_04.ast
index bfe83a2..023d81c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_04.ast
@@ -44,7 +44,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_05.ast
index bfe83a2..023d81c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/nested-open-index/rtree-index-join/spatial-intersect-point_05.ast
@@ -44,7 +44,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
index b48f1e5..57290ac 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.ast
@@ -106,7 +106,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
index 9e6d696..353e552 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.ast
@@ -105,7 +105,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
index a08f422..9de1874 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.ast
@@ -120,7 +120,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
index 8b54d5d..77e3668 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.ast
@@ -119,7 +119,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains-panic.ast
index d0331ae..bd5a2e7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains-panic.ast
@@ -19,7 +19,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains.ast
index ec5826f..1d589dc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-contains.ast
@@ -19,7 +19,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check-panic.ast
index 82ea6c3..e480eab 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check-panic.ast
@@ -20,7 +20,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check.ast
index 99dd1cc..bd20143 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-check.ast
@@ -20,7 +20,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-panic.ast
index 08b1cba..b7f394f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance-panic.ast
@@ -20,7 +20,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance.ast
index bc0f6c3..eb7b1ab 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-edit-distance.ast
@@ -20,7 +20,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
index 12dcd8d..89001af 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-fuzzyeq-jaccard.ast
@@ -23,7 +23,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -32,7 +32,7 @@
       LiteralExpr [FALSE]
     ]
     ~=
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard-check.ast
index 3495dbd..4211435 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard-check.ast
@@ -21,8 +21,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
@@ -30,7 +30,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard.ast
index d8f71d0..9526803 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/ngram-jaccard.ast
@@ -21,8 +21,8 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
@@ -30,7 +30,7 @@
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
       ]
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
         LiteralExpr [LONG] [3]
         LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-contains.ast
index 6480fe5..fe7b0e2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-contains.ast
@@ -19,7 +19,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-fuzzyeq-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-fuzzyeq-jaccard.ast
index e175bee..78a31e2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-fuzzyeq-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-fuzzyeq-jaccard.ast
@@ -22,14 +22,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard-check.ast
index 87d5779..31c0415 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard-check.ast
@@ -20,14 +20,14 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.similarity-jaccard-check@3[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard-check@3[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
       LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard.ast
index 74d7bd4..7985db6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-basic/word-jaccard.ast
@@ -20,14 +20,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
index bfeb54e..51054c1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_01.ast
@@ -20,7 +20,7 @@
 ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
@@ -30,7 +30,7 @@
   ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
index 917fdb0..d063d5f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic-nopanic_02.ast
@@ -20,7 +20,7 @@
 ]
 Let Variable [ Name=$edb ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
@@ -30,7 +30,7 @@
   ]
 Let Variable [ Name=$eda ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
index b5e2691..69f204a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let-panic.ast
@@ -20,7 +20,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let.ast
index 111bb1c..77f53c8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-let.ast
@@ -20,7 +20,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-substring.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-substring.ast
index 10f09c4..77154d5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-substring.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-substring.ast
@@ -37,8 +37,8 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
-      FunctionCall test.substring@3[
+    FunctionCall asterix.edit-distance-check@3[
+      FunctionCall asterix.substring@3[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
index f3f3545..2275853 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-edit-distance-check-word-tokens.ast
@@ -35,7 +35,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -45,7 +45,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-let.ast
index 9e5c32e..bc4fb5f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-let.ast
@@ -21,8 +21,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -30,7 +30,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-multi-let.ast
index 8bae958..aa93ac3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/ngram-jaccard-check-multi-let.ast
@@ -32,7 +32,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -42,14 +42,14 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-let.ast
index 586ae2a..49d9157 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-let.ast
@@ -20,14 +20,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-multi-let.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-multi-let.ast
index 7bc1846..6f506bb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-multi-let.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-complex/word-jaccard-check-multi-let.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -39,12 +39,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
index 331bdf1..446d219 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.ast
@@ -79,7 +79,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=message-text
@@ -132,7 +132,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_01.ast
index b80cae4..a91d675 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_01.ast
@@ -51,7 +51,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_02.ast
index b9af450..4bb674f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_02.ast
@@ -51,7 +51,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_03.ast
index f8085ca..96cf45d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_03.ast
@@ -42,7 +42,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_04.ast
index 84389f3..19e5761 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-contains_04.ast
@@ -50,7 +50,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$o1 ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_01.ast
index d579f69..052ccba 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_01.ast
@@ -47,7 +47,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_02.ast
index b612948..b16b062 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_02.ast
@@ -47,7 +47,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_03.ast
index b2ed201..64c187e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_03.ast
@@ -37,7 +37,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_04.ast
index 32df103..a8b47c7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_04.ast
@@ -46,7 +46,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_05.ast
index 32df103..a8b47c7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_05.ast
@@ -46,7 +46,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-check@3[
+      FunctionCall asterix.edit-distance-check@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_inline_03.ast
index fbdd268..c76b1d4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-check_inline_03.ast
@@ -44,7 +44,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-contains.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-contains.ast
index 7211a5c..e74dded 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-contains.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance-contains.ast
@@ -47,7 +47,7 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.edit-distance-contains@3[
+      FunctionCall asterix.edit-distance-contains@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_01.ast
index d686ced..7a73244 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_01.ast
@@ -47,7 +47,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_02.ast
index cc9c208..27a5d9d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_02.ast
@@ -47,7 +47,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_03.ast
index d619a95..a888ea2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_03.ast
@@ -37,7 +37,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_04.ast
index d9c54c1..25eb7e1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_04.ast
@@ -46,7 +46,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_05.ast
index d9c54c1..25eb7e1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_05.ast
@@ -46,7 +46,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_inline_03.ast
index db0924d..43bf4ce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-edit-distance_inline_03.ast
@@ -41,7 +41,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
index 97c1778..825df9a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_01.ast
@@ -50,7 +50,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -59,7 +59,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
index 879eea4..161a7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_02.ast
@@ -50,7 +50,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -59,7 +59,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
index 39138f4..dab9992 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_03.ast
@@ -40,7 +40,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -49,7 +49,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
index 9b892c5..af199f5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-fuzzyeq-jaccard_04.ast
@@ -49,7 +49,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
@@ -58,7 +58,7 @@
         LiteralExpr [FALSE]
       ]
       ~=
-      FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.gram-tokens@3[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.ast
index e38106b..f878e0d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_01.ast
@@ -48,8 +48,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -57,7 +57,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.ast
index c70c30f..0473451 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_02.ast
@@ -48,8 +48,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -57,7 +57,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.ast
index d15b32d..7749d91 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_03.ast
@@ -38,8 +38,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -47,7 +47,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.ast
index 7e45c77..16ebed1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_04.ast
@@ -47,8 +47,8 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -56,7 +56,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.ast
index 073e7f5..dfe5998 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard-check_inline_03.ast
@@ -45,8 +45,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -54,7 +54,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_01.ast
index d661706..bc6f3e3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_01.ast
@@ -48,8 +48,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -57,7 +57,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_02.ast
index 16dcb06..87f9c21 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_02.ast
@@ -48,8 +48,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -57,7 +57,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_03.ast
index 37fd896..082647c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_03.ast
@@ -38,8 +38,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -47,7 +47,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_04.ast
index 511eb3e..1e56d15 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_04.ast
@@ -47,8 +47,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -56,7 +56,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.ast
index fe548d6..e07e7a7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/ngram-jaccard_inline_03.ast
@@ -42,8 +42,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -51,7 +51,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.ast
index b30d7ee..c40a066 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_01.ast
@@ -49,14 +49,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.ast
index e1da73f..d15ca81 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_02.ast
@@ -49,14 +49,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.ast
index 807f5bf..ca7e2f6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_03.ast
@@ -39,14 +39,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.ast
index 0d41007..1ffc872 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-fuzzyeq-jaccard_04.ast
@@ -48,14 +48,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.ast
index def707e..d34a751 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check-after-btree-access.ast
@@ -64,14 +64,14 @@
 ]
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$t1 ]
         Field=message-text
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$t2 ]
         Field=message-text
@@ -92,7 +92,7 @@
         Field=tweetid
       ]
       <
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [20]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_01.ast
index 61f40dc..ed3a5a8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_01.ast
@@ -47,14 +47,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_02.ast
index bcc540a..9da89f0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_02.ast
@@ -47,14 +47,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_03.ast
index 7883806..523861b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_03.ast
@@ -37,14 +37,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_04.ast
index c0d2879..df66e19 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_04.ast
@@ -46,14 +46,14 @@
 Where
   OperatorExpr [
     IndexAccessor [
-      FunctionCall test.similarity-jaccard-check@3[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-check@3[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.ast
index 3f14745..53707b4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard-check_inline_03.ast
@@ -44,14 +44,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_01.ast
index fe9bcfe..065f46b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_01.ast
@@ -47,14 +47,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_02.ast
index e856da5..58a3af9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_02.ast
@@ -47,14 +47,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_03.ast
index 1c780a1..34684ca 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_03.ast
@@ -37,14 +37,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_04.ast
index e070d7a..6c56a32 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_04.ast
@@ -46,14 +46,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_inline_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_inline_03.ast
index a311ef2..d53274d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_inline_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/inverted-index-join/word-jaccard_inline_03.ast
@@ -41,14 +41,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
index 8fe06f1..db36dd9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
@@ -72,7 +72,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -97,7 +97,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -111,7 +111,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
index 0a533b8..0443877 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
@@ -73,7 +73,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               Variable [ Name=$t2 ]
               Field=sender-location
@@ -111,7 +111,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -125,7 +125,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_01.ast
index 4605152..d6c6deb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_01.ast
@@ -51,7 +51,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_02.ast
index dfd9368..1c6eb1b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_02.ast
@@ -51,7 +51,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
index d2d61ef..e7ebb5a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
@@ -38,7 +38,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
index 2a53cb0..fdf1e55 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
@@ -39,7 +39,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
index 2a53cb0..fdf1e55 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
@@ -39,7 +39,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
index 675ca8d..ca16111 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
@@ -1,4 +1,4 @@
-DataverseUse gby-using-orderby-desc
+DataverseUse `gby-using-orderby-desc`
 TypeDecl AddressType [
   closed RecordType {
     number : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
index cd4bca3..4d8ace4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
@@ -1,4 +1,4 @@
-DataverseUse orders-aggreg
+DataverseUse `orders-aggreg`
 TypeDecl OrderType [
   closed RecordType {
     oid : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
index ca6fe07..c723a60 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
@@ -1,4 +1,4 @@
-DataverseUse pull-select-above-eq-join
+DataverseUse `pull-select-above-eq-join`
 TypeDecl UserType [
   open RecordType {
     uid : integer,
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
index 52b59f4..7f05cfe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
@@ -382,7 +382,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall q09_group_by.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$p ]
         Field=p_name
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
index d1ebcac..7ff3b22 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
@@ -16,7 +16,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:00:00]
         ]
       )
@@ -40,7 +40,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:01:00]
         ]
       )
@@ -64,7 +64,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:02:00]
         ]
       )
@@ -88,7 +88,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:03:00]
         ]
       )
@@ -112,7 +112,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:04:00]
         ]
       )
@@ -136,7 +136,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:05:00]
         ]
       )
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue562.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue562.ast
index 62f92a7..3243269 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue562.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue562.ast
@@ -151,7 +151,7 @@
       ]
       Let Variable [ Name=$phone_substr ]
         :=
-        FunctionCall tpch.substring@3[
+        FunctionCall asterix.substring@3[
           FieldAccessor [
             Variable [ Name=$c ]
             Field=c_phone
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/issue730.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/issue730.ast
index 64b1b09..6f17b8f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/issue730.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/issue730.ast
@@ -49,7 +49,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender_location
@@ -67,7 +67,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender_location
@@ -82,7 +82,7 @@
         Field=send_time
       ]
       >=
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-06-18T14:10:17]
       ]
     ]
@@ -93,7 +93,7 @@
         Field=send_time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-06-18T15:10:17]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
index ef9d197..0e3e5a6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.ast
@@ -73,7 +73,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -98,7 +98,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -112,7 +112,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
index d07da6c..c586622 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.ast
@@ -74,7 +74,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               Variable [ Name=$t2 ]
               Field=sender-location
@@ -112,7 +112,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -126,7 +126,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/query-issue838.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/query-issue838.ast
index 70939a9..dfd39ff 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/query-issue838.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/query-issue838.ast
@@ -34,7 +34,7 @@
   (
     LiteralExpr [STRING] [execution-time]
     :
-    FunctionCall twitter.current-datetime@0[
+    FunctionCall asterix.current-datetime@0[
     ]
   )
   (
@@ -60,7 +60,7 @@
     ]
     Let Variable [ Name=$circle ]
       :=
-      FunctionCall twitter.create-circle@2[
+      FunctionCall asterix.create-circle@2[
         FieldAccessor [
           Variable [ Name=$tweet ]
           Field=location
@@ -68,7 +68,7 @@
         LiteralExpr [DOUBLE] [30.0]
       ]
     Where
-      FunctionCall twitter.spatial-intersect@2[
+      FunctionCall asterix.spatial-intersect@2[
         FieldAccessor [
           Variable [ Name=$tweet ]
           Field=sender-location
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_01.ast
index b1ef06d..2391565 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_01.ast
@@ -40,7 +40,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_02.ast
index 5b894a8..b29fe1f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_02.ast
@@ -40,7 +40,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_03.ast
index 88f292c..f04a100 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-index-join/spatial-intersect-point_03.ast
@@ -39,7 +39,7 @@
   AS Variable [ Name=$b ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index-open.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index-open.ast
index 23f1b56..b5d3bf1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index-open.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index-open.ast
@@ -33,12 +33,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index.ast
index 43691ee..4125b9a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/rtree-secondary-index.ast
@@ -33,12 +33,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_01.ast
index 471d006..fe90f5c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_01.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_02.ast
index c78b8cb..877bcbd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_02.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_03.ast
index 9bb5957..2fe2205 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_03.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_04.ast
index 73fd3d8..4d81225 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_04.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_05.ast
index 693d2942..9524164 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_05.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_06.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_06.ast
index 1ce8ea8..65642c2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_06.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_06.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_07.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_07.ast
index efe51d3..ee2107d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_07.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_07.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_08.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_08.ast
index 6ad672e..38e22b1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_08.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-let-to-edit-distance-check_08.ast
@@ -21,7 +21,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_01.ast
index 97c36bd..1992919 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_01.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_02.ast
index 510fbfc..fe12d67 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_02.ast
@@ -23,7 +23,7 @@
   OperatorExpr [
     LiteralExpr [LONG] [2]
     >=
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_03.ast
index 861376f..58c443c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_03.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_04.ast
index 8b565e3..6edbf57 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_04.ast
@@ -23,7 +23,7 @@
   OperatorExpr [
     LiteralExpr [LONG] [3]
     >
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_05.ast
index 993573d..68b6427 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_05.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_06.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_06.ast
index 79c3f78..42feccb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_06.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_06.ast
@@ -23,7 +23,7 @@
   OperatorExpr [
     LiteralExpr [LONG] [2]
     <=
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_07.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_07.ast
index 4c25e1c..c864e3c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_07.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_07.ast
@@ -21,7 +21,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_08.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_08.ast
index e3da8fa..97ab3e7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_08.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/edit-distance-to-edit-distance-check_08.ast
@@ -23,7 +23,7 @@
   OperatorExpr [
     LiteralExpr [LONG] [2]
     <
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/fuzzyeq-to-jaccard-check.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/fuzzyeq-to-jaccard-check.ast
index fe5b837..c000fe6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/fuzzyeq-to-jaccard-check.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/fuzzyeq-to-jaccard-check.ast
@@ -23,14 +23,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_01.ast
index 4a60b67..73d96c8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_01.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_02.ast
index f7dc16c..e4e045b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_02.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_03.ast
index bb0b900..b2d48ce 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_03.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_04.ast
index c0f61b1..9be8f7e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_04.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_05.ast
index 4beebd6..94af050 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_05.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_06.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_06.ast
index a34fd1e..f29c220 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_06.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_06.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_07.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_07.ast
index 0911e49..b221064 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_07.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_07.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_08.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_08.ast
index 31f5160..d877c2c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_08.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-let-to-jaccard-check_08.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_01.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_01.ast
index 0628802..edf7b0a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_01.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_01.ast
@@ -21,14 +21,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_02.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_02.ast
index a4d18f5..8b23c9b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_02.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_02.ast
@@ -23,14 +23,14 @@
   OperatorExpr [
     LiteralExpr [FLOAT] [0.8]
     <=
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_03.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_03.ast
index 38634ed..456ddc3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_03.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_03.ast
@@ -21,14 +21,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_04.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_04.ast
index 5f83e9b..e36a6e7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_04.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_04.ast
@@ -23,14 +23,14 @@
   OperatorExpr [
     LiteralExpr [FLOAT] [0.8]
     <
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_05.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_05.ast
index aba64ae..8dbd31c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_05.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_05.ast
@@ -21,14 +21,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_06.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_06.ast
index 3f6a9a3..a2f20e4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_06.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_06.ast
@@ -23,14 +23,14 @@
   OperatorExpr [
     LiteralExpr [FLOAT] [0.8]
     >=
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_07.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_07.ast
index 17815d3..3a17439 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_07.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_07.ast
@@ -21,14 +21,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_08.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_08.ast
index fee5f3a..e19f053 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_08.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/similarity/jaccard-to-jaccard-check_08.ast
@@ -23,14 +23,14 @@
   OperatorExpr [
     LiteralExpr [FLOAT] [0.8]
     >
-    FunctionCall test.similarity-jaccard@2[
-      FunctionCall test.word-tokens@1[
+    FunctionCall asterix.similarity-jaccard@2[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paper ]
           Field=title
         ]
       ]
-      FunctionCall test.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         LiteralExpr [STRING] [Transactions for Cooperative Environments]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-ngram-index.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-ngram-index.ast
index 4bfd511..ccd9f32 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-ngram-index.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-ngram-index.ast
@@ -20,7 +20,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-rtree-secondary-index.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-rtree-secondary-index.ast
index 43691ee..4125b9a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-rtree-secondary-index.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-rtree-secondary-index.ast
@@ -33,12 +33,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-word-index.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-word-index.ast
index eaff5d1..6ae94e1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-word-index.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/skip-index/skip-word-index.ast
@@ -21,14 +21,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/split-materialization-above-join.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/split-materialization-above-join.ast
index a1c3dc4..19fa3e2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/split-materialization-above-join.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/split-materialization-above-join.ast
@@ -77,12 +77,12 @@
       ]
       AS Variable [ Name=$paperLeft ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensLeft]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenLeft]
           ]
@@ -96,12 +96,12 @@
       ]
       AS Variable [ Name=$paperRight ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensRight]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenRight]
           ]
@@ -112,8 +112,8 @@
     ]
     Let Variable [ Name=$lenLeft ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperLeft ]
             Field=title
@@ -126,7 +126,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperLeft ]
               Field=title
@@ -143,7 +143,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -181,7 +181,7 @@
 
           )
           AS Variable [ Name=$tokenRanked ]
- AT 
+ AT
 Variable [ Name=$i ]
         ]
         Where
@@ -197,8 +197,8 @@
       )
     Let Variable [ Name=$lenRight ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperRight ]
             Field=title
@@ -211,7 +211,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperRight ]
               Field=title
@@ -228,7 +228,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -266,7 +266,7 @@
 
           )
           AS Variable [ Name=$tokenRanked ]
- AT 
+ AT
 Variable [ Name=$i ]
         ]
         Where
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenLeft ]
         Variable [ Name=$tokensLeft ]
         Variable [ Name=$lenRight ]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/unnest_list_in_subplan.ast b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/unnest_list_in_subplan.ast
index 20c07d1..b9fd2a2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/unnest_list_in_subplan.ast
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/unnest_list_in_subplan.ast
@@ -45,7 +45,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries-sql-like/6.aql b/asterixdb/asterix-app/src/test/resources/parserts/queries-sql-like/6.aql
index 1dd358f..4562406 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries-sql-like/6.aql
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries-sql-like/6.aql
@@ -19,7 +19,7 @@
 from $user in dataset('Users')
 with $similar_users :=
    from $similar_user in dataset('Users')
-   with $similarity := jaccard_similarity($user.interests, $similar_user.interests)
+   with $similarity := similarity_jaccard($user.interests, $similar_user.interests)
    where $user != $similar_user
    and $similarity >= .75
    order by $similarity desc
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries/6.aql b/asterixdb/asterix-app/src/test/resources/parserts/queries/6.aql
index f8b06df..62fe967 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries/6.aql
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries/6.aql
@@ -19,7 +19,7 @@
 for $user in dataset('Users')
 let $similar_users :=
    for $similar_user in dataset('Users')
-   let $similarity := jaccard_similarity($user.interests, $similar_user.interests)
+   let $similarity := similarity_jaccard($user.interests, $similar_user.interests)
    where $user != $similar_user
    and $similarity >= .75
    order by $similarity desc
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries/del-dataset.aql b/asterixdb/asterix-app/src/test/resources/parserts/queries/del-dataset.aql
index b2d7d22..f7550db 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries/del-dataset.aql
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries/del-dataset.aql
@@ -42,6 +42,6 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 drop dataset Customers;
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries/load-del-dataset.aql b/asterixdb/asterix-app/src/test/resources/parserts/queries/load-del-dataset.aql
index 2b4a33c..5d6ca9b 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries/load-del-dataset.aql
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries/load-del-dataset.aql
@@ -42,7 +42,7 @@
 create nodegroup group1  if not exists on asterix_nc1, asterix_nc2;
 
 create dataset Customers(CustomerType) 
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 load dataset Customers 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/6.sqlpp b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/6.sqlpp
index 5eae7fd..f02a231 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/6.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/6.sqlpp
@@ -22,7 +22,7 @@
 with  similar_users as (
       select element {'user_name':similar_user.name,'similarity':similarity}
       from  Users as similar_user
-      with  similarity as jaccard_similarity(user.interests,similar_user.interests)
+      with  similarity as similarity_jaccard(user.interests,similar_user.interests)
       where ((user != similar_user) and (similarity >= 0.75))
       order by similarity desc
       limit 10
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/del-dataset.sqlpp b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/del-dataset.sqlpp
index df43aa5..144a804 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/del-dataset.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/del-dataset.sqlpp
@@ -46,6 +46,6 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
 drop  dataset Customers;
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/load-del-dataset.sqlpp b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/load-del-dataset.sqlpp
index 66c1b68..5ecb455 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/load-del-dataset.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/load-del-dataset.sqlpp
@@ -46,7 +46,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
 load  dataset Customers using localfs ((`path`=`asterix_nc1:///tmp/customerData.json`),(`format`=`adm`)) pre-sorted;
 
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/union.sqlpp b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/union.sqlpp
index 56464ba..0615494 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/union.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/union.sqlpp
@@ -17,6 +17,17 @@
  * under the License.
  */
 
+declare function foo1() {
+  []
+};
+
+declare function foo2() {
+  []
+};
+
+declare function foo3() {
+  []
+};
 
 select element l
 from  foo1() as l
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/6.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/6.ast
index b784f99..89a72eb 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/6.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/6.ast
@@ -48,7 +48,7 @@
     ]
     Let Variable [ Name=$similarity ]
       :=
-      FunctionCall null.jaccard_similarity@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$user ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias.ast
index 7d76691..37f2369 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias.ast
@@ -1,6 +1,6 @@
 Query:
 SELECT [
-Variable [ Name=#1 ]
+Variable [ Name=#2 ]
 root
 ]
 FROM [  FunctionCall asterix.dataset@1[
@@ -15,12 +15,12 @@
     Variable [ Name=$t ]
     Field=id
   ]
-  GROUP AS Variable [ Name=#2 ]
+  GROUP AS Variable [ Name=#1 ]
   (
     t:=Variable [ Name=$t ]
   )
 
-Let Variable [ Name=#1 ]
+Let Variable [ Name=#2 ]
   :=
   FunctionCall asterix.sql-sum@1[
     (
@@ -43,12 +43,12 @@
         ]
       ]
       ]
-      FROM [        Variable [ Name=#2 ]
+      FROM [        Variable [ Name=#1 ]
         AS Variable [ Name=#3 ]
       ]
     )
   ]
 Orderby
-  Variable [ Name=#1 ]
+  Variable [ Name=#2 ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias3.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias3.ast
index f72802f..f485782 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias3.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/columnalias3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [root]
     :
-    Variable [ Name=#1 ]
+    Variable [ Name=#2 ]
   )
 ]
 ]
@@ -20,12 +20,12 @@
     Variable [ Name=$t ]
     Field=id
   ]
-  GROUP AS Variable [ Name=#2 ]
+  GROUP AS Variable [ Name=#1 ]
   (
     t:=Variable [ Name=$t ]
   )
 
-Let Variable [ Name=#1 ]
+Let Variable [ Name=#2 ]
   :=
   FunctionCall asterix.sql-sum@1[
     (
@@ -48,12 +48,12 @@
         ]
       ]
       ]
-      FROM [        Variable [ Name=#2 ]
+      FROM [        Variable [ Name=#1 ]
         AS Variable [ Name=#3 ]
       ]
     )
   ]
 Orderby
-  Variable [ Name=#1 ]
+  Variable [ Name=#2 ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_correlate.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_correlate.ast
index 5098fbd..3390da5 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_correlate.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_correlate.ast
@@ -27,7 +27,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_022.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,0.0]
         ]
       )
@@ -41,7 +41,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_022.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,1.0]
         ]
       )
@@ -55,7 +55,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_022.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,1.0]
         ]
       )
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_outer_join.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_outer_join.ast
index cb25a66..1ef4dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_outer_join.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/from_left_outer_join.ast
@@ -27,7 +27,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_021.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,0.0]
         ]
       )
@@ -41,7 +41,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_021.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,1.0]
         ]
       )
@@ -55,7 +55,7 @@
       (
         LiteralExpr [STRING] [location]
         :
-        FunctionCall test_021.point@1[
+        FunctionCall asterix.point@1[
           LiteralExpr [STRING] [0.0,1.0]
         ]
       )
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl1.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl1.ast
index 60fc518..43e1b02 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl1.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl1.ast
@@ -52,7 +52,7 @@
 
     Let Variable [ Name=$sig_sponsorship_count ]
       :=
-      FunctionCall null.count@1[
+      FunctionCall count@1[
         Variable [ Name=$es ]
       ]
     Let Variable [ Name=$by_chapter ]
@@ -68,7 +68,7 @@
           (
             LiteralExpr [STRING] [escount]
             :
-            FunctionCall null.count@1[
+            FunctionCall count@1[
               Variable [ Name=$es ]
             ]
           )
@@ -101,7 +101,7 @@
 Query:
 Let Variable [ Name=$result ]
   :=
-  FunctionCall null.calculate@1[
+  FunctionCall Default.calculate@1[
     (
       SELECT ELEMENT [
       Variable [ Name=$e ]
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl3.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl3.ast
index 54032ff..e7c8632 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl3.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/functionDecl3.ast
@@ -3,7 +3,7 @@
 }
 
 Query:
-FunctionCall null.function with spaces@2[
+FunctionCall Default.function with spaces@2[
   LiteralExpr [LONG] [1]
   LiteralExpr [LONG] [2]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/union.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/union.ast
index 0b0ec68..ef53092 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/union.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/union.ast
@@ -1,8 +1,23 @@
+FunctionDecl foo1([]) {
+  OrderedListConstructor [
+  ]
+}
+
+FunctionDecl foo2([]) {
+  OrderedListConstructor [
+  ]
+}
+
+FunctionDecl foo3([]) {
+  OrderedListConstructor [
+  ]
+}
+
 Query:
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall null.foo1@0[
+FROM [  FunctionCall Default.foo1@0[
   ]
   AS Variable [ Name=$l ]
 ]
@@ -10,7 +25,7 @@
   SELECT ELEMENT [
   Variable [ Name=$l ]
   ]
-  FROM [    FunctionCall null.foo2@0[
+  FROM [    FunctionCall Default.foo2@0[
     ]
     AS Variable [ Name=$l ]
   ]
@@ -18,7 +33,7 @@
   SELECT ELEMENT [
   Variable [ Name=$l ]
   ]
-  FROM [    FunctionCall null.foo3@0[
+  FROM [    FunctionCall Default.foo3@0[
     ]
     AS Variable [ Name=$l ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/utf-8.ast b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/utf-8.ast
index 8a1b335..a52f1d5 100644
--- a/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/utf-8.ast
+++ b/asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/utf-8.ast
@@ -1,8 +1,8 @@
 Query:
-FunctionCall null.string-to-codepoint@1[
+FunctionCall asterix.string-to-codepoint@1[
   LiteralExpr [STRING] [äöß]
 ]
 Query:
-FunctionCall null.string-to-codepoint@1[
+FunctionCall asterix.string-to-codepoint@1[
   LiteralExpr [STRING] [迎]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.aql
index f53e3cf..bb78142 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.aql
@@ -43,8 +43,9 @@
     asterix_nc1;
 
 create dataset TweetMessages(TweetMessageType)
-primary key tweetid on group_test
-hints(cardinality=100);
+primary key tweetid
+hints(cardinality=100)
+with {"node-group":{"name":"group_test"}};
 
 create index twTimeIdx on TweetMessages(send-time) type btree;
 create index twLocationIdx on TweetMessages(user.sender-location) type rtree;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.aql
index 3756b81..fdb0fd9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.aql
@@ -38,5 +38,5 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
index db7944e..47c6f44 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
@@ -35,8 +35,8 @@
 }
 
 create dataset DBLPtmp(DBLPNestedType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
index fc549fa..7eae3b4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
@@ -35,8 +35,8 @@
 }
 
 create dataset DBLPtmp(DBLPNestedType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql
index 01f4465..c6b4f5a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.aql
@@ -42,8 +42,8 @@
 create nodegroup group1 if not exists on asterix_nc1;
 
 create dataset Customerstmp(CustomerTypetmp)
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
  create dataset Customers(CustomerType)
-  primary key nested.cid on group1;
+  primary key nested.cid with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql
index 01f4465..c6b4f5a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.aql
@@ -42,8 +42,8 @@
 create nodegroup group1 if not exists on asterix_nc1;
 
 create dataset Customerstmp(CustomerTypetmp)
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
  create dataset Customers(CustomerType)
-  primary key nested.cid on group1;
+  primary key nested.cid with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql
index 01f4465..c6b4f5a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.aql
@@ -42,8 +42,8 @@
 create nodegroup group1 if not exists on asterix_nc1;
 
 create dataset Customerstmp(CustomerTypetmp)
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
  create dataset Customers(CustomerType)
-  primary key nested.cid on group1;
+  primary key nested.cid with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql
index e917368..94f7424 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1;
 
 create dataset Customerstmp(CustomerTypetmp)
-  primary key cid on group1;
+  primary key cid with {"node-group":{"name":"group1"}};
 
 create dataset Customers(CustomerType)
-  primary key nested.cid on group1;
+  primary key nested.cid with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
index 04110dc..b68602f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
@@ -35,7 +35,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
index 373a9a8..c6cb973 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
index eaa7e99..d0e66d5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
@@ -42,8 +42,8 @@
 }
 
 create dataset DBLPtmp(DBLPClosedType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
index 6652c23..de5115a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
index 72bbfbd..f2962b3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
@@ -43,8 +43,8 @@
 }
 
 create dataset DBLPtmp(DBLPClosedType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
index 6652c23..de5115a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
index 373a9a8..c6cb973 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
index 373a9a8..c6cb973 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
index 373a9a8..c6cb973 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
@@ -42,7 +42,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPTypetmp)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPType)
-  primary key nested.id on group1;
+  primary key nested.id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
index 0afaafe..a31921c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.aql
@@ -38,8 +38,8 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
index 636d441..602a8ef 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.aql
@@ -39,8 +39,8 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
index aab1c81..dc9e577 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
index 9cb239f..0543140 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.aql
@@ -38,8 +38,8 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLPtmp(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLP(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
index 387dade..a722cc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.aql
@@ -38,6 +38,6 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
index 0afaafe..a31921c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.aql
@@ -38,8 +38,8 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
index 38261d7..1007570 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
index 38261d7..1007570 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.aql
@@ -38,7 +38,7 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.aql
index f32bae0..f5ff5c8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.aql
@@ -38,6 +38,6 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id with {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/tpch/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/tpch/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.aql
index bffda72..0243d35 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/tpch/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/tpch/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.aql
@@ -111,6 +111,6 @@
     asterix_nc1;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey with {"node-group":{"name":"group_test"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/composite-key/composite-low-high/composite-low-high.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/composite-key/composite-low-high/composite-low-high.1.ddl.sqlpp
index 735666b..01a82ba 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/composite-key/composite-low-high/composite-low-high.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/composite-key/composite-low-high/composite-low-high.1.ddl.sqlpp
@@ -40,4 +40,4 @@
 
 create dataset Points(PointType)
 primary key x, y
-on group_test;
+WITH {"node-group":{"name":"group_test"}};;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create-index/create-inverted-index-with-variable-length-primary-key/create-inverted-index-with-variable-length-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create-index/create-inverted-index-with-variable-length-primary-key/create-inverted-index-with-variable-length-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..d6e9bbb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create-index/create-inverted-index-with-variable-length-primary-key/create-inverted-index-with-variable-length-primary-key.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+DROP DATAVERSE MyDataverse IF EXISTS;
+CREATE DATAVERSE MyDataverse;
+USE MyDataverse;
+
+DROP TYPE MyDataset IF EXISTS;
+CREATE TYPE MyDataType AS OPEN
+{ myKey: string, myValue: string? };
+
+DROP DATASET MyDataset IF EXISTS;
+CREATE DATASET MyDataset(MyDataType) PRIMARY KEY myKey;
+
+DROP INDEX MyDataset.MyIndex IF EXISTS;
+// should fail because inverted index with a variable length primary key are not supported yet
+CREATE INDEX MyIndex ON MyDataset(myValue) type fulltext;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.ddl.sqlpp
new file mode 100644
index 0000000..909d8d4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+  location: point,
+  area_code: string,
+  text: string
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+
+CREATE INDEX s_rating ON KVStore(area_code);
+CREATE INDEX s_location ON KVStore(location) type RTREE;
+//CREATE INDEX text_idx ON KVStore(text) type fulltext;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.2.query.sqlpp
new file mode 100644
index 0000000..03926a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.2.query.sqlpp
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+SELECT VALUE i FROM Metadata.`Index` i WHERE i.DataverseName = "KeyVerse";
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
index 7d482dd..0bb88db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/invalid-dataverse/invalid-dataverse.003.ddl.sqlpp
@@ -24,5 +24,5 @@
 drop type realDataverse.myType if exists;
 create type realDataverse.myType as open { id: uuid, f1: int };
 
-drop dataset fakeDataverse.myDataset if exists;
+drop dataset fakeDataverse.myDataset /*if exists*/;
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..4c9bae5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp
@@ -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.
+ */
+/*
+ * Test case Name  : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : bigint,
+  dblpid : string,
+  title : string,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..08e9fec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..157d445
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+create  index ngram_index  on DBLP (title) type ngram (3);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.4.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.4.update.sqlpp
new file mode 100644
index 0000000..abf1233
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.4.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+delete from DBLP
+ where id > 50;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.5.query.sqlpp
new file mode 100644
index 0000000..d3c8253
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.5.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-delete-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test deletion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+select element o
+from  DBLP as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..808c7d4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
@@ -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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-correlated-secondary-index-nullable.sqlpp
+ * Description     : This test is intended to test insertion from correlated secondary ngram inverted index
+ * that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : June 21 2017
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string?,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id
+with {
+  "merge-policy": {
+    "name": "correlated-prefix",
+    "parameters": { "max-mergable-component-size": 16384, "max-tolerance-component-count": 3 }
+  }
+};
+
+create  dataset DBLP1(DBLPType) primary key id
+with {
+  "merge-policy": {
+    "name": "correlated-prefix",
+    "parameters": { "max-mergable-component-size": 16384, "max-tolerance-component-count": 3 }
+  }
+};
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..2a7ce84
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-nulls-string-as-primary-key.adm`),(`format`=`adm`));
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..2854258
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+
+create  index ngram_index  on DBLP (title) type ngram (3);
+
+create  index ngram_index1  on DBLP1 (title) type ngram (3);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.4.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.4.get.http
new file mode 100644
index 0000000..f3a6e46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.4.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=test
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.5.query.sqlpp
new file mode 100644
index 0000000..cfa4899
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key.5.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..aacf42b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string?,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id;
+
+create  dataset DBLP1(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..0dd89bb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-nulls-string-as-primary-key.adm`),(`format`=`adm`));
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..b6edf47
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+create  index ngram_index  on DBLP (title) type ngram (3);
+
+create  index ngram_index1  on DBLP1 (title) type ngram (3);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.get.http
new file mode 100644
index 0000000..f3a6e46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=test
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.5.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.5.update.sqlpp
new file mode 100644
index 0000000..e027679
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.5.update.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.query.sqlpp
new file mode 100644
index 0000000..2a02c8e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..369a3a9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.1.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id;
+
+create  dataset DBLP1(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..826bcdb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..d034b0f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+create  index ngram_index  on DBLP (title) type ngram (3);
+
+create  index ngram_index1  on DBLP1 (title) type ngram (3);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.get.http
new file mode 100644
index 0000000..f3a6e46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=test
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.5.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.5.update.sqlpp
new file mode 100644
index 0000000..9e7c24e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.5.update.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.query.sqlpp
new file mode 100644
index 0000000..c0f9b7c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-ngram-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary ngram inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+where test.contains(o.title,'Multimedia')
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..17633e8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.1.ddl.sqlpp
@@ -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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-correlated-secondary-index.sqlpp
+ * Description     : This test is intended to test insertion from correlated secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : June 21 2017
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id
+with {
+  "merge-policy": {
+    "name": "correlated-prefix",
+    "parameters": { "max-mergable-component-size": 16384, "max-tolerance-component-count": 3 }
+  }
+};
+
+create  dataset DBLP1(DBLPType) primary key id
+with {
+  "merge-policy": {
+    "name": "correlated-prefix",
+    "parameters": { "max-mergable-component-size": 16384, "max-tolerance-component-count": 3 }
+  }
+};
+
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..cf9a86a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+order by o.id
+;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..ab2be5c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+
+create  index keyword_index  on DBLP (title) type keyword;
+
+create  index keyword_index1  on DBLP1 (title) type keyword;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.4.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.4.get.http
new file mode 100644
index 0000000..f3a6e46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.4.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=test
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.5.query.sqlpp
new file mode 100644
index 0000000..34f332c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key.5.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+with  jacc as test.`similarity-jaccard-check`(test.`word-tokens`(o.title),test.`word-tokens`('Transactions for Cooperative Environments'),0.500000f)
+where jacc[0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..eea34f1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string?,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id;
+
+create  dataset DBLP1(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..da667ae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-nulls-string-as-primary-key.adm`),(`format`=`adm`));
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..c95f616
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+create  index keyword_index  on DBLP (title) type keyword;
+
+create  index keyword_index1  on DBLP1 (title) type keyword;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.4.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.4.update.sqlpp
new file mode 100644
index 0000000..abd20e2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.4.update.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.5.query.sqlpp
new file mode 100644
index 0000000..aadbeb6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.5.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index-nullable.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index that are built on nullable fields.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+with  jacc as test.`similarity-jaccard-check`(test.`word-tokens`(o.title),test.`word-tokens`('Transactions for Cooperative Environments'),0.500000f)
+where jacc[0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..a0227f9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.1.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.DBLPType as
+ closed {
+  id : string,
+  dblpid : string,
+  title : string,
+  authors : string,
+  misc : string
+};
+
+create  dataset DBLP(DBLPType) primary key id;
+
+create  dataset DBLP1(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..b37beb2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.3.ddl.sqlpp
new file mode 100644
index 0000000..27c3e6c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.3.ddl.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+create  index keyword_index  on DBLP (title) type keyword;
+
+create  index keyword_index1  on DBLP1 (title) type keyword;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.get.http
new file mode 100644
index 0000000..f3a6e46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=test
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.5.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.5.update.sqlpp
new file mode 100644
index 0000000..460e51e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.5.update.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+insert into DBLP1
+select element {'id':o.id,'dblpid':o.dblpid,'title':o.title,'authors':o.authors,'misc':o.misc}
+from  DBLP as o
+order by o.id
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.query.sqlpp
new file mode 100644
index 0000000..cde417e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Test case Name  : scan-insert-inverted-index-word-secondary-index.aql
+ * Description     : This test is intended to test insertion from secondary keyword inverted index.
+ * Expected Result : Success
+ * Date            : March 31 2013
+ */
+
+use test;
+
+
+select element o
+from  DBLP1 as o
+with  jacc as test.`similarity-jaccard-check`(test.`word-tokens`(o.title),test.`word-tokens`('Transactions for Cooperative Environments'),0.500000f)
+where jacc[0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.000.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.000.ddl.sqlpp
new file mode 100644
index 0000000..e4cf69b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.000.ddl.sqlpp
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use test;
+
+drop type test if exists;
+create type test as open {
+};
+
+drop dataset test if exists;
+create external dataset test(test) using S3 (
+("accessKeyId"="dummyAccessKey"),
+("secretAccessKey"="dummySecretKey"),
+("region"="us-west-2"),
+("serviceEndpoint"="http://localhost:8001"),
+("container"="include-exclude"),
+("definition"="data/mixed/"),
+("format"="csv"),
+("header"=false),
+("include"="*.[a-c][a-z][a-z**||\\\\&&--~~]")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.001.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.001.query.sqlpp
new file mode 100644
index 0000000..3306d5c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.001.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+use test;
+select count(*) as `count` from test;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.099.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.099.ddl.sqlpp
new file mode 100644
index 0000000..548e632
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-11/test.099.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+drop dataverse test if exists;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.000.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.000.ddl.sqlpp
new file mode 100644
index 0000000..47fbaef
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.000.ddl.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+ // This test case matches nothing for "include", but has extreme cases and complicated pattern, expected is to not fail
+
+drop dataverse test if exists;
+create dataverse test;
+use test;
+
+drop type test if exists;
+create type test as open {
+};
+
+drop dataset test if exists;
+create external dataset test(test) using S3 (
+("accessKeyId"="dummyAccessKey"),
+("secretAccessKey"="dummySecretKey"),
+("region"="us-west-2"),
+("serviceEndpoint"="http://localhost:8001"),
+("container"="include-exclude"),
+("definition"="data/mixed/"),
+("format"="csv"),
+("header"=false),
+("include"="[][!][^]]]]*[![*a-zA--&&^$||0-9B$\\*&&]*&&[^a-b||0--9][[[")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.001.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.001.query.sqlpp
new file mode 100644
index 0000000..3306d5c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.001.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+use test;
+select count(*) as `count` from test;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.099.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.099.ddl.sqlpp
new file mode 100644
index 0000000..548e632
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/aws/s3/include-exclude/include-12/test.099.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+drop dataverse test if exists;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp
new file mode 100644
index 0000000..76cc70d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+DROP DATAVERSE externallibtest if exists;
+CREATE DATAVERSE  externallibtest;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.10.query.sqlpp
new file mode 100644
index 0000000..58202fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+select value {
+  "type": "eval",
+  "value": externallibtest.f2(3, 4)
+}
+union all
+select value {
+  "type": "meta-functions",
+  "value": ( select value m from Metadata.`Function` m where DataverseName = "externallibtest" )
+}
+union all
+select value {
+  "type": "meta-types",
+  "value": ( select value object_remove(m, "Timestamp") from Metadata.`Datatype` m where DataverseName = "externallibtest" )
+}
+order by `type`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.11.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.11.ddl.sqlpp
new file mode 100644
index 0000000..66e94b1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.11.ddl.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+/*
+ * Test CREATE OR REPLACE FUNCTION.
+ * Replace with SQL++ function
+ */
+
+create or replace function externallibtest.f2(a, b) {
+  a * b
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.12.query.sqlpp
new file mode 100644
index 0000000..46f8b50
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+select value {
+  "type": "eval",
+  "value": externallibtest.f2(5, 6)
+}
+union all
+select value {
+  "type": "meta-functions",
+  "value": ( select value m from Metadata.`Function` m where DataverseName = "externallibtest" )
+}
+union all
+select value {
+  "type": "meta-types",
+  "value": ( select value object_remove(m, "Timestamp") from Metadata.`Datatype` m where DataverseName = "externallibtest" )
+}
+order by `type`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.2.lib.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.2.lib.sqlpp
new file mode 100644
index 0000000..3dc6eb6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.2.lib.sqlpp
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+install externallibtest testlib admin admin target/data/externallib/asterix-external-data-testlib.zip
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.3.ddl.sqlpp
new file mode 100644
index 0000000..a16d594
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.3.ddl.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/*
+ * Test default dataverse for the library reference
+ */
+
+create function externallibtest.f(a)
+  as "org.apache.asterix.external.library.OpenCapitalFinderFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.4.query.sqlpp
new file mode 100644
index 0000000..10772ec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.4.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+select value {
+  "type": "eval",
+  "value": externallibtest.f("United States")
+}
+union all
+select value {
+  "type": "meta-functions",
+  "value": ( select value m from Metadata.`Function` m where DataverseName = "externallibtest" )
+}
+union all
+select value {
+  "type": "meta-types",
+  "value": ( select value object_remove(m, "Timestamp") from Metadata.`Datatype` m where DataverseName = "externallibtest" )
+}
+order by `type`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.5.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.5.ddl.sqlpp
new file mode 100644
index 0000000..2727090
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.5.ddl.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+/*
+ * Test CREATE OR REPLACE FUNCTION.
+ *
+ * Replace implementation
+ * Replace parameter type.
+ */
+
+create or replace function externallibtest.f(a: [int32]) returns int32
+  as "org.apache.asterix.external.library.MyArraySumFactory" at testlib;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.6.query.sqlpp
new file mode 100644
index 0000000..34e8c26
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.6.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+select value {
+  "type": "eval",
+  "value": externallibtest.f([1, 2])
+}
+union all
+select value {
+  "type": "meta-functions",
+  "value": ( select value m from Metadata.`Function` m where DataverseName = "externallibtest" )
+}
+union all
+select value {
+  "type": "meta-types",
+  "value": ( select value object_remove(m, "Timestamp") from Metadata.`Datatype` m where DataverseName = "externallibtest" )
+}
+order by `type`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.7.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.7.ddl.sqlpp
new file mode 100644
index 0000000..9276797
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.7.ddl.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+/*
+ * Test CREATE OR REPLACE FUNCTION.
+ *
+ * Replace implementation
+ * Replace parameter type with 'any'
+ * Replace return type with 'any'
+ */
+
+create or replace function externallibtest.f(a)
+ as "org.apache.asterix.external.library.OpenCapitalFinderFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.8.query.sqlpp
new file mode 100644
index 0000000..884c63d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+select value {
+  "type": "eval",
+  "value": externallibtest.f("Italy")
+}
+union all
+select value {
+  "type": "meta-functions",
+  "value": ( select value m from Metadata.`Function` m where DataverseName = "externallibtest" )
+}
+union all
+select value {
+  "type": "meta-types",
+  "value": ( select value object_remove(m, "Timestamp") from Metadata.`Datatype` m where DataverseName = "externallibtest" )
+}
+order by `type`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.9.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.9.ddl.sqlpp
new file mode 100644
index 0000000..bd8d726
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/create-or-replace-function-1/create-or-replace-function-1.9.ddl.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+/*
+ * Test CREATE OR REPLACE FUNCTION.
+ *
+ * Create function with 2 parameters
+ */
+
+create function externallibtest.f2(a: int32, b: int32) returns int32
+  as "org.apache.asterix.external.library.MySumFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/deterministic/deterministic.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/deterministic/deterministic.2.ddl.sqlpp
index 8439cfb..0d700f2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/deterministic/deterministic.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/deterministic/deterministic.2.ddl.sqlpp
@@ -20,10 +20,12 @@
 use externallibtest;
 
 create function getCapital_default(a: string) returns CountryCapitalType
-language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function getCapital_deterministic(a: string) returns CountryCapitalType
-language java deterministic as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib
+  with { "deterministic": true };
 
 create function getCapital_not_deterministic(a: string) returns CountryCapitalType
-language java not deterministic as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
\ No newline at end of file
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib
+  with { "deterministic": false };
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital/getCapital.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital/getCapital.2.ddl.sqlpp
index a03b570..59c0509 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital/getCapital.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital/getCapital.2.ddl.sqlpp
@@ -19,4 +19,5 @@
 
 use externallibtest;
 
-create function getCapital(a: string) returns CountryCapitalType language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+create function getCapital(a: string) returns CountryCapitalType
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital_open/getCapital_open.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital_open/getCapital_open.2.ddl.sqlpp
index 28963b6..5532ae7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital_open/getCapital_open.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/getCapital_open/getCapital_open.2.ddl.sqlpp
@@ -19,4 +19,5 @@
 
 use externallibtest;
 
-create function getCapital(a) language java as "testlib","org.apache.asterix.external.library.OpenCapitalFinderFactory";
+create function getCapital(a)
+  as "org.apache.asterix.external.library.OpenCapitalFinderFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/keyword_detector/keyword_detector.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/keyword_detector/keyword_detector.2.ddl.sqlpp
index 2ff4d11..80502a0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/keyword_detector/keyword_detector.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/keyword_detector/keyword_detector.2.ddl.sqlpp
@@ -24,6 +24,11 @@
 
 use test;
 
-create function fnameDetector(a: InputRecordType) returns DetectResultType language java as "testlib","org.apache.asterix.external.library.KeywordsDetectorFactory" WITH {"dictPath":"data/external_function/KeywordsDetector_List1.txt","fieldName":"fname"};
-create function lnameDetector(a: InputRecordType) returns DetectResultType language java as "testlib","org.apache.asterix.external.library.KeywordsDetectorFactory" WITH {"dictPath":"data/external_function/KeywordsDetector_List2.txt","fieldName":"lname"};
+create function fnameDetector(a: InputRecordType) returns DetectResultType
+  as "org.apache.asterix.external.library.KeywordsDetectorFactory" at testlib
+  with { "resources": {"dictPath":"data/external_function/KeywordsDetector_List1.txt","fieldName":"fname"} };
+
+create function lnameDetector(a: InputRecordType) returns DetectResultType
+  as "org.apache.asterix.external.library.KeywordsDetectorFactory" at testlib
+  with { "resources": {"dictPath":"data/external_function/KeywordsDetector_List2.txt","fieldName":"lname"} };
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.0.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.0.ddl.sqlpp
index 76cc70d..05b3d2c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.0.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.0.ddl.sqlpp
@@ -18,3 +18,6 @@
  */
 DROP DATAVERSE externallibtest if exists;
 CREATE DATAVERSE  externallibtest;
+
+DROP DATAVERSE externallibtest2 if exists;
+CREATE DATAVERSE  externallibtest2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.1.lib.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.1.lib.sqlpp
index 3dc6eb6..9e53153 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.1.lib.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.1.lib.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-install externallibtest testlib admin admin target/data/externallib/asterix-external-data-testlib.zip
+install externallibtest2 testlib admin admin target/data/externallib/asterix-external-data-testlib.zip
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.2.ddl.sqlpp
index 25f04e1..aeeba56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.2.ddl.sqlpp
@@ -16,7 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- use externallibtest;
 
+/*
+ * Use library in a different dataverse
+ */
 
-create function my_array_sum(a: [int32]) returns int32 language java as "testlib","org.apache.asterix.external.library.MyArraySumFactory";
+use externallibtest;
+
+create function my_array_sum(a: [int32]) returns int32
+  as "org.apache.asterix.external.library.MyArraySumFactory" at externallibtest2.testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.4.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.4.ddl.sqlpp
index 65733e4..45afe0c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.4.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.4.ddl.sqlpp
@@ -17,3 +17,4 @@
  * under the License.
  */
 DROP DATAVERSE externallibtest;
+DROP DATAVERSE externallibtest2;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysentiment/mysentiment.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysentiment/mysentiment.2.ddl.sqlpp
index ff39aee..00838de 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysentiment/mysentiment.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysentiment/mysentiment.2.ddl.sqlpp
@@ -18,4 +18,5 @@
  */
  USE externallibtest;
 
-create function sentiment(s) language python as "testlib","sentiment:TweetSent";
+create function sentiment(s)
+  as "sentiment", "TweetSent.sentiment" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.2.ddl.sqlpp
index fd815d1..9f325a3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.2.ddl.sqlpp
@@ -16,6 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- USE externallibtest;
 
-create function mysum(a: int32, b: int32) returns int32 language java as "testlib","org.apache.asterix.external.library.MySumFactory";
+create function externallibtest.mysum(a: int32, b: int32) returns int32
+  as "org.apache.asterix.external.library.MySumFactory" at externallibtest.testlib;
+
+/* test if not exists */
+create function externallibtest.mysum if not exists (a: int32, b: int32) returns int32
+  as "org.apache.asterix.external.library.MySumFactory" at externallibtest.testlib;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.2.ddl.sqlpp
index fd815d1..4e93750 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.2.ddl.sqlpp
@@ -18,4 +18,5 @@
  */
  USE externallibtest;
 
-create function mysum(a: int32, b: int32) returns int32 language java as "testlib","org.apache.asterix.external.library.MySumFactory";
+create function mysum(a: int32, b: int32) returns int32
+  as "org.apache.asterix.external.library.MySumFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.5.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.5.ddl.sqlpp
index f8e2ae7..58447ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.5.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum_dropinuse/mysum_dropinuse.5.ddl.sqlpp
@@ -18,4 +18,4 @@
  */
  USE externallibtest;
 
-drop function externallibtest.mysum@2;
+drop function externallibtest.mysum(a: int32, b: int32);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.0.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.0.ddl.sqlpp
new file mode 100644
index 0000000..2076054
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.0.ddl.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+drop  dataverse test if exists;
+create  dataverse test;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.1.lib.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.1.lib.sqlpp
new file mode 100644
index 0000000..0f0a05b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.1.lib.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+install test testlib admin admin target/TweetSent.pyz
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.2.ddl.sqlpp
new file mode 100644
index 0000000..6bbeaa1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.2.ddl.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+use test;
+
+create function warning()
+  as "roundtrip", "Tests.warning" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.3.query.sqlpp
new file mode 100644
index 0000000..1fe7c59
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_function_error/py_function_error.3.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+// param max-warnings:json=1
+
+use test;
+
+warning();
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.0.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.0.ddl.sqlpp
new file mode 100644
index 0000000..c074534
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.0.ddl.sqlpp
@@ -0,0 +1,88 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.S as
+{
+  id : bigint
+};
+
+create type test.GS as
+ closed {
+  id : bigint,
+  Genus : string,
+  lower : S
+};
+
+create type test.FGS as
+{
+  id : bigint,
+  Family : string
+};
+
+create type test.OFGS as
+ closed {
+  id : bigint,
+  `Order` : string,
+  lower : FGS
+};
+
+create type test.COFGS as
+ closed {
+  id : bigint,
+  Class : string,
+  lower : OFGS
+};
+
+create type test.PCOFGS as
+ closed {
+  id : bigint,
+  Phylum : string,
+  lower : COFGS
+};
+
+create type test.KPCOFGS as
+{
+  id : bigint,
+  Kingdom : string
+};
+
+create type test.Classification as
+ closed {
+  id : bigint,
+  fullClassification : KPCOFGS
+};
+
+create type test.Animal as
+{
+  id : bigint
+};
+
+create  dataset Animals(Animal) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.1.lib.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.1.lib.sqlpp
new file mode 100644
index 0000000..0f0a05b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.1.lib.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+install test testlib admin admin target/TweetSent.pyz
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.10.query.sqlpp
new file mode 100644
index 0000000..c48dda5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.10.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.11.query.sqlpp
new file mode 100644
index 0000000..30ec1da
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.11.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.12.query.sqlpp
new file mode 100644
index 0000000..1f7925f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.12.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.13.query.sqlpp
new file mode 100644
index 0000000..13b4c28
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.13.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0]
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.2.ddl.sqlpp
new file mode 100644
index 0000000..69395a0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.2.ddl.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+use test;
+
+create function roundtrip(s)
+  as "roundtrip", "Tests.roundtrip" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.3.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.3.update.sqlpp
new file mode 100644
index 0000000..3ca7f76
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.3.update.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+load  dataset Animals using localfs ((`path`=`asterix_nc1://data/classifications/animals.adm`),(`format`=`adm`));
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.4.query.sqlpp
new file mode 100644
index 0000000..1e9a088
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.4.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower.lower.lower.lower.lower.Species
+order by result
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.5.query.sqlpp
new file mode 100644
index 0000000..eedf56b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.5.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+use test;
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower.lower.lower.lower.lower
+order by result.id )][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.6.query.sqlpp
new file mode 100644
index 0000000..4912ad6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.6.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower.lower.lower.lower
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.7.query.sqlpp
new file mode 100644
index 0000000..546c174
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.7.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower.lower.lower
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.8.query.sqlpp
new file mode 100644
index 0000000..62af850
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.8.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower.lower
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.9.query.sqlpp
new file mode 100644
index 0000000..6c594f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/py_nested_access/py_nested_access.9.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+* Description  : Access a records nested records at each level.
+* Expected Res : Success
+* Date         : 04 Jun 2015
+*/
+
+use test;
+
+
+select value [(
+select element result
+from  Animals as test
+with  result as roundtrip(test)[0][0].class.fullClassification.lower.lower
+order by result.id)][0]
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/python-fn-escape/python-fn-escape.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/python-fn-escape/python-fn-escape.2.ddl.sqlpp
index b1c5b10..ebb0844 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/python-fn-escape/python-fn-escape.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/python-fn-escape/python-fn-escape.2.ddl.sqlpp
@@ -18,4 +18,5 @@
  */
  USE externallibtest;
 
-create function system(s: string) language python as "testlib","os";
+create function system(s: string)
+  as "os", "system" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/return_invalid_type/return_invalid_type.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/return_invalid_type/return_invalid_type.2.ddl.sqlpp
index 82fec18..ee3c27a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/return_invalid_type/return_invalid_type.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/return_invalid_type/return_invalid_type.2.ddl.sqlpp
@@ -19,4 +19,5 @@
 
 use externallibtest;
 
-create function addHashTagsInPlace(t: Tweet) returns ProcessedTweet language java as "testlib","org.apache.asterix.external.library.AddHashTagsInPlaceFactory";
+create function addHashTagsInPlace(t: Tweet) returns ProcessedTweet
+  as "org.apache.asterix.external.library.AddHashTagsInPlaceFactory" at testlib;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/type_validation/type_validation.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/type_validation/type_validation.2.ddl.sqlpp
index f87c3d7..2a7c683 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/type_validation/type_validation.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/type_validation/type_validation.2.ddl.sqlpp
@@ -18,5 +18,6 @@
  */
 use externallibtest;
 
-create function typeValidation(a: int32, b: float, c:string, d:double, e:boolean, f:date, g: datetime) returns string language java as "testlib","org.apache.asterix.external.library.TypeValidationFunctionFactory";
+create function typeValidation(a: int32, b: float, c:string, d:double, e:boolean, f:date, g: datetime) returns string
+  as "org.apache.asterix.external.library.TypeValidationFunctionFactory" at testlib;
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/udf_metadata/udf_metadata.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/udf_metadata/udf_metadata.2.ddl.sqlpp
index bcb86ac..c9623b5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/udf_metadata/udf_metadata.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/udf_metadata/udf_metadata.2.ddl.sqlpp
@@ -20,35 +20,35 @@
 use externallibtest;
 
 create function myfn001()
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn002(a)
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn003(a:string, b:[bigint], c:{{boolean}})
   returns string
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn004(a:CountryCapitalType, b:[CountryCapitalType])
   returns CountryCapitalType
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn005(a:smallint, b:[bigint], c:CountryCapitalType, d:[CountryCapitalType])
   returns string
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn006(a [string])
   returns [string]
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn007(a {{string}})
   returns {{string}}
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function myfn008(a [CountryCapitalType])
   returns [CountryCapitalType]
-  language java as "testlib","org.apache.asterix.external.library.CapitalFinderFactory";
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib;
 
 create function externallibtest2.myfn009(a externallibtest.CountryCapitalType)
   returns externallibtest.CountryCapitalType
-  language java as "testlib2","org.apache.asterix.external.library.CapitalFinderFactory";
\ No newline at end of file
+  as "org.apache.asterix.external.library.CapitalFinderFactory" at testlib2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.2.ddl.sqlpp
index 7b12324..a6cf8fb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.2.ddl.sqlpp
@@ -18,5 +18,6 @@
  */
 USE externallibtest;
 
-create function toUpper(t: TextType) returns TextType language java as "testlib","org.apache.asterix.external.library.UpperCaseFactory";
+create function toUpper(t: TextType) returns TextType
+  as "org.apache.asterix.external.library.UpperCaseFactory" at testlib;
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.ddl.sqlpp
new file mode 100644
index 0000000..fbcc7db
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.ddl.sqlpp
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+drop dataverse KeyVerse if exists;
+create dataverse KeyVerse;
+use KeyVerse;
+
+create type DocumentType as open{
+};
+
+create type KVMetaType as open{
+  `key`:string,
+  vbucket:int32,
+  seq:int64,
+  cas:int64,
+  expiration:int32,
+  flags:int32,
+  revSeq:int64,
+  lockTime:int32
+};
+
+create dataset KVStore(DocumentType) with meta(KVMetaType) primary key meta().`key` with filter on meta().seq;
+
+create feed KVChangeStream with {
+ "adapter-name" : "adapter",
+  "type-name" : "DocumentType",
+  "meta-type-name" : "KVMetaType",
+  "reader" : "org.apache.asterix.external.input.record.reader.kv.KVTestReaderFactory",
+  "parser" : "record-with-metadata",
+  "format" : "dcp",
+  "record-format" : "json",
+  "change-feed" : "true",
+  "key-indexes" : "0",
+  "key-indicators" : "1",
+  "num-of-records" : "1000"
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.2.update.sqlpp
new file mode 100644
index 0000000..76ad55b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.2.update.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+use KeyVerse;
+
+set `wait-for-completion-feed` "true";
+connect feed KVChangeStream to dataset KVStore;
+
+start feed KVChangeStream;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.3.query.sqlpp
new file mode 100644
index 0000000..61c1d45
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.3.query.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+use KeyVerse;
+
+select k, meta() as meta from KVStore k
+where k.id = 5;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.4.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.4.ddl.sqlpp
new file mode 100644
index 0000000..46a5fad
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.4.ddl.sqlpp
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+drop dataverse KeyVerse;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.1.ddl.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.1.ddl.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.1.ddl.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.10.update.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.10.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.10.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.11.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.11.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.11.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.12.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.12.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.12.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.13.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.13.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.13.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.14.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.14.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.14.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.15.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.15.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.15.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.15.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.16.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.16.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.16.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.16.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.17.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.17.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.17.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.17.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.18.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.18.ddl.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.18.ddl.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.18.ddl.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.2.update.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.2.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.2.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.3.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.3.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.3.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.4.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.4.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.4.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.5.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.5.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.5.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.6.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.6.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.6.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.7.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.7.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.7.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.8.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.8.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.8.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.9.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.9.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/change-feed-with-where-on-meta/change-feed-with-where-on-meta.9.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-no-longer-used-by-feed/drop-function-no-longer-used-by-feed.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-no-longer-used-by-feed/drop-function-no-longer-used-by-feed.3.ddl.sqlpp
index c0ee51a..a92d8b7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-no-longer-used-by-feed/drop-function-no-longer-used-by-feed.3.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-no-longer-used-by-feed/drop-function-no-longer-used-by-feed.3.ddl.sqlpp
@@ -17,5 +17,4 @@
  * under the License.
  */
 use experiments;
-drop function test_func0@1;
-
+drop function test_func0@1;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-used-by-feed/drop-function-used-by-feed.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-used-by-feed/drop-function-used-by-feed.3.ddl.sqlpp
index c0ee51a..57d0a78 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-used-by-feed/drop-function-used-by-feed.3.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/drop-function-used-by-feed/drop-function-used-by-feed.3.ddl.sqlpp
@@ -17,5 +17,5 @@
  * under the License.
  */
 use experiments;
-drop function test_func0@1;
+drop function test_func0(x);
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.0.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.0.ddl.sqlpp
new file mode 100644
index 0000000..904e960
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.0.ddl.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter. Test different dataverses.
+ * Expected Res : Success
+ */
+
+drop dataverse externallibtest if exists;
+create dataverse externallibtest;
+
+drop dataverse externallibtest2 if exists;
+create dataverse externallibtest2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.1.lib.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.1.lib.sqlpp
new file mode 100644
index 0000000..806ad5e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.1.lib.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+install externallibtest2 testlib admin admin target/data/externallib/asterix-external-data-testlib.zip
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.2.ddl.sqlpp
new file mode 100644
index 0000000..46a5fe9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.2.ddl.sqlpp
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+/* test drop adapter if exists */
+drop adapter externallibtest.TweetAdapter if exists;
+
+create adapter externallibtest.TweetAdapter
+  as "org.apache.asterix.external.library.adapter.TestTypedAdapterFactory" at externallibtest2.testlib;
+
+/* test create adapter if not exists */
+create adapter externallibtest.TweetAdapter if not exists
+  as "org.apache.asterix.external.library.adapter.TestTypedAdapterFactory" at externallibtest2.testlib;
+
+create type externallibtest.TweetType as open {
+    tweetid: int64
+};
+
+create dataset externallibtest.Tweets(TweetType) primary key tweetid;
+
+create feed externallibtest.TweetFeed with {
+  "adapter-name": "TweetAdapter",
+  "type-name" : "TweetType",
+  "num_output_records": 4
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.3.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.3.update.sqlpp
new file mode 100644
index 0000000..ae44476
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.3.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+set `wait-for-completion-feed` "true";
+
+connect feed externallibtest.TweetFeed to dataset externallibtest.Tweets;
+start feed externallibtest.TweetFeed;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.query.sqlpp
new file mode 100644
index 0000000..5eccf60
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+select value t
+from externallibtest.Tweets t
+order by t.tweetid;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.5.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.5.update.sqlpp
new file mode 100644
index 0000000..62f4960
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.5.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+disconnect feed externallibtest.TweetFeed from dataset externallibtest.Tweets;
+drop feed externallibtest.TweetFeed;
+drop adapter externallibtest.TweetAdapter;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.2.ddl.sqlpp
index 9cb4046..f0a36cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.2.ddl.sqlpp
@@ -23,8 +23,15 @@
 
 use externallibtest;
 
-create adapter TweetAdapter language java as "testlib",
-  "org.apache.asterix.external.library.adapter.TestTypedAdapterFactory";
+/* test drop adapter if exists */
+drop adapter TweetAdapter if exists;
+
+create adapter TweetAdapter
+  as "org.apache.asterix.external.library.adapter.TestTypedAdapterFactory" at testlib;
+
+/* test create adapter if not exists */
+create adapter TweetAdapter if not exists
+  as "org.apache.asterix.external.library.adapter.TestTypedAdapterFactory" at testlib;
 
 create type TweetType as open {
     tweetid: int64
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.5.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.5.update.sqlpp
new file mode 100644
index 0000000..e897463
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-adapter/feed-with-external-adapter.5.update.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Feed with an external adapter
+ * Expected Res : Success
+ */
+
+use externallibtest;
+
+disconnect feed TweetFeed from dataset Tweets;
+drop feed TweetFeed;
+drop adapter TweetAdapter;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-function/feed-with-external-function.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-function/feed-with-external-function.2.ddl.sqlpp
index 00544be..01e29c0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-function/feed-with-external-function.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/feeds/feed-with-external-function/feed-with-external-function.2.ddl.sqlpp
@@ -24,5 +24,7 @@
 
 use udfs;
 
-create function addMentionedUsers(t: TweetType) returns TweetType language java as "testlib","org.apache.asterix.external.library.AddMentionedUsersFactory" WITH {"textFieldName": "text"};
+create function addMentionedUsers(t: TweetType) returns TweetType
+  as "org.apache.asterix.external.library.AddMentionedUsersFactory" at testlib
+  with { "resources": {"textFieldName": "text"} };
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.2.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.2.ddl.sqlpp
index 14a68c0..e39a9fc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.2.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.2.ddl.sqlpp
@@ -17,4 +17,4 @@
  * under the License.
  */
 use test;
-drop function test@0 if exists;
\ No newline at end of file
+drop function test() if exists;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.3.ddl.sqlpp
index 14a68c0..e39a9fc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.3.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/function/drop_if_exists/drop_if_exists.3.ddl.sqlpp
@@ -17,4 +17,4 @@
  * under the License.
  */
 use test;
-drop function test@0 if exists;
\ No newline at end of file
+drop function test() if exists;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.1.ddl.sqlpp
new file mode 100644
index 0000000..8ae179e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+drop  dataverse fuzzyjoin if exists;
+create  dataverse fuzzyjoin;
+
+use fuzzyjoin;
+
+
+create type DBLPType as
+{
+  id : string,
+  dblpid : string,
+  title : string,
+  authors : string,
+  misc : string
+};
+
+create dataset DBLP(DBLPType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.2.update.sqlpp
new file mode 100644
index 0000000..51c5bb1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.2.update.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+use fuzzyjoin;
+
+load  dataset DBLP using localfs ((`path`=`asterix_nc1://data/dblp-small/dblp-small-id.txt`),(`format`=`delimited-text`),(`delimiter`=`:`)) pre-sorted;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.get.http
new file mode 100644
index 0000000..e9e914e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.get.http
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/connector?datasetName=DBLP&dataverseName=fuzzyjoin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.query.sqlpp
new file mode 100644
index 0000000..0d3f4ca
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.query.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+use fuzzyjoin;
+
+SELECT VALUE id FROM DBLP dblp where ftcontains(dblp.title, ["storage", "ExODuS"], {"mode" : "all"});
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.1.ddl.sqlpp
deleted file mode 100644
index fa9ccad..0000000
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.1.ddl.sqlpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
- */
-
-DROP DATAVERSE gby IF EXISTS;
-CREATE DATAVERSE gby;
-
-USE gby;
-
-CREATE TYPE EmployeeType AS {
-  id : string
-};
-
-CREATE TYPE IncentiveType AS {
-  job_category: string
-};
-
-CREATE TYPE SuperStarType AS {
-  id : string
-};
-
-CREATE DATASET Employee(EmployeeType) PRIMARY KEY id;
-CREATE DATASET Incentive(IncentiveType) PRIMARY KEY job_category;
-CREATE DATASET SuperStars(SuperStarType) PRIMARY KEY id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.2.update.sqlpp
deleted file mode 100644
index cfa1f24..0000000
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.2.update.sqlpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.
- */
-
-
-USE gby;
-
-INSERT INTO Employee (
-   {
-    'id': '123',
-    'job_category': 'Cook',
-    'salary': 2000,
-    'department_id': 'K55'
-   }
-);
-
-INSERT INTO Incentive (
-  { 'job_category': 'Cook',
-    'bonus': 1000
-  }
-);
-
-INSERT INTO SuperStars (
-  {
-    'id': '123'
-  }
-);
-
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.1.ddl.sqlpp
deleted file mode 100644
index fa9ccad..0000000
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.1.ddl.sqlpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
- */
-
-DROP DATAVERSE gby IF EXISTS;
-CREATE DATAVERSE gby;
-
-USE gby;
-
-CREATE TYPE EmployeeType AS {
-  id : string
-};
-
-CREATE TYPE IncentiveType AS {
-  job_category: string
-};
-
-CREATE TYPE SuperStarType AS {
-  id : string
-};
-
-CREATE DATASET Employee(EmployeeType) PRIMARY KEY id;
-CREATE DATASET Incentive(IncentiveType) PRIMARY KEY job_category;
-CREATE DATASET SuperStars(SuperStarType) PRIMARY KEY id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.2.update.sqlpp
deleted file mode 100644
index cfa1f24..0000000
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.2.update.sqlpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.
- */
-
-
-USE gby;
-
-INSERT INTO Employee (
-   {
-    'id': '123',
-    'job_category': 'Cook',
-    'salary': 2000,
-    'department_id': 'K55'
-   }
-);
-
-INSERT INTO Incentive (
-  { 'job_category': 'Cook',
-    'bonus': 1000
-  }
-);
-
-INSERT INTO SuperStars (
-  {
-    'id': '123'
-  }
-);
-
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.4.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-2/gby-expr-2.3.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.4.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.5.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr-3/gby-expr-3.3.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.5.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.6.query.sqlpp
new file mode 100644
index 0000000..47e750d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/gby-expr/gby-expr.6.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+
+USE gby;
+
+/*
+ * Test that builtin function names are compared case-insensitive
+ * when replacing SELECT expression with GROUP BY expression
+ */
+
+FROM Employee e
+    JOIN Incentive i ON e.job_category = i.job_category
+    JOIN SuperStars s ON e.id = s.id
+GROUP BY substr(e.department_id, 0)
+SELECT SUBSTR(e.department_id, 0) as deptId, SUM(e.salary + i.bonus) AS star_cost;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.query.sqlpp
new file mode 100644
index 0000000..26a3c1f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select four, s1, s2
+from tenk
+group by rollup(four)
+let s1 = sum(two), s2 = sum(unique1)
+order by s1 desc, s2 desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.query.sqlpp
new file mode 100644
index 0000000..fe073cc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select four, s1
+from tenk
+group by rollup(four)
+let s1 = sum(two), s2 = sum(unique1)
+order by s1 desc, s2 desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.query.sqlpp
new file mode 100644
index 0000000..abc2f29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select four
+from tenk
+group by rollup(four)
+let s1 = sum(two), s2 = sum(unique1)
+order by s1 desc, s2 desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.query.sqlpp
new file mode 100644
index 0000000..faba3d2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select value four
+from tenk
+group by rollup(four)
+let s1 = sum(two), s2 = sum(unique1)
+order by s1 desc, s2 desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.query.sqlpp
new file mode 100644
index 0000000..6539da30
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select distinct four, s1
+from tenk
+group by grouping sets((four), (four))
+let s1 = sum(two)
+order by s1 desc, four desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.query.sqlpp
new file mode 100644
index 0000000..fd90e93
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select distinct value s1
+from tenk
+group by grouping sets((four), (four))
+let s1 = sum(two)
+order by s1 desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.query.sqlpp
new file mode 100644
index 0000000..14bd768
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select four, sum(two) s
+from tenk
+group by rollup(four)
+order by four;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.query.sqlpp
new file mode 100644
index 0000000..e341ffd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select value to_string(if_null(four, "null")) || "," || to_string(sum(two))
+from tenk
+group by rollup(four)
+order by four;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.query.sqlpp
new file mode 100644
index 0000000..b95e1d5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select two, null as four, sum(unique1) s
+from tenk
+group by rollup(two)
+union all
+select null as two, four, sum(unique1) s
+from tenk
+group by rollup(four)
+
+order by s desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.query.sqlpp
index 6fcac65..ea7b81e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.query.sqlpp
@@ -23,6 +23,6 @@
 use test;
 
 select v2, v4, grouping(v2, v4) as grp, sum(ten) as agg_sum
-  from tenk
-  group by rollup(two as v2, four as v4)
-  order by v2, v4;
+from tenk
+group by rollup(two as v2, four as v4)
+order by v2, v4;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.query.sqlpp
index 38a80f1..d894f88 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.query.sqlpp
@@ -24,6 +24,6 @@
 use test;
 
 select v2, v4, grouping(v2, v4) as grp, sum(ten) as agg_sum
-  from tenk
-  group by two as v2, rollup(two, four as v4)
-  order by v2, v4;
+from tenk
+group by two as v2, rollup(two, four as v4)
+order by v2, v4;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.query.sqlpp
new file mode 100644
index 0000000..45e085b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select two, four, s
+from tenk
+group by rollup(two, four)
+let s = sum(unique1)
+order by s desc;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.query.sqlpp
new file mode 100644
index 0000000..cc0f2bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select two, four
+from tenk
+group by rollup(two, four)
+let s = sum(unique1)
+order by s desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.query.sqlpp
new file mode 100644
index 0000000..d4ce070
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select value
+  to_string(if_null(two, "null")) || ',' || to_string(if_null(four, "null"))
+from tenk
+group by rollup(two, four)
+let s = sum(unique1)
+order by s desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.query.sqlpp
new file mode 100644
index 0000000..9565c39
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.query.sqlpp
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+set `compiler.groupmemory` "4MB";
+set `compiler.sortmemory` "4MB";
+
+use test;
+
+with tenk_subset as (
+  select two, unique1
+  from tenk
+  where unique2 % 2000 = 0
+),
+
+tenk_sum as (
+  select *
+  from tenk_subset t
+  group by rollup(two) group as g
+  let s = sum(unique1)
+  order by s desc
+  limit 3
+)
+
+select s, two, gg
+from tenk_sum tt
+let gg = ( select gi.* from tt.g as gi order by gi.t.unique1 )
+order by s desc;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-3-negative/grouping-sets-3-negative.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-3-negative/grouping-sets-3-negative.9.query.sqlpp
new file mode 100644
index 0000000..7d05dee
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/group-by/grouping-sets-3-negative/grouping-sets-3-negative.9.query.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * ORDER BY after GROUPING SETS with SELECT v.*
+ */
+
+with hundred as (
+ select r % 2 as two, r %3 as three, r % 4 as four,
+  r % 5 as five, r % 6 as six, r % 7 as seven,
+  t % 8 as eight, r % 9 as nine, r % 10 as ten
+ from range(1, 100) r
+)
+
+select v.*
+from hundred
+group by rollup(two, four)
+let v = { two, four },
+    s = sum(ten)
+order by s
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.sqlpp
index f337543..2051275 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/intersection_with_nodegroup/intersection_with_nodegroup.1.ddl.sqlpp
@@ -43,8 +43,9 @@
     asterix_nc1;
 
 create dataset TweetMessages(TweetMessageType)
-primary key tweetid on group_test
-hints(cardinality=100);
+primary key tweetid
+hints(cardinality=100)
+WITH {"node-group":{"name":"group_test"}};
 
 create index twTimeIdx on TweetMessages(`send-time`) type btree;
 create index twLocationIdx on TweetMessages(user.`sender-location`) type rtree;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.sqlpp
index fb4c9cb..508757a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-with-two-ngram-index/inverted-index-ngram-edit-distance-with-two-ngram-index.1.ddl.sqlpp
@@ -38,6 +38,6 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id WITH {"node-group":{"name":"group1"}};
 
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
index f25e779..1390c3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
@@ -47,5 +47,5 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
index f25e779..1390c3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
@@ -47,5 +47,5 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
index f25e779..1390c3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
@@ -47,5 +47,5 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
index 97e4c49..c920201 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
@@ -47,5 +47,5 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customers(CustomerType) primary key cid on group1;
+create  dataset Customers(CustomerType) primary key cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.sqlpp
index 2d91636..825a391 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/orders-index-custkey-open/orders-index-custkey-open.1.ddl.sqlpp
@@ -40,5 +40,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset Orders(OrderType) primary key o_orderkey on group1;
+create  dataset Orders(OrderType) primary key o_orderkey WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.1.ddl.sqlpp
new file mode 100644
index 0000000..7502f37
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.1.ddl.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+create type openType as {id: string};
+create dataset ds1(openType) primary key id;
+create dataset ds2(openType) primary key id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.2.update.sqlpp
new file mode 100644
index 0000000..ec06976
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.2.update.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+insert into ds1 {"id": "1", "f": 3};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.3.query.sqlpp
new file mode 100644
index 0000000..57ab8c1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.3.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+from ds1 left outer join ds2 on ds1.f = ds2.f
+select ds1, ds2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.4.query.sqlpp
new file mode 100644
index 0000000..d0b21b8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.4.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+from ds2 left outer join ds1 on ds2.f = ds1.f
+select ds1, ds2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.5.query.sqlpp
new file mode 100644
index 0000000..3dba765
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.5.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+from ds1 join ds2 on ds1.f = ds2.f
+select ds1, ds2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.6.query.sqlpp
new file mode 100644
index 0000000..851be3a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/join/join-with-empty-dataset/join-with-empty-dataset.6.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+from ds2 join ds1 on ds2.f = ds1.f
+select ds1, ds2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.1.ddl.sqlpp
new file mode 100644
index 0000000..ad018d3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.1.ddl.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+drop  dataverse TinySocial if exists;
+create  dataverse TinySocial;
+
+use TinySocial;
+
+create type t1 AS {
+
+};
+
+create type t2 AS {
+id: int,
+compType: t1
+};
+
+create dataset d1(t2) primary key id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.2.update.sqlpp
new file mode 100644
index 0000000..2c88183
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.2.update.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+use TinySocial;
+
+insert into d1([
+{"id":1, "compType":{"sth":33}},
+{"id":2, "compType":{"sth":44}, "followers":[{"a":"a_val1", "b": "b_val1"}, {"a":"a_val2", "b":"b_val2"}, {"a":"a_val3", "b":"b_val3"}]}
+]);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.3.query.sqlpp
new file mode 100644
index 0000000..f26c332
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/list-star_01/list-star_01.3.query.sqlpp
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+use TinySocial;
+
+{
+  "t1": [{"a":"a_val1", "b": "b_val1"}, {"a":"a_val2", "b":"b_val2"}, {"a":"a_val3", "b":"b_val3"}][*],
+  "t2": (select value v from d1 v)[*],
+  "t3": [{"b": "b_val1", "a":"a_val1"}, {"a":"a_val2", "b":"b_val2"}, {"a":"a_val3", "b":"b_val3"}][*],
+  "t4": [{"b": "b_val1", "a":"a_val1"}, {"b":"b_val2"}, {"a":"a_val3", "b":"b_val3"}][*],
+  "t5": [{"b": "b_val1", "a":"a_val1"}, {"a": null, "b":"b_val2"}, {"a":"a_val3", "b":"b_val3"}][*],
+  "t6": [{"b": "b_val1", "a":"a_val1"}, {"a": null, "b":"b_val2"}, {"a":"a_val3", "b":"b_val3", "c":"c_val3"}][*],
+  "t7": [{"b": "b_val1", "a":5}, {"a": 3.2, "b":"b_val2"}, {"a":"a_val3", "b":"b_val3", "c":"c_val3"}][*],
+  "t8": [{"b": "b_val1", "a":"a_val1"}, {}, {"a":"a_val3", "b":"b_val3"}][*],
+  "t9": [{"b": "b_val1", "a":"a_val1"}, 5, {"a":"a_val3", "b":"b_val3"}][*],
+  "t10": [{"b": "b_val1", "a":"a_val1"}, null, {"a":"a_val3", "b":"b_val3"}][*],
+  "t11": [{"b": "b_val1", "a":"a_val1"}, missing, {"a":"a_val3", "b":"b_val3"}][*],
+  "t12": [{"b": "b_val1", "a":"a_val1"}, 5, [3] ][*],
+  "t13": [{}, {}, {}][*],
+  "t14": [1, 2, 3][*],
+  "t15": [1][*],
+  "t16": [][*],
+  "t17": "non_array"[*],
+  "t18": missing[*],
+  "t19": null[*],
+  "t20": (select d.followers[*] from d1 d)
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.2.query.sqlpp
new file mode 100644
index 0000000..83c3779
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.2.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: testing constant folding of OR with one TRUE argument
+ */
+
+select value true or x<=2
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.3.query.sqlpp
new file mode 100644
index 0000000..85a77fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.3.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: testing constant folding of OR with one TRUE argument
+ */
+
+explain select value true or x<=2
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.4.query.sqlpp
new file mode 100644
index 0000000..efb543f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.4.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: testing constant folding of OR with one FALSE argument
+ */
+
+select value false or x<=2
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.5.query.sqlpp
new file mode 100644
index 0000000..4283fa6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.5.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: testing constant folding of OR with one FALSE argument
+ */
+
+explain select value false or x<=2
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.6.query.sqlpp
new file mode 100644
index 0000000..b4b7c36
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.6.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: No constant folding of OR with non TRUE/FALSE argument
+ */
+
+explain select value null or x<=2
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.7.query.sqlpp
new file mode 100644
index 0000000..517a996
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/constant_folding/constant_folding.7.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description: No constant folding of OR with a non functional argument
+ */
+
+explain select value true or get_year(current_date()) < x
+from range(1, 4) x
+order by x;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.1.ddl.sqlpp
new file mode 100644
index 0000000..867c91b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description: special characters in multipart dataverse name
+ */
+
+drop dataverse A if exists;
+create dataverse A;
+
+drop dataverse B.C if exists;
+create dataverse B.C;
+
+drop dataverse `C.D.E` if exists;
+create dataverse `C.D.E`;
+
+drop dataverse `a-A`.`b_B`.`c$C`.`z.Z` if exists;
+create dataverse `a-A`.`b_B`.`c$C`.`z.Z`;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.2.query.sqlpp
new file mode 100644
index 0000000..4dc4e3b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/multipart-dataverse/special_chars_2/special_chars_2.2.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+select DataverseName as CanonicalName,
+  decode_dataverse_display_name(DataverseName) as DisplayName,
+  decode_dataverse_name(DataverseName) as NameParts
+from Metadata.`Dataverse`
+order by DataverseName;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
index 31cbd0f..69c3d12 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
@@ -41,7 +41,7 @@
   nested : DBLPNestedType
 };
 
-create  dataset DBLPtmp(DBLPNestedType) primary key id on group1;
+create  dataset DBLPtmp(DBLPNestedType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
index d1ba662..9e3c7be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
@@ -41,7 +41,7 @@
   nested : DBLPNestedType
 };
 
-create  dataset DBLPtmp(DBLPNestedType) primary key id on group1;
+create  dataset DBLPtmp(DBLPNestedType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
index 76506fd..4932563 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.1.ddl.sqlpp
@@ -52,7 +52,7 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customerstmp(CustomerTypetmp) primary key cid on group1;
+create  dataset Customerstmp(CustomerTypetmp) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key nested.cid on group1;
+create  dataset Customers(CustomerType) primary key nested.cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
index 76506fd..4932563 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.1.ddl.sqlpp
@@ -52,7 +52,7 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customerstmp(CustomerTypetmp) primary key cid on group1;
+create  dataset Customerstmp(CustomerTypetmp) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key nested.cid on group1;
+create  dataset Customers(CustomerType) primary key nested.cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
index 76506fd..4932563 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.1.ddl.sqlpp
@@ -52,7 +52,7 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customerstmp(CustomerTypetmp) primary key cid on group1;
+create  dataset Customerstmp(CustomerTypetmp) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key nested.cid on group1;
+create  dataset Customers(CustomerType) primary key nested.cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
index 38695e6..0949401 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.1.ddl.sqlpp
@@ -52,7 +52,7 @@
 create  nodegroup group1 if not exists  on
     asterix_nc1
 ;
-create  dataset Customerstmp(CustomerTypetmp) primary key cid on group1;
+create  dataset Customerstmp(CustomerTypetmp) primary key cid WITH {"node-group":{"name":"group1"}};
 
-create  dataset Customers(CustomerType) primary key nested.cid on group1;
+create  dataset Customers(CustomerType) primary key nested.cid WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
index 710cb66..2109967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
@@ -41,7 +41,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
index 04a8caa..ab18ffe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
index fa5931a..0854f76 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
@@ -49,7 +49,7 @@
   nested : DBLPOpenType
 };
 
-create  dataset DBLPtmp(DBLPClosedType) primary key id on group1;
+create  dataset DBLPtmp(DBLPClosedType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
index db282da..56055de 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
index fa5931a..0854f76 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
@@ -49,7 +49,7 @@
   nested : DBLPOpenType
 };
 
-create  dataset DBLPtmp(DBLPClosedType) primary key id on group1;
+create  dataset DBLPtmp(DBLPClosedType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
index db282da..56055de 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
index 04a8caa..ab18ffe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
index 04a8caa..ab18ffe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
index 04a8caa..ab18ffe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
@@ -49,7 +49,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPTypetmp) primary key id on group1;
+create  dataset DBLPtmp(DBLPTypetmp) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPType) primary key nested.id on group1;
+create  dataset DBLP(DBLPType) primary key nested.id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
index 199b34c..458b048 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
index c5af04a..95678af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPType) primary key id on group1;
+create  dataset DBLPtmp(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPOpenType) primary key id on group1;
+create  dataset DBLP(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
index 412bd06..ae1176a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
index c5af04a..95678af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLPtmp(DBLPType) primary key id on group1;
+create  dataset DBLPtmp(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLP(DBLPOpenType) primary key id on group1;
+create  dataset DBLP(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
index 412bd06..ae1176a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
index 199b34c..458b048 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
index 199b34c..458b048 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
index 199b34c..458b048 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.1.ddl.sqlpp
@@ -44,7 +44,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
-create  dataset DBLPOpen(DBLPOpenType) primary key id on group1;
+create  dataset DBLPOpen(DBLPOpenType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.sqlpp
index ebe24c2..1077f44 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/open-index-enforced/index-selection/multi-index/multi-index.1.ddl.sqlpp
@@ -38,6 +38,6 @@
 create nodegroup group1 if not exists on asterix_nc1, asterix_nc2;
 
 create dataset DBLP(DBLPType)
-  primary key id on group1;
+  primary key id WITH {"node-group":{"name":"group1"}};
 create dataset DBLPOpen(DBLPOpenType)
-  primary key id on group1;
+  primary key id WITH {"node-group":{"name":"group1"}};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-edit-distance/fuzzyeq-edit-distance.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.sqlpp
index 8778274..144226c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.sqlpp
index 9bf6d4d..095d3dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.1.ddl.sqlpp
@@ -36,5 +36,5 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset DBLP(DBLPType) primary key id on group1;
+create  dataset DBLP(DBLPType) primary key id WITH {"node-group":{"name":"group1"}};
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.sqlpp
index d9fb7ec..482d2a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.1.ddl.sqlpp
@@ -36,7 +36,7 @@
     asterix_nc1,
     asterix_nc2
 ;
-create  dataset TwitterData(Tweet) primary key id on group1;
+create  dataset TwitterData(Tweet) primary key id WITH {"node-group":{"name":"group1"}};
 
 create  index rtree_index_point  on TwitterData (loc) type rtree;
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.1.ddl.sqlpp
new file mode 100644
index 0000000..7515b0b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.1.ddl.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in query plan
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type test.Emp as
+ closed {
+  id : bigint,
+  fname : string,
+  lname : string,
+  age : bigint,
+  dept : string
+};
+
+create  dataset employee(Emp) primary key id;
+
+create  index idx_employee_fname on employee (fname) type btree;
+
+create  index idx_employee_lname on employee (lname) type btree;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.2.update.sqlpp
new file mode 100644
index 0000000..eef17c1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.2.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in query plan
+ */
+
+use test;
+
+load  dataset employee using localfs ((`path`=`asterix_nc1://data/names.adm`),(`format`=`delimited-text`),(`delimiter`=`|`));
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.3.query.sqlpp
new file mode 100644
index 0000000..aae6b95
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.3.query.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in this query plan
+ */
+
+// requesttype=application/json
+
+// param $p_fname:json="Julio"
+// param $p_lname:json=null
+
+use test;
+
+select l.id, l.fname, l.lname, l.age
+from employee as l
+where
+  ($p_fname is null or l.fname = $p_fname )
+  and
+  ($p_lname is null or l.lname = $p_lname)
+order by l.id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.4.query.sqlpp
new file mode 100644
index 0000000..2b1c77c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/index_01/index_01.4.query.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description: Test that BTree index is used in this query plan
+ */
+
+// requesttype=application/json
+
+// param $p_fname:json="Julio"
+// param $p_lname:json="Isa"
+
+use test;
+
+select l.id, l.fname, l.lname, l.age
+from employee as l
+where
+  ($p_fname is null or l.fname = $p_fname )
+  and
+  ($p_lname is null or l.lname = $p_lname)
+order by l.id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/length_multi_code_point_01/length_multi_code_point_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/length_multi_code_point_01/length_multi_code_point_01.1.query.sqlpp
new file mode 100644
index 0000000..082b827
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/length_multi_code_point_01/length_multi_code_point_01.1.query.sqlpp
@@ -0,0 +1,5 @@
+[
+    length("👩‍👩‍👧‍👦"),
+    length("👩‍👩‍👧‍👦🇨🇳"),
+    length("한글")
+];
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.query.sqlpp
new file mode 100644
index 0000000..e50ada6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.query.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+pos0("👩‍👩‍👧‍👦🏀", "🏀");
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.query.sqlpp
new file mode 100644
index 0000000..55af74b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.query.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+pos1("👩‍👩‍👧‍👦🏀", "🏀");
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/regexp_contains/regexp_contains/regexp_contains.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/regexp_contains/regexp_contains/regexp_contains.3.query.sqlpp
index da6968a..df96edc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/regexp_contains/regexp_contains/regexp_contains.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/regexp_contains/regexp_contains/regexp_contains.3.query.sqlpp
@@ -34,6 +34,7 @@
       REGEXP_CONTAINS('FFFFFFFF','[\\p{XDigit}]'),
       REGEXP_CONTAINS('abcdefgh','[\\p{javaLowerCase}]'),
       REGEXP_CONTAINS('ABCDEF','[\\p{javaLowerCase}]'),
-      REGEXP_CONTAINS(`codepoint-to-string`([163]),'[\\p{Sc}]')
+      REGEXP_CONTAINS(`codepoint-to-string`([163]),'[\\p{Sc}]'),
+      REGEXP_CONTAINS('👩‍👩‍👧‍👦','👩‍👩‍👧‍👦')
      ] as a
 ;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/reverse/reverse.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/reverse/reverse.1.query.sqlpp
index e127372..f450868 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/reverse/reverse.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/reverse/reverse.1.query.sqlpp
@@ -22,5 +22,6 @@
    "t2": reverse(""),
    "t3": reverse("abcd"),
    "t4": string_to_codepoint(reverse("a\u00D7\u2103\u00F7\u2109b")),
-   "t5": ( from ["ab", "abc", "abcd"] t select value reverse(t) order by t )
- }
\ No newline at end of file
+   "t5": ( from ["ab", "abc", "abcd"] t select value reverse(t) order by t ),
+   "t6": reverse("🇨🇳")
+ };
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.query.sqlpp
new file mode 100644
index 0000000..4261cda
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.query.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+[
+    string_to_codepoint("👩‍👩‍👧‍👦"),
+    codepoint_to_string([ 128105, 8205, 128105, 8205, 128103, 8205, 128102 ])
+];
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.query.sqlpp
new file mode 100644
index 0000000..16e75a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+{
+  '2 people in a 4-people family': SUBSTR("👨‍👨‍👦‍👦", 2, 3),
+  'Korean test 0': SUBSTR('한글', 3,3),
+  'Korean test 1': SUBSTR('한글', 2,2)
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/trim/trim.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/trim/trim.1.query.sqlpp
index 61dc619..82326c4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/trim/trim.1.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/trim/trim.1.query.sqlpp
@@ -33,5 +33,9 @@
    trim(null, null),
    trim("abc", missing),
    trim(missing, "abc"),
-   trim(missing, missing)
+   trim(missing, missing),
+   trim("🇺🇸", "🇺"),
+   trim("👨‍👩‍👧‍👦", "👨‍👦"),
+   ltrim("👨‍👩‍👧‍👦", "👨‍👦"),
+   rtrim("👨‍👩‍👧‍👦", "👨‍👦")
 ];
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/TemporalQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/TemporalQueries.xml
index 2df6acb..4ec2303 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/TemporalQueries.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/TemporalQueries.xml
@@ -155,8 +155,8 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_overlapping">
-        <output-dir compare="Text">interval_overlapping</output-dir>
+      <compilation-unit name="interval_after">
+        <output-dir compare="Text">interval_after</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
@@ -165,11 +165,21 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
+      <compilation-unit name="interval_covered_by">
+        <output-dir compare="Text">interval_covered_by</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins">
       <compilation-unit name="interval_covers">
         <output-dir compare="Text">interval_covers</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
+      <compilation-unit name="interval_ended_by">
+        <output-dir compare="Text">interval_ended_by</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins">
       <compilation-unit name="interval_ends">
         <output-dir compare="Text">interval_ends</output-dir>
       </compilation-unit>
@@ -180,31 +190,6 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_overlaps">
-        <output-dir compare="Text">interval_overlaps</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_starts">
-        <output-dir compare="Text">interval_starts</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_after">
-        <output-dir compare="Text">interval_after</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_covered_by">
-        <output-dir compare="Text">interval_covered_by</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="temporal/interval_joins">
-      <compilation-unit name="interval_ended_by">
-        <output-dir compare="Text">interval_ended_by</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="temporal/interval_joins">
       <compilation-unit name="interval_met_by">
         <output-dir compare="Text">interval_met_by</output-dir>
       </compilation-unit>
@@ -215,8 +200,58 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="temporal/interval_joins">
+      <compilation-unit name="interval_overlapping">
+        <output-dir compare="Text">interval_overlapping</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins">
+      <compilation-unit name="interval_overlaps">
+        <output-dir compare="Text">interval_overlaps</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins">
       <compilation-unit name="interval_started_by">
         <output-dir compare="Text">interval_started_by</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="temporal/interval_joins">
+      <compilation-unit name="interval_starts">
+        <output-dir compare="Text">interval_starts</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_after">
+        <output-dir compare="Text">interval_after</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_before">
+        <output-dir compare="Text">interval_before</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_covered_by">
+        <output-dir compare="Text">interval_covered_by</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_covers">
+        <output-dir compare="Text">interval_covers</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_overlapped_by">
+        <output-dir compare="Text">interval_overlapped_by</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_overlapping">
+        <output-dir compare="Text">interval_overlapping</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="temporal/interval_joins_spilling">
+      <compilation-unit name="interval_overlaps">
+        <output-dir compare="Text">interval_overlaps</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.1.ddl.sqlpp
index fdef960..9ea732a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,10 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.10.query.sqlpp
new file mode 100644
index 0000000..3504834
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_after(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.11.query.sqlpp
new file mode 100644
index 0000000..45406b1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_after(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.12.query.sqlpp
new file mode 100644
index 0000000..3baabf1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_after(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.13.query.sqlpp
new file mode 100644
index 0000000..6b91ac9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_after(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.14.query.sqlpp
new file mode 100644
index 0000000..c5f2280
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_after(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
index a303827..6668205 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   9th January 2019
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-after`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_after(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.4.query.sqlpp
index fa439c1..31ba5aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-after`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_after(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.5.query.sqlpp
index 39e3372..c9308fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-after`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_after(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.6.query.sqlpp
index eb2797b..48118d4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-after`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_after(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.7.query.sqlpp
new file mode 100644
index 0000000..a013ac9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_after(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.8.query.sqlpp
new file mode 100644
index 0000000..690e5b5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_after(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.9.query.sqlpp
new file mode 100644
index 0000000..c57cfc7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_after/interval_after.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_after(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.10.query.sqlpp
new file mode 100644
index 0000000..9e22e04
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_before(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.11.query.sqlpp
new file mode 100644
index 0000000..b93f969
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_before(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.12.query.sqlpp
new file mode 100644
index 0000000..6ffb1cb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_before(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.13.query.sqlpp
new file mode 100644
index 0000000..295f895
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_before(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.14.query.sqlpp
new file mode 100644
index 0000000..6d0e028
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_before(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
index 4644367..faf9e7e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-before`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_before(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.4.query.sqlpp
index 8db7596..6c1f734 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-before`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_before(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.5.query.sqlpp
index 3769ff3..c7e34d8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-before`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_before(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.6.query.sqlpp
index 70ab1ea..27185d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-before`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_before(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.7.query.sqlpp
new file mode 100644
index 0000000..c184704
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_before(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.8.query.sqlpp
new file mode 100644
index 0000000..7425bce
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_before(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.9.query.sqlpp
new file mode 100644
index 0000000..5089141
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_before/interval_before.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_before(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.10.query.sqlpp
new file mode 100644
index 0000000..d71029a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covered_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.11.query.sqlpp
new file mode 100644
index 0000000..e635228
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covered_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.12.query.sqlpp
new file mode 100644
index 0000000..25d22d5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covered_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.13.query.sqlpp
new file mode 100644
index 0000000..1f287ef
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covered_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.14.query.sqlpp
new file mode 100644
index 0000000..881f62e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covered_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
index cdd6744..3458df9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-covered-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covered_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.4.query.sqlpp
index 2209a6a..2deb6e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-covered-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covered_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.5.query.sqlpp
index 69ac8d5..fa931af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-covered-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covered_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.6.query.sqlpp
index 467200a..0010b26 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-covered-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covered_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.7.query.sqlpp
new file mode 100644
index 0000000..5bf5d4a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covered_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.8.query.sqlpp
new file mode 100644
index 0000000..83f7beb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covered_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.9.query.sqlpp
new file mode 100644
index 0000000..46ba991
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covered_by/interval_covered_by.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covered_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.10.query.sqlpp
new file mode 100644
index 0000000..16f53dd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covers(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.11.query.sqlpp
new file mode 100644
index 0000000..94db651
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covers(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.12.query.sqlpp
new file mode 100644
index 0000000..fbc64ab
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covers(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.13.query.sqlpp
new file mode 100644
index 0000000..bdd439e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covers(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.14.query.sqlpp
new file mode 100644
index 0000000..dddf7bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_covers(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
index 2816cfb..bc2e0b5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-covers`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covers(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.4.query.sqlpp
index 0241040..c22cc60 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-covers`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covers(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.5.query.sqlpp
index 8e600d0..9a2c572 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-covers`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covers(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.6.query.sqlpp
index d4a3760..89d9ada 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-covers`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_covers(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.7.query.sqlpp
new file mode 100644
index 0000000..ba156f1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covers(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.8.query.sqlpp
new file mode 100644
index 0000000..051620d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covers(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.9.query.sqlpp
new file mode 100644
index 0000000..dbd1fba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_covers/interval_covers.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_covers(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.1.ddl.sqlpp
index fdef960..07166ca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.10.query.sqlpp
new file mode 100644
index 0000000..390daaa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ended_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.11.query.sqlpp
new file mode 100644
index 0000000..2986aa9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ended_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.12.query.sqlpp
new file mode 100644
index 0000000..0520104
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ended_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.13.query.sqlpp
new file mode 100644
index 0000000..62f72b6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ended_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.14.query.sqlpp
new file mode 100644
index 0000000..09ff8b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ended_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.2.update.sqlpp
index 4334476..49648a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
index 96b63c5..5d410ae 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-ended-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ended_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.4.query.sqlpp
index 74929b2..ef30f3e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-ended-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ended_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.5.query.sqlpp
index 08f33a5..f4aae13 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-ended-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ended_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.6.query.sqlpp
index bb4e8b2..bd4dc8d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-ended-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ended_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.7.query.sqlpp
new file mode 100644
index 0000000..5d0e86d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ended_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.8.query.sqlpp
new file mode 100644
index 0000000..053535b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ended_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.9.query.sqlpp
new file mode 100644
index 0000000..c7d21f2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ended_by/interval_ended_by.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ended_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ended_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.1.ddl.sqlpp
index fdef960..e3c2e76 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.10.query.sqlpp
new file mode 100644
index 0000000..80f1641
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ends(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.11.query.sqlpp
new file mode 100644
index 0000000..a12b527
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ends(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.12.query.sqlpp
new file mode 100644
index 0000000..fd758e0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ends(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.13.query.sqlpp
new file mode 100644
index 0000000..0f8a057
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ends(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.14.query.sqlpp
new file mode 100644
index 0000000..010c04e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_ends(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.2.update.sqlpp
index 4334476..881d227 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
index 50ae865..42e9380 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-ends`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ends(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.4.query.sqlpp
index 86d9ff4..7ad2449 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-ends`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ends(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.5.query.sqlpp
index cf316a3..6751fc1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-ends`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ends(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.6.query.sqlpp
index c9faeda..61856be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-ends`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_ends(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.7.query.sqlpp
new file mode 100644
index 0000000..7b05616
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ends(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.8.query.sqlpp
new file mode 100644
index 0000000..a0d6a58
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ends(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.9.query.sqlpp
new file mode 100644
index 0000000..e1b5aa0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_ends/interval_ends.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval ends because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_ends(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.1.ddl.sqlpp
index fdef960..107e651 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.10.query.sqlpp
new file mode 100644
index 0000000..2998ed3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_meets(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.11.query.sqlpp
new file mode 100644
index 0000000..31d89ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_meets(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.12.query.sqlpp
new file mode 100644
index 0000000..b79583f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_meets(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.13.query.sqlpp
new file mode 100644
index 0000000..1f1083b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_meets(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.14.query.sqlpp
new file mode 100644
index 0000000..8d8ad81
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_meets(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.2.update.sqlpp
index 4334476..95937ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
index 244cd62..80dd09c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-meets`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_meets(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.4.query.sqlpp
index ac9dd33..24dc50f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-meets`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_meets(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.5.query.sqlpp
index 8fd6a60..5c068942 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-meets`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_meets(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.6.query.sqlpp
index 34c9a12..f438e6a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-meets`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_meets(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.7.query.sqlpp
new file mode 100644
index 0000000..b2723f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_meets(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.8.query.sqlpp
new file mode 100644
index 0000000..6a99fbe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_meets(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.9.query.sqlpp
new file mode 100644
index 0000000..53f6a41
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_meets/interval_meets.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval meets because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_meets(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.1.ddl.sqlpp
index fdef960..2d76f34 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.10.query.sqlpp
new file mode 100644
index 0000000..9b0113a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_met_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.11.query.sqlpp
new file mode 100644
index 0000000..d2aa20b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_met_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.12.query.sqlpp
new file mode 100644
index 0000000..c8156dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_met_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.13.query.sqlpp
new file mode 100644
index 0000000..2d18ea3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_met_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.14.query.sqlpp
new file mode 100644
index 0000000..7105983
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_met_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.2.update.sqlpp
index 4334476..c260fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
index f1f39a9..0aaf497 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-met-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_met_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.4.query.sqlpp
index fa2e9ed..57aa56f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-met-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_met_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.5.query.sqlpp
index 2755407..1bff1e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-met-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_met_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.6.query.sqlpp
index 319cb32..a601324 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-met-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_met_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.7.query.sqlpp
new file mode 100644
index 0000000..fdf140c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_met_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.8.query.sqlpp
new file mode 100644
index 0000000..9929fe8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_met_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.9.query.sqlpp
new file mode 100644
index 0000000..5a0a9da
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_met_by/interval_met_by.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval met_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_met_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.query.sqlpp
new file mode 100644
index 0000000..75bd6de
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapped_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.query.sqlpp
new file mode 100644
index 0000000..0d78bf9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapped_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.query.sqlpp
new file mode 100644
index 0000000..4b0761b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapped_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.query.sqlpp
new file mode 100644
index 0000000..e8bfd5c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapped_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.query.sqlpp
new file mode 100644
index 0000000..6e95625
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapped_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
index 2fc8575..9033c40 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlapped-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapped_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.query.sqlpp
index 1f80cd0..5389119 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlapped-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapped_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.5.query.sqlpp
index e32af46..1ff426f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlapped-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapped_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.query.sqlpp
index c8b77f3..422ce76 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlapped-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapped_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.query.sqlpp
new file mode 100644
index 0000000..89f8a60
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapped_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.query.sqlpp
new file mode 100644
index 0000000..02845b5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapped_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.query.sqlpp
new file mode 100644
index 0000000..08d2c04
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapped_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.10.query.sqlpp
new file mode 100644
index 0000000..e1ce7ce
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapping(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.11.query.sqlpp
new file mode 100644
index 0000000..e30bf20
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapping(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.12.query.sqlpp
new file mode 100644
index 0000000..a994ebf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapping(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.13.query.sqlpp
new file mode 100644
index 0000000..0e30efb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapping(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.14.query.sqlpp
new file mode 100644
index 0000000..bcd2606
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlapping(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
index 91589f2..ddcae39 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlapping`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapping(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.4.query.sqlpp
index 12b5daf..e7f62d4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlapping`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapping(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.5.query.sqlpp
index b0f4423..eaba9a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlapping`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapping(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.6.query.sqlpp
index 94a690e..5e601e0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlapping`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlapping(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.7.query.sqlpp
new file mode 100644
index 0000000..ba64ef0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapping(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.8.query.sqlpp
new file mode 100644
index 0000000..3656661
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapping(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.9.query.sqlpp
new file mode 100644
index 0000000..84b6252
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlapping/interval_overlapping.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlapping(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.1.ddl.sqlpp
index fdef960..ae840c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.1.ddl.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +29,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +40,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.10.query.sqlpp
new file mode 100644
index 0000000..bd7fc86
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.10.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlaps(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.11.query.sqlpp
new file mode 100644
index 0000000..dc51559
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.11.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlaps(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.12.query.sqlpp
new file mode 100644
index 0000000..50e1fbb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.12.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlaps(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.13.query.sqlpp
new file mode 100644
index 0000000..bd750f4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.13.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlaps(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.14.query.sqlpp
new file mode 100644
index 0000000..91f42a1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.14.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_overlaps(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.2.update.sqlpp
index 4334476..b7cd541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.2.update.sqlpp
@@ -19,7 +19,7 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
index 579eda5..717f7e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.3.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlaps`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlaps(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.4.query.sqlpp
index 1327d67..bdb8ec4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.4.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-overlaps`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlaps(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.5.query.sqlpp
index ac40622..f5bbac4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.5.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlaps`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlaps(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.6.query.sqlpp
index 65f43c5..03d8da5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.6.query.sqlpp
@@ -19,12 +19,14 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-overlaps`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_overlaps(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.7.query.sqlpp
new file mode 100644
index 0000000..c4ff119
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlaps(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.8.query.sqlpp
new file mode 100644
index 0000000..8e4eca8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.8.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlaps(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.9.query.sqlpp
new file mode 100644
index 0000000..4de8f1c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_overlaps/interval_overlaps.9.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_overlaps(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.1.ddl.sqlpp
index fdef960..5fcd96e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.10.query.sqlpp
new file mode 100644
index 0000000..319efac
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_started_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.11.query.sqlpp
new file mode 100644
index 0000000..d39164d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_started_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.12.query.sqlpp
new file mode 100644
index 0000000..70efc7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_started_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.13.query.sqlpp
new file mode 100644
index 0000000..c6b20ed
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_started_by(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.14.query.sqlpp
new file mode 100644
index 0000000..76dd651
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_started_by(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.2.update.sqlpp
index 4334476..5fbdf7d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
index ca93d0e..f3f805d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-started-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_started_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.4.query.sqlpp
index 5c5ae25..af5b059 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-started-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_started_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.5.query.sqlpp
index 91436cc..e414153 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-started-by`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_started_by(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.6.query.sqlpp
index d3ea093..3867b87 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-started-by`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_started_by(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.7.query.sqlpp
new file mode 100644
index 0000000..2b3a26f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_started_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.8.query.sqlpp
new file mode 100644
index 0000000..b4de8e8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_started_by(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.9.query.sqlpp
new file mode 100644
index 0000000..ab02067
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_started_by/interval_started_by.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval started_by because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_started_by(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.1.ddl.sqlpp
index fdef960..3326abb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.1.ddl.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 drop dataverse TinyCollege if exists;
@@ -29,7 +31,9 @@
 create type StaffType as open {
         name: string,
         office: string,
-        employment: interval
+        employment: interval,
+        vacation: interval,
+        office_hours: interval
 };
 create dataset Staff(StaffType)
 primary key name;
@@ -38,7 +42,9 @@
 create type StudentType as open {
         name: string,
         office: string,
-        attendance: interval
+        attendance: interval,
+        break: interval,
+        work_hours: interval
 };
 create dataset Students(StudentType)
 primary key name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.10.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.10.query.sqlpp
new file mode 100644
index 0000000..71a89a8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.10.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_starts(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.11.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.11.query.sqlpp
new file mode 100644
index 0000000..4e567c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.11.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_starts(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.12.query.sqlpp
new file mode 100644
index 0000000..cd7cf4a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.12.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_starts(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.13.query.sqlpp
new file mode 100644
index 0000000..8146936
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.13.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_starts(f.office_hours, d.work_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.14.query.sqlpp
new file mode 100644
index 0000000..1fea371
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.14.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [time("03:30:00.0+00:00"), time("05:59:00.0+00:00"), time("08:30:00.0+00:00")] */
+interval_starts(d.work_hours, f.office_hours)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.2.update.sqlpp
index 4334476..552dbc7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.2.update.sqlpp
@@ -19,7 +19,9 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
index 915a717..51788b7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.3.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-starts`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_starts(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.4.query.sqlpp
index 2e8b27e..cf9d660 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.4.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Staff as f, Students as d
-where `interval-starts`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_starts(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.5.query.sqlpp
index f5aa575..fe13a01 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.5.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.5.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-starts`(f.employment, d.attendance)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_starts(f.employment, d.attendance)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.6.query.sqlpp
index 146ecd1..4621f50 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.6.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.6.query.sqlpp
@@ -19,12 +19,16 @@
 /*
  * Description      :   Check temporal join functionality for interval
  * Expected Result  :   Success
- * Date             :   26th Jun, 2015
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
  */
 
 use TinyCollege;
 
 select element { "staff" : f.name, "student" : d.name }
 from Students as d, Staff as f
-where `interval-starts`(d.attendance, f.employment)
+where
+/*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+interval_starts(d.attendance, f.employment)
 order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.7.query.sqlpp
new file mode 100644
index 0000000..49490f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.7.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_starts(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.8.query.sqlpp
new file mode 100644
index 0000000..5430332
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.8.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Staff as f, Students as d
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_starts(d.break, f.vacation)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.9.query.sqlpp
new file mode 100644
index 0000000..e97dafa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins/interval_starts/interval_starts.9.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ * Note             :   Range hint is not picked for interval starts because it is not implemented
+ *                  :   It will default to Hybrid Has Join.
+ */
+
+use TinyCollege;
+
+select element { "staff" : f.name, "student" : d.name }
+from Students as d, Staff as f
+where
+/*+ range [datetime("2003-06-30T00:00:00.0"), datetime("2005-12-31T00:00:00.0"), datetime("2008-06-30T00:00:00.0")] */
+interval_starts(f.vacation, d.break)
+order by f.name, d.name;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.1.ddl.sqlpp
new file mode 100644
index 0000000..7ae3a6c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join functionality for interval
+ * Expected Result  :   Success
+ * Date             :   10th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.2.update.sqlpp
new file mode 100644
index 0000000..3b79eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval after
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.3.query.sqlpp
new file mode 100644
index 0000000..4bd3a38
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_after/interval_after.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval after
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_after(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.1.ddl.sqlpp
new file mode 100644
index 0000000..928f3b1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval before
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.2.update.sqlpp
new file mode 100644
index 0000000..68fc545
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval before
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.3.query.sqlpp
new file mode 100644
index 0000000..b363137
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_before/interval_before.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval before
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_before(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.1.ddl.sqlpp
new file mode 100644
index 0000000..6e0fb3d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covered_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.2.update.sqlpp
new file mode 100644
index 0000000..750e5e0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covered_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.query.sqlpp
new file mode 100644
index 0000000..66d2747
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covered_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_covered_by(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.1.ddl.sqlpp
new file mode 100644
index 0000000..1561f8a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covers
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.2.update.sqlpp
new file mode 100644
index 0000000..2ac8eda
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covers
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 2,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.3.query.sqlpp
new file mode 100644
index 0000000..a7bbc96
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_covers/interval_covers.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval covers
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_covers(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp
new file mode 100644
index 0000000..67561d6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapped_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp
new file mode 100644
index 0000000..a4f25c3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapped_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
new file mode 100644
index 0000000..93c810a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapped_by
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_overlapped_by(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.1.ddl.sqlpp
new file mode 100644
index 0000000..e55fad7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapping
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.2.update.sqlpp
new file mode 100644
index 0000000..b0c6139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.2.update.sqlpp
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapping
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 10,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 10,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.query.sqlpp
new file mode 100644
index 0000000..243b4ec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlapping
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_overlapping(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.1.ddl.sqlpp
new file mode 100644
index 0000000..ab7c0cd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.1.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlaps
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+drop dataverse IntervalTest if exists;
+create dataverse IntervalTest;
+use IntervalTest;
+
+create type IntervalType as open {
+id: int64,
+interval: interval,
+filler: string
+};
+
+create dataset DataSet1(IntervalType) primary key id;
+create dataset DataSet2(IntervalType) primary key id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.2.update.sqlpp
new file mode 100644
index 0000000..de06fde
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.2.update.sqlpp
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlaps
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+use IntervalTest;
+
+insert into DataSet1
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
+
+insert into DataSet2
+from range(1, 100) s at srow,
+     range(1, 1) l at lrow
+let filler = repeat("i", 10000),
+    lambda = 1, d = 20,
+    id = (srow-1) * lambda + lrow
+select value {
+"id": id,
+"interval": interval(datetime_from_unix_time_in_secs(s), datetime_from_unix_time_in_secs(s + d)),
+"filler": filler
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.query.sqlpp
new file mode 100644
index 0000000..becc9e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.query.sqlpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/*
+ * Description      :   Check temporal join spilling functionality for interval overlaps
+ * Expected Result  :   Success
+ * Date             :   13th Aug, 2020
+ */
+
+use IntervalTest;
+
+select count(*)
+from (select element { "id1" : ds1.id, "id2" : ds2.id, "spill" : length(ds1.filler || ds2.filler)}
+    from DataSet1 as ds1, DataSet2 as ds2
+    where
+    /*+ range [datetime("1970-01-01T00:00:05.000Z"), datetime("1970-01-01T00:00:10.000Z"), datetime("1970-01-01T00:00:15.000Z")] */
+    interval_overlaps(ds1.interval, ds2.interval)) as results0
+where results0.id1 > 1 or results0.filler = 1;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch-with-index/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch-with-index/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.sqlpp
index 5fbc67b..26a7e56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch-with-index/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch-with-index/q04_order_priority_with_nodegroup/q04_order_priority_with_nodegroup.1.ddl.sqlpp
@@ -121,9 +121,9 @@
     asterix_nc1;
 
 create dataset LineItem(LineItemType)
-  primary key l_orderkey, l_linenumber on group_test;
+  primary key l_orderkey, l_linenumber WITH {"node-group":{"name":"group_test"}};
 create dataset Orders(OrderType)
-  primary key o_orderkey on group_test;
+  primary key o_orderkey WITH {"node-group":{"name":"group_test"}};
 
 create index lineitem_shipdateIx on LineItem (l_shipdate);
 create index lineitem_receiptdateIx on LineItem (l_receiptdate);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/default/default.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/default/default.3.ddl.sqlpp
index a0bc671..82bcc32 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/default/default.3.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/types/default/default.3.ddl.sqlpp
@@ -17,4 +17,4 @@
  * under the License.
  */
 
-DROP function foo@0;
+DROP function foo();
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.1.ddl.sqlpp
new file mode 100644
index 0000000..1d7a8ae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.1.ddl.sqlpp
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type onekType1 as
+ closed {
+  unique1 : bigint,
+  unique2 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+-- switch unique1 and unique2 in the schema
+
+create type onekType2 as
+ closed {
+  unique2 : bigint,
+  unique1 : bigint,
+  two : bigint,
+  four : bigint,
+  ten : bigint,
+  twenty : bigint,
+  onePercent : bigint,
+  tenPercent : bigint,
+  twentyPercent : bigint,
+  fiftyPercent : bigint,
+  unique3 : bigint,
+  evenOnePercent : bigint,
+  oddOnePercent : bigint,
+  stringu1 : string,
+  stringu2 : string,
+  string4 : string
+};
+
+create type fbuType as
+{
+  id : bigint
+};
+
+create dataset onek1(onekType1) primary key unique2;
+
+create dataset onek2(onekType2) primary key unique2;
+
+create dataset fbu1(fbuType) primary key id;
+
+create dataset fbu2(fbuType) primary key id;
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.2.update.sqlpp
new file mode 100644
index 0000000..19d5778
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.2.update.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+use test;
+
+load dataset onek1 using localfs ((`path`=`asterix_nc1://data/wisc/onektup.adm`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
+
+load dataset onek2 using localfs ((`path`=`asterix_nc1://data/wisc/onektup.adm`),(`format`=`delimited-text`),(`delimiter`=`|`)) pre-sorted;
+
+load dataset fbu1 using localfs ((`path`=`asterix_nc1://data/tinysocial/fbu.adm`),(`format`=`adm`));
+
+load dataset fbu2 using localfs ((`path`=`asterix_nc1://data/tinysocial/fbu.adm`),(`format`=`adm`));
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.3.ddl.sqlpp
new file mode 100644
index 0000000..c34933e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.3.ddl.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+use test;
+
+create index onek1_idx on onek1(unique1);
+
+create index onek2_idx on onek2(unique1);
+
+create index fbu1_idx on fbu1(alias: string);
+
+create index fbu2_idx on fbu2(alias: string);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.4.query.sqlpp
new file mode 100644
index 0000000..453e42c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.4.query.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+/**
+ * Test that the index is used (closed field)
+ */
+
+use test;
+
+with T as (
+  select value t1 from onek1 t1
+  union all
+  select value t2 from onek2 t2
+)
+select unique1, unique2, unique3 from T
+where unique1 >= 98
+order by unique2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.5.query.sqlpp
new file mode 100644
index 0000000..d99241f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.5.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/**
+ * Test that the index is used (closed field)
+ */
+
+use test;
+
+with T as (
+  select unique1, unique2, unique3 from onek1
+  union all
+  select unique1, unique2, unique3 from onek2
+)
+select value t from T t
+where unique1 >= 98
+order by unique2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.6.query.sqlpp
new file mode 100644
index 0000000..0f96940
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.6.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/**
+ * Test that the index is used (open field)
+ */
+
+use test;
+
+with T as (
+  select value t1 from fbu1 t1
+  union all
+  select value t2 from fbu2 t2
+)
+select alias, name from T
+where alias >= "Von"
+order by alias;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.7.query.sqlpp
new file mode 100644
index 0000000..872c963
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_opt_1/union_opt_1.7.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+/**
+ * Test that the index is used (open field)
+ */
+
+use test;
+
+with T as (
+  select alias, name from fbu1
+  union all
+  select alias, name from fbu2
+)
+select value t from T t
+where alias >= "Von"
+order by alias;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp
new file mode 100644
index 0000000..c111196
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.1.ddl.sqlpp
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description  : Test CREATE OR REPLACE FUNCTION
+ * Expected Res : Success
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use test;
+
+create function f1(a, b) {
+  a + b
+};
+
+/* Replace an existing function */
+create or replace function f1(a, b) {
+  a - b
+};
+
+/* Create new function */
+create or replace function f2(a, b) {
+  a * b
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.query.sqlpp
new file mode 100644
index 0000000..8e6c136
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+use test;
+
+{
+  "f1": f1(5, 2),
+  "f2": f2(5, 2)
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.query.sqlpp
new file mode 100644
index 0000000..7a19fc3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+use test;
+
+select f.Name, f.`Definition`
+from Metadata.`Function` f
+order by f.Name;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-3/drop-dependency.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-3/drop-dependency.3.ddl.sqlpp
index 7e7b60e..8e09034 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-3/drop-dependency.3.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-3/drop-dependency.3.ddl.sqlpp
@@ -39,4 +39,4 @@
 };
 
 use C;
-drop function f1@2;
\ No newline at end of file
+drop function f1(message, text);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-5/drop-dependency.5.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-5/drop-dependency.5.ddl.sqlpp
index 3a7f4dc..f301fc6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-5/drop-dependency.5.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-dependency-5/drop-dependency.5.ddl.sqlpp
@@ -35,4 +35,4 @@
   C.f1(message,text)
 };
 
-drop function f1@2;
\ No newline at end of file
+drop function f1(message, text);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.1.ddl.sqlpp
new file mode 100644
index 0000000..be5e07d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.1.ddl.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description  : Test drop function
+ * Expected Res : Success
+ */
+
+drop dataverse experiments if exists;
+create dataverse experiments;
+use experiments;
+
+create function my_sum(a, b) {
+  a + b
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.2.query.sqlpp
new file mode 100644
index 0000000..0f0de1a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.2.query.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+use experiments;
+
+my_sum(2, 3);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.3.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.3.ddl.sqlpp
new file mode 100644
index 0000000..7023e16
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.3.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+drop function experiments.my_sum(a, b);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.4.query.sqlpp
new file mode 100644
index 0000000..a998ac1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/drop-function-1/drop-function-1.4.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description  : Error. Unknown function
+ * Expected Res : Failure
+ */
+
+use experiments;
+
+my_sum(2, 3);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/query-issue455/query-issue455.4.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/query-issue455/query-issue455.4.ddl.sqlpp
index 8cb4580..d293b8e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/query-issue455/query-issue455.4.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/query-issue455/query-issue455.4.ddl.sqlpp
@@ -23,4 +23,4 @@
  * Date         : 19th May 2013
  */
 
-drop function test.printName@0;
+drop function test.printName();
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.1.ddl.sqlpp
new file mode 100644
index 0000000..670922d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.1.ddl.sqlpp
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description  : Function overloading is allowed
+ * Expected Res : Success
+ */
+
+drop dataverse experiments if exists;
+create dataverse experiments;
+use experiments;
+
+create function myfn(a) {
+  a
+};
+
+create function myfn(a, b) {
+  a + b
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.2.query.sqlpp
new file mode 100644
index 0000000..c9359fc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf33_overloading/udf33_overloading.2.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+/*
+ * Description  : Function overloading is allowed
+ * Expected Res : Success
+ */
+
+use experiments;
+
+{
+  "myfn_1": myfn(2),
+  "myfn_2": myfn(2, 3)
+}
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.1.ddl.sqlpp
new file mode 100644
index 0000000..6b0e577
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Function parameter used in HAVING clause
+ * Expected Res : Success
+ */
+
+drop  dataverse test if exists;
+create dataverse test;
+
+create function test.f1(v) {
+  select value x
+  from range(1, 9) r
+  group by r % 3 as x
+  having count(*) > v
+  order by x
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.2.query.sqlpp
new file mode 100644
index 0000000..8fcb9a2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf34/udf34.2.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Function parameter used in HAVING clause
+ * Expected Res : Success
+ */
+
+test.f1(2);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.4.query.sqlpp
index 59a0127..3b154ca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.4.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.4.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description  : Test error message for an unknown window function
+ * Description  : Test error message for a non-window function
  *              : with identifier resolution
  * Expected Res : FAILURE
  */
@@ -25,4 +25,4 @@
 from (
   from range(1, 2) x, range(1, 2) y select x, y
 ) t
-select unknown_func(x) over (partition by y)
+select lower(x) over (partition by y)
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/count_dataset/count_dataset.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/count_dataset/count_dataset.1.adm
index 486b421..9a0762a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/count_dataset/count_dataset.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/count_dataset/count_dataset.1.adm
@@ -1,24 +1,24 @@
-distribute result [$$24]
+distribute result [$$25]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-    aggregate [$$24] <- [agg-sql-sum($$27)]
+    aggregate [$$25] <- [agg-sql-sum($$28)]
     -- AGGREGATE  |UNPARTITIONED|
-      aggregate [$$27] <- [agg-sql-count(1)]
+      aggregate [$$28] <- [agg-sql-count(1)]
       -- AGGREGATE  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
-          project ([$$25])
+        -- SORT_MERGE_EXCHANGE [$$26(ASC) ]  |PARTITIONED|
+          project ([$$26])
           -- STREAM_PROJECT  |PARTITIONED|
-            select (and(ge($$23, 1), le($$23, 10)))
+            select (and(ge($$24, 1), le($$24, 10)))
             -- STREAM_SELECT  |PARTITIONED|
-              project ([$$25, $$23])
+              project ([$$26, $$24])
               -- STREAM_PROJECT  |PARTITIONED|
-                assign [$$23] <- [$$Tweet.getField(1)]
+                assign [$$24] <- [$$Tweet.getField(1)]
                 -- ASSIGN  |PARTITIONED|
                   exchange
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    data-scan []<-[$$25, $$Tweet] <- Twitter.Tweet
+                    data-scan []<-[$$26, $$Tweet] <- Twitter.Tweet
                     -- DATASOURCE_SCAN  |PARTITIONED|
                       exchange
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/count_dataset/count_dataset.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/count_dataset/count_dataset.1.adm
index 42728fe..f56f3a1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/count_dataset/count_dataset.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/count_dataset/count_dataset.1.adm
@@ -1,24 +1,24 @@
-distribute result [$$24]
+distribute result [$$25]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-    aggregate [$$24] <- [agg-sum($$27)]
+    aggregate [$$25] <- [agg-sum($$28)]
     -- AGGREGATE  |UNPARTITIONED|
-      aggregate [$$27] <- [agg-count(1)]
+      aggregate [$$28] <- [agg-count(1)]
       -- AGGREGATE  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
-          project ([$$25])
+        -- SORT_MERGE_EXCHANGE [$$26(ASC) ]  |PARTITIONED|
+          project ([$$26])
           -- STREAM_PROJECT  |PARTITIONED|
-            select (and(ge($$23, 1), le($$23, 10)))
+            select (and(ge($$24, 1), le($$24, 10)))
             -- STREAM_SELECT  |PARTITIONED|
-              project ([$$25, $$23])
+              project ([$$26, $$24])
               -- STREAM_PROJECT  |PARTITIONED|
-                assign [$$23] <- [$$Tweet.getField(1)]
+                assign [$$24] <- [$$Tweet.getField(1)]
                 -- ASSIGN  |PARTITIONED|
                   exchange
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    data-scan []<-[$$25, $$Tweet] <- Twitter.Tweet
+                    data-scan []<-[$$26, $$Tweet] <- Twitter.Tweet
                     -- DATASOURCE_SCAN  |PARTITIONED|
                       exchange
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
index f68a897..cc96921 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
@@ -11,7 +11,8 @@
     "compiler\.framesize" : 32768,
     "compiler\.groupmemory" : 163840,
     "compiler\.indexonly" : true,
-    "compiler\.joinmemory" : 262144,
+    "compiler\.internal\.sanitycheck" : true,
+    "compiler\.joinmemory" : 786432,
     "compiler\.parallelism" : 0,
     "compiler\.sort\.parallel" : false,
     "compiler\.sort\.samples" : 100,
@@ -37,6 +38,8 @@
     "replication\.strategy" : "none",
     "replication\.timeout" : 30,
     "ssl\.enabled" : false,
+    "storage.compression.block" : "snappy",
+    "storage.lsm.bloomfilter.falsepositiverate" : 0.01,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.dataset\.checkpoint\.interval" : 3600,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
index 47c889b..b9c2894 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
@@ -11,6 +11,7 @@
     "compiler\.framesize" : 32768,
     "compiler\.groupmemory" : 163840,
     "compiler\.indexonly" : true,
+    "compiler\.internal\.sanitycheck" : false,
     "compiler\.joinmemory" : 262144,
     "compiler\.parallelism" : -1,
     "compiler\.sort\.parallel" : true,
@@ -37,6 +38,8 @@
     "replication\.strategy" : "none",
     "replication\.timeout" : 30,
     "ssl\.enabled" : false,
+    "storage.compression.block" : "snappy",
+    "storage.lsm.bloomfilter.falsepositiverate" : 0.01,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.dataset\.checkpoint\.interval" : 3600,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
index eb5be43..68d3079 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
@@ -11,7 +11,8 @@
     "compiler\.framesize" : 32768,
     "compiler\.groupmemory" : 163840,
     "compiler\.indexonly" : true,
-    "compiler\.joinmemory" : 262144,
+    "compiler\.internal\.sanitycheck" : false,
+    "compiler\.joinmemory" : 1048576,
     "compiler\.parallelism" : 3,
     "compiler\.sort\.parallel" : true,
     "compiler\.sort\.samples" : 100,
@@ -37,6 +38,8 @@
     "replication\.strategy" : "none",
     "replication\.timeout" : 30,
     "ssl\.enabled" : false,
+    "storage.compression.block" : "snappy",
+    "storage.lsm.bloomfilter.falsepositiverate" : 0.01,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.dataset\.checkpoint\.interval" : 3600,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15/cross-dv15.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15/cross-dv15.1.adm
index ed83617..24d5071 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15/cross-dv15.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv15/cross-dv15.1.adm
@@ -1,3 +1,3 @@
-{ "DataverseName": "testdv1", "Name": "fun01", "Arity": "0", "ReturnType": "any" }
-{ "DataverseName": "testdv1", "Name": "fun02", "Arity": "1", "ReturnType": "any" }
-{ "DataverseName": "testdv1", "Name": "fun03", "Arity": "2", "ReturnType": "any" }
+{ "DataverseName": "testdv1", "Name": "fun01", "Arity": "0", "ReturnType": "" }
+{ "DataverseName": "testdv1", "Name": "fun02", "Arity": "1", "ReturnType": "" }
+{ "DataverseName": "testdv1", "Name": "fun03", "Arity": "2", "ReturnType": "" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.adm
new file mode 100644
index 0000000..fcd415b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/create_dataset_with_filter_on_meta/create_dataset_with_filter_on_meta.1.adm
@@ -0,0 +1,3 @@
+{ "DataverseName": "KeyVerse", "DatasetName": "KVStore", "IndexName": "KVStore", "IndexStructure": "BTREE", "SearchKey": [ [ "key" ] ], "IsPrimary": true, "Timestamp": "Mon Sep 07 18:14:11 PDT 2020", "PendingOp": 0, "SearchKeySourceIndicator": [ 1 ] }
+{ "DataverseName": "KeyVerse", "DatasetName": "KVStore", "IndexName": "s_location", "IndexStructure": "RTREE", "SearchKey": [ [ "location" ] ], "IsPrimary": false, "Timestamp": "Mon Sep 07 18:14:11 PDT 2020", "PendingOp": 0 }
+{ "DataverseName": "KeyVerse", "DatasetName": "KVStore", "IndexName": "s_rating", "IndexStructure": "BTREE", "SearchKey": [ [ "area_code" ] ], "IsPrimary": false, "Timestamp": "Mon Sep 07 18:14:11 PDT 2020", "PendingOp": 0 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.adm
new file mode 100644
index 0000000..a9a79c0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key/scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key.1.adm
@@ -0,0 +1 @@
+{ "id": 4, "dblpid": "books/acm/kim95/ChristodoulakisK95", "title": "Multimedia Information Systems  Issues and Approaches.", "authors": "Stavros Christodoulakis Leonidas Koveos", "misc": "2002-01-03 318-337 1995 Modern Database Systems db/books/collections/kim95.html#ChristodoulakisK95" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.adm
new file mode 100644
index 0000000..9671834
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.4.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DBLPType","open":false,"fields":[{"id":{"type":"AString"}},{"dblpid":{"type":"AString"}},{"title":{"type":"org.apache.asterix.om.types.AUnionType","fields":[{"type":"AString"},{"type":"ANULL"},{"type":"AMISSING"}]}},{"authors":{"type":"AString"}},{"misc":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DBLP/0/DBLP"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.adm
new file mode 100644
index 0000000..24eea46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key.6.adm
@@ -0,0 +1,3 @@
+{ "id": "4", "dblpid": "books/acm/kim95/ChristodoulakisK95", "title": "Multimedia Information Systems  Issues and Approaches.", "authors": "Stavros Christodoulakis Leonidas Koveos", "misc": "2002-01-03 318-337 1995 Modern Database Systems db/books/collections/kim95.html#ChristodoulakisK95" }
+{ "id": "89", "dblpid": "conf/icip/SchonfeldL98", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-11-05 123-127 1998 ICIP (3) db/conf/icip/icip1998-3.html#SchonfeldL98" }
+{ "id": "90", "dblpid": "conf/hicss/SchonfeldL99", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases ¾ Visual Search Engine.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-01-03 1999 HICSS http //computer.org/proceedings/hicss/0001/00013/00013006abs.htm db/conf/hicss/hicss1999-3.html#SchonfeldL99" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.adm
new file mode 100644
index 0000000..e5d5f6e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.4.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DBLPType","open":false,"fields":[{"id":{"type":"AString"}},{"dblpid":{"type":"AString"}},{"title":{"type":"AString"}},{"authors":{"type":"AString"}},{"misc":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DBLP/0/DBLP"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.adm
new file mode 100644
index 0000000..24eea46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key/scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key.6.adm
@@ -0,0 +1,3 @@
+{ "id": "4", "dblpid": "books/acm/kim95/ChristodoulakisK95", "title": "Multimedia Information Systems  Issues and Approaches.", "authors": "Stavros Christodoulakis Leonidas Koveos", "misc": "2002-01-03 318-337 1995 Modern Database Systems db/books/collections/kim95.html#ChristodoulakisK95" }
+{ "id": "89", "dblpid": "conf/icip/SchonfeldL98", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-11-05 123-127 1998 ICIP (3) db/conf/icip/icip1998-3.html#SchonfeldL98" }
+{ "id": "90", "dblpid": "conf/hicss/SchonfeldL99", "title": "VORTEX  Video Retrieval and Tracking from Compressed Multimedia Databases ¾ Visual Search Engine.", "authors": "Dan Schonfeld Dan Lelescu", "misc": "2002-01-03 1999 HICSS http //computer.org/proceedings/hicss/0001/00013/00013006abs.htm db/conf/hicss/hicss1999-3.html#SchonfeldL99" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.adm
new file mode 100644
index 0000000..40fd3b5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key.1.adm
@@ -0,0 +1 @@
+{ "id": "9", "dblpid": "books/acm/kim95/Kaiser95", "title": "Cooperative Transactions for Multiuser Environments.", "authors": "Gail E. Kaiser", "misc": "2002-01-03 409-433 1995 Modern Database Systems db/books/collections/kim95.html#Kaiser95" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.adm
new file mode 100644
index 0000000..e5d5f6e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.4.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DBLPType","open":false,"fields":[{"id":{"type":"AString"}},{"dblpid":{"type":"AString"}},{"title":{"type":"AString"}},{"authors":{"type":"AString"}},{"misc":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DBLP/0/DBLP"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.adm
new file mode 100644
index 0000000..40fd3b5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/scan-insert-inverted-index-word-secondary-index-string-as-primary-key/scan-insert-inverted-index-word-secondary-index-string-as-primary-key.6.adm
@@ -0,0 +1 @@
+{ "id": "9", "dblpid": "books/acm/kim95/Kaiser95", "title": "Cooperative Transactions for Multiuser Environments.", "authors": "Gail E. Kaiser", "misc": "2002-01-03 409-433 1995 Modern Database Systems db/books/collections/kim95.html#Kaiser95" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access/explain_field_access.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access/explain_field_access.1.adm
index f7790a0..31ef021 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access/explain_field_access.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access/explain_field_access.1.adm
@@ -1,40 +1,40 @@
-distribute result [$$44]
+distribute result [$$47]
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-    project ([$$44])
+    project ([$$47])
     -- STREAM_PROJECT  |PARTITIONED|
-      assign [$$44] <- [{"deptId": $#1, "star_cost": $$47}]
+      assign [$$47] <- [{"deptId": $#1, "star_cost": $$50}]
       -- ASSIGN  |PARTITIONED|
         exchange
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          group by ([$#1 := $$52]) decor ([]) {
-                    aggregate [$$47] <- [agg-global-sql-sum($$51)]
+          group by ([$#1 := $$55]) decor ([]) {
+                    aggregate [$$50] <- [agg-global-sql-sum($$54)]
                     -- AGGREGATE  |LOCAL|
                       nested tuple source
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                  }
-          -- SORT_GROUP_BY[$$52]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$55]  |PARTITIONED|
             exchange
-            -- HASH_PARTITION_EXCHANGE [$$52]  |PARTITIONED|
-              group by ([$$52 := $$45]) decor ([]) {
-                        aggregate [$$51] <- [agg-local-sql-sum($$42)]
+            -- HASH_PARTITION_EXCHANGE [$$55]  |PARTITIONED|
+              group by ([$$55 := $$48]) decor ([]) {
+                        aggregate [$$54] <- [agg-local-sql-sum($$45)]
                         -- AGGREGATE  |LOCAL|
                           nested tuple source
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                      }
-              -- SORT_GROUP_BY[$$45]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$48]  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  project ([$$42, $$45])
+                  project ([$$45, $$48])
                   -- STREAM_PROJECT  |PARTITIONED|
-                    assign [$$45, $$42] <- [substring($$e.getField("dept").getField("department_id"), 0), $$e.getField("salary")]
+                    assign [$$48, $$45] <- [substring($$e.getField("dept").getField("department_id"), 0), $$e.getField("salary")]
                     -- ASSIGN  |PARTITIONED|
                       project ([$$e])
                       -- STREAM_PROJECT  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          data-scan []<-[$$46, $$e] <- gby.Employee
+                          data-scan []<-[$$49, $$e] <- gby.Employee
                           -- DATASOURCE_SCAN  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access_closed/explain_field_access_closed.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access_closed/explain_field_access_closed.1.adm
index 7bfd96b..bbdbb57 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access_closed/explain_field_access_closed.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/explain/explain_field_access_closed/explain_field_access_closed.1.adm
@@ -1,40 +1,40 @@
-distribute result [$$43]
+distribute result [$$46]
 -- DISTRIBUTE_RESULT  |PARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-    project ([$$43])
+    project ([$$46])
     -- STREAM_PROJECT  |PARTITIONED|
-      assign [$$43] <- [{"deptId": $#1, "star_cost": $$46}]
+      assign [$$46] <- [{"deptId": $#1, "star_cost": $$49}]
       -- ASSIGN  |PARTITIONED|
         exchange
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          group by ([$#1 := $$50]) decor ([]) {
-                    aggregate [$$46] <- [agg-global-sql-sum($$49)]
+          group by ([$#1 := $$53]) decor ([]) {
+                    aggregate [$$49] <- [agg-global-sql-sum($$52)]
                     -- AGGREGATE  |LOCAL|
                       nested tuple source
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                  }
-          -- SORT_GROUP_BY[$$50]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$53]  |PARTITIONED|
             exchange
-            -- HASH_PARTITION_EXCHANGE [$$50]  |PARTITIONED|
-              group by ([$$50 := $$44]) decor ([]) {
-                        aggregate [$$49] <- [agg-local-sql-sum($$41)]
+            -- HASH_PARTITION_EXCHANGE [$$53]  |PARTITIONED|
+              group by ([$$53 := $$47]) decor ([]) {
+                        aggregate [$$52] <- [agg-local-sql-sum($$44)]
                         -- AGGREGATE  |LOCAL|
                           nested tuple source
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                      }
-              -- SORT_GROUP_BY[$$44]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$47]  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  project ([$$41, $$44])
+                  project ([$$44, $$47])
                   -- STREAM_PROJECT  |PARTITIONED|
-                    assign [$$44, $$41] <- [substring($$e.getField(1), 0), $$e.getField(2)]
+                    assign [$$47, $$44] <- [substring($$e.getField(1), 0), $$e.getField(2)]
                     -- ASSIGN  |PARTITIONED|
                       project ([$$e])
                       -- STREAM_PROJECT  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          data-scan []<-[$$45, $$e] <- gby.Employee
+                          data-scan []<-[$$48, $$e] <- gby.Employee
                           -- DATASOURCE_SCAN  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-10/result.001.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-10/result.001.adm
new file mode 100644
index 0000000..c1a0ea2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-10/result.001.adm
@@ -0,0 +1 @@
+{ "count": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-11/result.001.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-11/result.001.adm
new file mode 100644
index 0000000..95204aa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-11/result.001.adm
@@ -0,0 +1 @@
+{ "count": 6 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-12/result.001.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-12/result.001.adm
new file mode 100644
index 0000000..c1a0ea2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/aws/s3/include-exclude/include-12/result.001.adm
@@ -0,0 +1 @@
+{ "count": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.10.adm
new file mode 100644
index 0000000..c0c9e29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.10.adm
@@ -0,0 +1,3 @@
+{ "type": "eval", "value": 7 }
+{ "type": "meta-functions", "value": [ { "DataverseName": "externallibtest", "Name": "f", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ null ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.OpenCapitalFinderFactory" ], "NullCall": false, "Deterministic": true }, { "DataverseName": "externallibtest", "Name": "f2", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "int32", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "int32" }, { "Type": "int32" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.MySumFactory" ], "NullCall": false, "Deterministic": true } ] }
+{ "type": "meta-types", "value": [  ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.12.adm
new file mode 100644
index 0000000..7775988
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.12.adm
@@ -0,0 +1,3 @@
+{ "type": "eval", "value": 30 }
+{ "type": "meta-functions", "value": [ { "DataverseName": "externallibtest", "Name": "f", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ null ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.OpenCapitalFinderFactory" ], "NullCall": false, "Deterministic": true }, { "DataverseName": "externallibtest", "Name": "f2", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "", "Definition": "a * b", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ] } ] }
+{ "type": "meta-types", "value": [  ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.4.adm
new file mode 100644
index 0000000..968097c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.4.adm
@@ -0,0 +1,3 @@
+{ "type": "eval", "value": { "country": "United States", "capital": "Washington D.C." } }
+{ "type": "meta-functions", "value": [ { "DataverseName": "externallibtest", "Name": "f", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ null ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.OpenCapitalFinderFactory" ], "NullCall": false, "Deterministic": true } ] }
+{ "type": "meta-types", "value": [  ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.6.adm
new file mode 100644
index 0000000..590b8de
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.6.adm
@@ -0,0 +1,3 @@
+{ "type": "eval", "value": 3 }
+{ "type": "meta-functions", "value": [ { "DataverseName": "externallibtest", "Name": "f", "Arity": "1", "Params": [ "a" ], "ReturnType": "int32", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "$f$t$f$1$0" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.MyArraySumFactory" ], "NullCall": false, "Deterministic": true } ] }
+{ "type": "meta-types", "value": [ { "DataverseName": "externallibtest", "DatatypeName": "$f$t$f$1$0", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int32" } } ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.8.adm
new file mode 100644
index 0000000..4fda008
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/create-or-replace-function-1/create-or-replace-function-1.8.adm
@@ -0,0 +1,3 @@
+{ "type": "eval", "value": { "country": "Italy", "capital": "Rome" } }
+{ "type": "meta-functions", "value": [ { "DataverseName": "externallibtest", "Name": "f", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ null ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.OpenCapitalFinderFactory" ], "NullCall": false, "Deterministic": true } ] }
+{ "type": "meta-types", "value": [  ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_bigobj_roundtrip/py_bigobj_roundtrip.1.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_bigobj_roundtrip/py_bigobj_roundtrip.1.regexjson
new file mode 120000
index 0000000..7f8c8ee
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_bigobj_roundtrip/py_bigobj_roundtrip.1.regexjson
@@ -0,0 +1 @@
+../../big-object/big_object_insert/big_object_insert.1.adm
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_function_error/py_function_error.1.json b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_function_error/py_function_error.1.json
new file mode 100644
index 0000000..ec747fa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_function_error/py_function_error.1.json
@@ -0,0 +1 @@
+null
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.10.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.10.regexjson
new file mode 100644
index 0000000..2cddb0f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.10.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Kingdom": "Animalia", "lower": { "id": 1, "Phylum": "Chordata", "lower": { "id": 1, "Class": "Mammalia", "lower": { "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } } } } },
+{ "id": 2, "Kingdom": "Animalia", "lower": { "id": 2, "Phylum": "Chordata", "lower": { "id": 2, "Class": "Mammalia", "lower": { "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } } } } },
+{ "id": 3, "Kingdom": "Animalia", "lower": { "id": 3, "Phylum": "Chordata", "lower": { "id": 3, "Class": "Mammalia", "lower": { "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } } } } },
+{ "id": 4, "Kingdom": "Animalia", "lower": { "id": 4, "Phylum": "Chordata", "lower": { "id": 4, "Class": "Aves", "lower": { "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.11.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.11.regexjson
new file mode 100644
index 0000000..a7ce00a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.11.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "fullClassification": { "id": 1, "Kingdom": "Animalia", "lower": { "id": 1, "Phylum": "Chordata", "lower": { "id": 1, "Class": "Mammalia", "lower": { "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } } } } } },
+{ "id": 2, "fullClassification": { "id": 2, "Kingdom": "Animalia", "lower": { "id": 2, "Phylum": "Chordata", "lower": { "id": 2, "Class": "Mammalia", "lower": { "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } } } } } },
+{ "id": 3, "fullClassification": { "id": 3, "Kingdom": "Animalia", "lower": { "id": 3, "Phylum": "Chordata", "lower": { "id": 3, "Class": "Mammalia", "lower": { "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } } } } } },
+{ "id": 4, "fullClassification": { "id": 4, "Kingdom": "Animalia", "lower": { "id": 4, "Phylum": "Chordata", "lower": { "id": 4, "Class": "Aves", "lower": { "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } } } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.12.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.12.regexjson
new file mode 100644
index 0000000..d09c537
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.12.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "class": { "id": 1, "fullClassification": { "id": 1, "Kingdom": "Animalia", "lower": { "id": 1, "Phylum": "Chordata", "lower": { "id": 1, "Class": "Mammalia", "lower": { "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } } } } } } },
+{ "id": 2, "class": { "id": 2, "fullClassification": { "id": 2, "Kingdom": "Animalia", "lower": { "id": 2, "Phylum": "Chordata", "lower": { "id": 2, "Class": "Mammalia", "lower": { "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } } } } } } },
+{ "id": 3, "class": { "id": 3, "fullClassification": { "id": 3, "Kingdom": "Animalia", "lower": { "id": 3, "Phylum": "Chordata", "lower": { "id": 3, "Class": "Mammalia", "lower": { "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } } } } } } },
+{ "id": 4, "class": { "id": 4, "fullClassification": { "id": 4, "Kingdom": "Animalia", "lower": { "id": 4, "Phylum": "Chordata", "lower": { "id": 4, "Class": "Aves", "lower": { "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } } } } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.3.adm
new file mode 100644
index 0000000..e34004a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.3.adm
@@ -0,0 +1,4 @@
+"Gulo"
+"Hyracoidea"
+"Jamaicensis"
+"Johnstoni"
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.4.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.4.regexjson
new file mode 100644
index 0000000..5d8ddf4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.4.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Species": "Gulo" },
+{ "id": 2, "Species": "Johnstoni" },
+{ "id": 3, "Species": "Hyracoidea" },
+{ "id": 4, "Species": "Jamaicensis" }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.5.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.5.regexjson
new file mode 100644
index 0000000..f10de1f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.5.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } },
+{ "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } },
+{ "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } },
+{ "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.6.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.6.regexjson
new file mode 100644
index 0000000..4e6d8ea
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.6.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } },
+{ "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } },
+{ "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } },
+{ "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.7.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.7.regexjson
new file mode 100644
index 0000000..60d21a9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.7.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } },
+{ "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } },
+{ "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } },
+{ "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.8.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.8.regexjson
new file mode 100644
index 0000000..183e94c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.8.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Class": "Mammalia", "lower": { "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } } },
+{ "id": 2, "Class": "Mammalia", "lower": { "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } } },
+{ "id": 3, "Class": "Mammalia", "lower": { "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } } },
+{ "id": 4, "Class": "Aves", "lower": { "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.9.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.9.regexjson
new file mode 100644
index 0000000..347b5b6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/py_nested_access/access-nested-fields.9.regexjson
@@ -0,0 +1,4 @@
+[{ "id": 1, "Phylum": "Chordata", "lower": { "id": 1, "Class": "Mammalia", "lower": { "id": 1, "Order": "Carnivora", "lower": { "id": 1, "Family": "Mustelinae", "lower": { "id": 1, "Genus": "Gulo", "lower": { "id": 1, "Species": "Gulo" } } } } } },
+{ "id": 2, "Phylum": "Chordata", "lower": { "id": 2, "Class": "Mammalia", "lower": { "id": 2, "Order": "Artiodactyla", "lower": { "id": 2, "Family": "Giraffidae", "lower": { "id": 2, "Genus": "Okapia", "lower": { "id": 2, "Species": "Johnstoni" } } } } } },
+{ "id": 3, "Phylum": "Chordata", "lower": { "id": 3, "Class": "Mammalia", "lower": { "id": 3, "Order": "Atlantogenata", "lower": { "id": 3, "Family": "Afrotheria", "lower": { "id": 3, "Genus": "Paenungulata", "lower": { "id": 3, "Species": "Hyracoidea" } } } } } },
+{ "id": 4, "Phylum": "Chordata", "lower": { "id": 4, "Class": "Aves", "lower": { "id": 4, "Order": "Accipitriformes", "lower": { "id": 4, "Family": "Accipitridae", "lower": { "id": 4, "Genus": "Buteo", "lower": { "id": 4, "Species": "Jamaicensis" } } } } } }]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
index 913eab7..6d0ea72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
@@ -1,12 +1,12 @@
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "any", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "any", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "any" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn003", "Arity": "3", "Params": [ "a", "b", "c" ], "ReturnType": "string", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "string" }, { "Type": "$f$t$myfn003$3$1" }, { "Type": "$f$t$myfn003$3$2" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn004", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "CountryCapitalType", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "CountryCapitalType" }, { "Type": "$f$t$myfn004$2$1" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn005", "Arity": "4", "Params": [ "a", "b", "c", "d" ], "ReturnType": "string", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "int16" }, { "Type": "$f$t$myfn005$4$1" }, { "Type": "CountryCapitalType" }, { "Type": "$f$t$myfn005$4$3" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn006", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn006$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "$f$t$myfn006$1$0" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn007", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn007$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "$f$t$myfn007$1$0" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest", "Name": "myfn008", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn008$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "$f$t$myfn008$1$0" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
-{ "fn": { "DataverseName": "externallibtest2", "Name": "myfn009", "Arity": "1", "Params": [ "a" ], "ReturnType": "CountryCapitalType", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeDataverseName": "externallibtest", "ParamTypes": [ { "Type": "CountryCapitalType", "DataverseName": "externallibtest" } ], "Library": "testlib2", "NullCall": false, "Deterministic": false } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ null ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn003", "Arity": "3", "Params": [ "a", "b", "c" ], "ReturnType": "string", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "string" }, { "Type": "$f$t$myfn003$3$1" }, { "Type": "$f$t$myfn003$3$2" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn004", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "CountryCapitalType", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "CountryCapitalType" }, { "Type": "$f$t$myfn004$2$1" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn005", "Arity": "4", "Params": [ "a", "b", "c", "d" ], "ReturnType": "string", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "int16" }, { "Type": "$f$t$myfn005$4$1" }, { "Type": "CountryCapitalType" }, { "Type": "$f$t$myfn005$4$3" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn006", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn006$1", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "$f$t$myfn006$1$0" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn007", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn007$1", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "$f$t$myfn007$1$0" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest", "Name": "myfn008", "Arity": "1", "Params": [ "a" ], "ReturnType": "$f$t$myfn008$1", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ParamTypes": [ { "Type": "$f$t$myfn008$1$0" } ], "LibraryDataverseName": "externallibtest", "LibraryName": "testlib", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
+{ "fn": { "DataverseName": "externallibtest2", "Name": "myfn009", "Arity": "1", "Params": [ "a" ], "ReturnType": "CountryCapitalType", "Definition": "", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeDataverseName": "externallibtest", "ParamTypes": [ { "Type": "CountryCapitalType", "DataverseName": "externallibtest" } ], "LibraryDataverseName": "externallibtest2", "LibraryName": "testlib2", "ExternalIdentifier": [ "org.apache.asterix.external.library.CapitalFinderFactory" ], "NullCall": false, "Deterministic": true } }
 { "dt": { "DataverseName": "externallibtest", "DatatypeName": "$f$t$myfn003$3$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int64" } } }
 { "dt": { "DataverseName": "externallibtest", "DatatypeName": "$f$t$myfn003$3$2", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "boolean" } } }
 { "dt": { "DataverseName": "externallibtest", "DatatypeName": "$f$t$myfn004$2$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "CountryCapitalType" } } }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.adm
new file mode 100644
index 0000000..fa522e6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-filter-on-meta-dataset/change-feed-filter-on-meta-dataset.1.adm
@@ -0,0 +1 @@
+{ "k": { "id": 5, "name": "Ian Maxon", "exp": 15 }, "meta": { "key": "8-2", "vbucket": 8, "seq": 21, "cas": 5, "expiration": 8004, "flags": 0, "revSeq": 0, "lockTime": 163 } }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.11.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.11.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.11.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.12.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.12.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.12.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.13.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.13.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.13.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.14.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.14.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.14.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.15.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.15.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.15.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.15.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.16.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.16.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.16.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.16.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.17.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.17.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.17.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.17.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.3.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.3.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.3.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.4.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.4.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.4.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.5.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.5.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.5.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.6.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.6.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.6.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.7.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.7.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.7.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.8.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.8.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.8.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.9.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-filter-on-meta/change-feed-with-filter-on-meta.9.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/change-feed-with-where-on-meta/change-feed-with-filter-on-meta.9.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.adm
new file mode 100644
index 0000000..9c810dd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/feeds/feed-with-external-adapter-cross-dv/feed-with-external-adapter-cross-dv.4.adm
@@ -0,0 +1,4 @@
+{ "tweetid": 1, "message-text": "1" }
+{ "tweetid": 2, "message-text": "2" }
+{ "tweetid": 3, "message-text": "3" }
+{ "tweetid": 4, "message-text": "4" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.adm
new file mode 100644
index 0000000..c08b4db
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.3.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DBLPType","open":true,"fields":[{"id":{"type":"AString"}},{"dblpid":{"type":"AString"}},{"title":{"type":"AString"}},{"authors":{"type":"AString"}},{"misc":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/fuzzyjoin/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_1/fuzzyjoin/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_2/fuzzyjoin/DBLP/0/DBLP"},{"ip":"127.0.0.1","path":"storage/partition_3/fuzzyjoin/DBLP/0/DBLP"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.adm
new file mode 100644
index 0000000..bffa712
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-string-as-primary-key/dblp-string-as-primary-key.4.adm
@@ -0,0 +1 @@
+"38"
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.3.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.1.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.3.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr-2/gby-expr-2.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.4.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr-2/gby-expr-2.1.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.4.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr-3/gby-expr-3.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.5.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr-3/gby-expr-3.1.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.5.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.6.adm
new file mode 100644
index 0000000..3424a57
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/gby-expr/gby-expr.6.adm
@@ -0,0 +1 @@
+{ "deptId": "K55", "star_cost": 3000 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.10.adm
new file mode 100644
index 0000000..c1805e8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.10.adm
@@ -0,0 +1,5 @@
+{ "four": null, "s1": 5000, "s2": 49995000 }
+{ "four": 3, "s1": 2500, "s2": 12502500 }
+{ "four": 1, "s1": 2500, "s2": 12497500 }
+{ "four": 2, "s1": 0, "s2": 12500000 }
+{ "four": 0, "s1": 0, "s2": 12495000 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.11.adm
new file mode 100644
index 0000000..884812f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.11.adm
@@ -0,0 +1,5 @@
+{ "four": null, "s1": 5000 }
+{ "four": 3, "s1": 2500 }
+{ "four": 1, "s1": 2500 }
+{ "four": 2, "s1": 0 }
+{ "four": 0, "s1": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.12.adm
new file mode 100644
index 0000000..c3606f4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.12.adm
@@ -0,0 +1,5 @@
+{ "four": null }
+{ "four": 3 }
+{ "four": 1 }
+{ "four": 2 }
+{ "four": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.13.adm
new file mode 100644
index 0000000..133210b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.13.adm
@@ -0,0 +1,5 @@
+null
+3
+1
+2
+0
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.14.adm
new file mode 100644
index 0000000..97f939a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.14.adm
@@ -0,0 +1,4 @@
+{ "four": 3, "s1": 2500 }
+{ "four": 1, "s1": 2500 }
+{ "four": 2, "s1": 0 }
+{ "four": 0, "s1": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.15.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.15.adm
new file mode 100644
index 0000000..443edd5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.15.adm
@@ -0,0 +1,2 @@
+2500
+0
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.16.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.16.adm
new file mode 100644
index 0000000..7721059
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.16.adm
@@ -0,0 +1,5 @@
+{ "four": null, "s": 5000 }
+{ "four": 0, "s": 0 }
+{ "four": 1, "s": 2500 }
+{ "four": 2, "s": 0 }
+{ "four": 3, "s": 2500 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.17.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.17.adm
new file mode 100644
index 0000000..ca4480e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.17.adm
@@ -0,0 +1,5 @@
+"null,5000"
+"0,0"
+"1,2500"
+"2,0"
+"3,2500"
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.18.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.18.adm
new file mode 100644
index 0000000..eecbe7f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.18.adm
@@ -0,0 +1,8 @@
+{ "two": null, "four": null, "s": 49995000 }
+{ "two": null, "four": null, "s": 49995000 }
+{ "two": 1, "four": null, "s": 25000000 }
+{ "two": 0, "four": null, "s": 24995000 }
+{ "two": null, "four": 3, "s": 12502500 }
+{ "two": null, "four": 2, "s": 12500000 }
+{ "two": null, "four": 1, "s": 12497500 }
+{ "two": null, "four": 0, "s": 12495000 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.6.adm
new file mode 100644
index 0000000..b5229c0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.6.adm
@@ -0,0 +1,7 @@
+{ "two": null, "four": null, "s": 49995000 }
+{ "two": 1, "four": null, "s": 25000000 }
+{ "two": 0, "four": null, "s": 24995000 }
+{ "two": 1, "four": 3, "s": 12502500 }
+{ "two": 0, "four": 2, "s": 12500000 }
+{ "two": 1, "four": 1, "s": 12497500 }
+{ "two": 0, "four": 0, "s": 12495000 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.7.adm
new file mode 100644
index 0000000..c9af23f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.7.adm
@@ -0,0 +1,7 @@
+{ "two": null, "four": null }
+{ "two": 1, "four": null }
+{ "two": 0, "four": null }
+{ "two": 1, "four": 3 }
+{ "two": 0, "four": 2 }
+{ "two": 1, "four": 1 }
+{ "two": 0, "four": 0 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.8.adm
new file mode 100644
index 0000000..bbff6b9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.8.adm
@@ -0,0 +1,7 @@
+"null,null"
+"1,null"
+"0,null"
+"1,3"
+"0,2"
+"1,1"
+"0,0"
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.9.adm
new file mode 100644
index 0000000..8eea2ad
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/group-by/grouping-sets-2/grouping-sets-2.9.adm
@@ -0,0 +1,3 @@
+{ "s": 32630, "two": null, "gg": [ { "t": { "two": 0, "unique1": 1858 } }, { "t": { "two": 0, "unique1": 3362 } }, { "t": { "two": 0, "unique1": 8800 } }, { "t": { "two": 1, "unique1": 9267 } }, { "t": { "two": 1, "unique1": 9343 } } ] }
+{ "s": 18610, "two": 1, "gg": [ { "t": { "two": 1, "unique1": 9267 } }, { "t": { "two": 1, "unique1": 9343 } } ] }
+{ "s": 14020, "two": 0, "gg": [ { "t": { "two": 0, "unique1": 1858 } }, { "t": { "two": 0, "unique1": 3362 } }, { "t": { "two": 0, "unique1": 8800 } } ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.03.adm
new file mode 100644
index 0000000..2cddb05
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.03.adm
@@ -0,0 +1 @@
+{ "ds1": { "id": "1", "f": 3 } }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.04.adm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.04.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.05.adm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.05.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.06.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.06.adm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/join-with-empty-dataset/join-with-empty-dataset.06.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.adm
index 1f1e3a0..21618d0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.adm
@@ -7,28 +7,28 @@
       project ([$$c])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$16(ASC), $$17(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$17(ASC), $$18(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              unnest-map [$$16, $$17, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$22, $$23, 2, $$22, $$23, TRUE, TRUE, TRUE) condition (and(lt($$c.getField(2), 150), lt($$c.getField(5), 10000))) limit 10
+              unnest-map [$$17, $$18, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$23, $$24, 2, $$23, $$24, TRUE, TRUE, TRUE) condition (and(lt($$c.getField(2), 150), lt($$c.getField(5), 10000))) limit 10
               -- BTREE_SEARCH  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  order (ASC, $$22) (ASC, $$23)
-                  -- STABLE_SORT [$$22(ASC), $$23(ASC)]  |PARTITIONED|
+                  order (ASC, $$23) (ASC, $$24)
+                  -- STABLE_SORT [$$23(ASC), $$24(ASC)]  |PARTITIONED|
                     exchange
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      project ([$$22, $$23])
+                      project ([$$23, $$24])
                       -- STREAM_PROJECT  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          unnest-map [$$21, $$22, $$23] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$20, TRUE, FALSE, FALSE)
+                          unnest-map [$$22, $$23, $$24] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$21, TRUE, FALSE, FALSE)
                           -- BTREE_SEARCH  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              assign [$$20] <- [150]
+                              assign [$$21] <- [150]
                               -- ASSIGN  |PARTITIONED|
                                 empty-tuple-source
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.adm
index a0e070b..1f4ef66 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.adm
@@ -1,40 +1,40 @@
-distribute result [$$18]
+distribute result [$$19]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
     limit 5
     -- STREAM_LIMIT  |UNPARTITIONED|
-      project ([$$18])
+      project ([$$19])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$20(ASC), $$21(ASC) ]  |PARTITIONED|
-          project ([$$20, $$21, $$18])
+        -- SORT_MERGE_EXCHANGE [$$21(ASC), $$22(ASC) ]  |PARTITIONED|
+          project ([$$21, $$22, $$19])
           -- STREAM_PROJECT  |PARTITIONED|
-            assign [$$18] <- [{"shipdate": substring($$c.getField(10), 0, 4), "suppkey": gt($$19, 0)}]
+            assign [$$19] <- [{"shipdate": substring($$c.getField(10), 0, 4), "suppkey": gt($$20, 0)}]
             -- ASSIGN  |PARTITIONED|
               limit 5
               -- STREAM_LIMIT  |PARTITIONED|
-                assign [$$19] <- [$$c.getField(2)]
+                assign [$$20] <- [$$c.getField(2)]
                 -- ASSIGN  |PARTITIONED|
                   exchange
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    unnest-map [$$20, $$21, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$25, $$26, 2, $$25, $$26, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 5
+                    unnest-map [$$21, $$22, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$26, $$27, 2, $$26, $$27, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 5
                     -- BTREE_SEARCH  |PARTITIONED|
                       exchange
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        order (ASC, $$25) (ASC, $$26)
-                        -- STABLE_SORT [$$25(ASC), $$26(ASC)]  |PARTITIONED|
+                        order (ASC, $$26) (ASC, $$27)
+                        -- STABLE_SORT [$$26(ASC), $$27(ASC)]  |PARTITIONED|
                           exchange
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            project ([$$25, $$26])
+                            project ([$$26, $$27])
                             -- STREAM_PROJECT  |PARTITIONED|
                               exchange
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                unnest-map [$$24, $$25, $$26] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$23, TRUE, FALSE, FALSE)
+                                unnest-map [$$25, $$26, $$27] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$24, TRUE, FALSE, FALSE)
                                 -- BTREE_SEARCH  |PARTITIONED|
                                   exchange
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    assign [$$23] <- [150]
+                                    assign [$$24] <- [150]
                                     -- ASSIGN  |PARTITIONED|
                                       empty-tuple-source
                                       -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.adm
index 4aba1a7..d070b2b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.adm
@@ -7,28 +7,28 @@
       project ([$$c])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$13(ASC), $$14(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$14(ASC), $$15(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              unnest-map [$$13, $$14, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$18, $$19, 2, $$18, $$19, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 10
+              unnest-map [$$14, $$15, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$19, $$20, 2, $$19, $$20, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 10
               -- BTREE_SEARCH  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  order (ASC, $$18) (ASC, $$19)
-                  -- STABLE_SORT [$$18(ASC), $$19(ASC)]  |PARTITIONED|
+                  order (ASC, $$19) (ASC, $$20)
+                  -- STABLE_SORT [$$19(ASC), $$20(ASC)]  |PARTITIONED|
                     exchange
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      project ([$$18, $$19])
+                      project ([$$19, $$20])
                       -- STREAM_PROJECT  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          unnest-map [$$17, $$18, $$19] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$16, TRUE, FALSE, FALSE)
+                          unnest-map [$$18, $$19, $$20] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$17, TRUE, FALSE, FALSE)
                           -- BTREE_SEARCH  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              assign [$$16] <- [150]
+                              assign [$$17] <- [150]
                               -- ASSIGN  |PARTITIONED|
                                 empty-tuple-source
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.adm
index f611c2b..1e25eea 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.adm
@@ -7,28 +7,28 @@
       project ([$$c])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$15(ASC), $$16(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$16(ASC), $$17(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              unnest-map [$$15, $$16, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$20, $$21, 2, $$20, $$21, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 10
+              unnest-map [$$16, $$17, $$c] <- index-search("LineItem", 0, "test", "LineItem", FALSE, FALSE, 2, $$21, $$22, 2, $$21, $$22, TRUE, TRUE, TRUE) condition (lt($$c.getField(2), 150)) limit 10
               -- BTREE_SEARCH  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  order (ASC, $$20) (ASC, $$21)
-                  -- STABLE_SORT [$$20(ASC), $$21(ASC)]  |PARTITIONED|
+                  order (ASC, $$21) (ASC, $$22)
+                  -- STABLE_SORT [$$21(ASC), $$22(ASC)]  |PARTITIONED|
                     exchange
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      project ([$$20, $$21])
+                      project ([$$21, $$22])
                       -- STREAM_PROJECT  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          unnest-map [$$19, $$20, $$21] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$18, TRUE, FALSE, FALSE)
+                          unnest-map [$$20, $$21, $$22] <- index-search("idx_LineItem_suppkey", 0, "test", "LineItem", FALSE, FALSE, 0, 1, $$19, TRUE, FALSE, FALSE)
                           -- BTREE_SEARCH  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              assign [$$18] <- [150]
+                              assign [$$19] <- [150]
                               -- ASSIGN  |PARTITIONED|
                                 empty-tuple-source
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.adm
index 82e42e8..a1f79bb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.adm
@@ -7,12 +7,12 @@
       project ([$$paper])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$13(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$14(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              data-scan []<-[$$13, $$paper] <- test.DBLP1 condition (contains($$paper.getField(1), "kimL89")) limit 10
+              data-scan []<-[$$14, $$paper] <- test.DBLP1 condition (contains($$paper.getField(1), "kimL89")) limit 10
               -- DATASOURCE_SCAN  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.adm
index 9fd4ea8..957c52b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.adm
@@ -1,4 +1,4 @@
-distribute result [$$33]
+distribute result [$$35]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
@@ -6,57 +6,57 @@
     -- STREAM_LIMIT  |UNPARTITIONED|
       exchange
       -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
-        project ([$$33])
+        project ([$$35])
         -- STREAM_PROJECT  |PARTITIONED|
-          assign [$$33] <- [{"dblpid": $$34}]
+          assign [$$35] <- [{"dblpid": $$36}]
           -- ASSIGN  |PARTITIONED|
             limit 2
             -- STREAM_LIMIT  |PARTITIONED|
-              project ([$$34])
+              project ([$$36])
               -- STREAM_PROJECT  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  join (eq($$34, $$37))
-                  -- HYBRID_HASH_JOIN [$$34][$$37]  |PARTITIONED|
+                  join (eq($$36, $$39))
+                  -- HYBRID_HASH_JOIN [$$36][$$39]  |PARTITIONED|
                     exchange
-                    -- HASH_PARTITION_EXCHANGE [$$34]  |PARTITIONED|
-                      project ([$$34])
+                    -- HASH_PARTITION_EXCHANGE [$$36]  |PARTITIONED|
+                      project ([$$36])
                       -- STREAM_PROJECT  |PARTITIONED|
-                        assign [$$34] <- [$$d.getField(1)]
+                        assign [$$36] <- [$$d.getField(1)]
                         -- ASSIGN  |PARTITIONED|
                           project ([$$d])
                           -- STREAM_PROJECT  |PARTITIONED|
                             exchange
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              data-scan []<-[$$35, $$d] <- test.DBLP1
+                              data-scan []<-[$$37, $$d] <- test.DBLP1
                               -- DATASOURCE_SCAN  |PARTITIONED|
                                 exchange
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   empty-tuple-source
                                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                     exchange
-                    -- HASH_PARTITION_EXCHANGE [$$37]  |PARTITIONED|
-                      project ([$$37])
+                    -- HASH_PARTITION_EXCHANGE [$$39]  |PARTITIONED|
+                      project ([$$39])
                       -- STREAM_PROJECT  |UNPARTITIONED|
-                        assign [$$37] <- [get-item($$26, 0).getField(0).getField(1)]
+                        assign [$$39] <- [get-item($$28, 0).getField(0).getField(1)]
                         -- ASSIGN  |UNPARTITIONED|
-                          aggregate [$$26] <- [listify($$25)]
+                          aggregate [$$28] <- [listify($$27)]
                           -- AGGREGATE  |UNPARTITIONED|
                             limit 1
                             -- STREAM_LIMIT  |UNPARTITIONED|
-                              project ([$$25])
+                              project ([$$27])
                               -- STREAM_PROJECT  |PARTITIONED|
                                 exchange
-                                -- SORT_MERGE_EXCHANGE [$$36(ASC) ]  |PARTITIONED|
-                                  project ([$$36, $$25])
+                                -- SORT_MERGE_EXCHANGE [$$38(ASC) ]  |PARTITIONED|
+                                  project ([$$38, $$27])
                                   -- STREAM_PROJECT  |PARTITIONED|
-                                    assign [$$25] <- [{"d": $$d}]
+                                    assign [$$27] <- [{"d": $$d}]
                                     -- ASSIGN  |PARTITIONED|
                                       limit 1
                                       -- STREAM_LIMIT  |PARTITIONED|
                                         exchange
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          data-scan []<-[$$36, $$d] <- test.DBLP1 condition (ends-with($$d.getField(1), "Blakeley95")) limit 1
+                                          data-scan []<-[$$38, $$d] <- test.DBLP1 condition (ends-with($$d.getField(1), "Blakeley95")) limit 1
                                           -- DATASOURCE_SCAN  |PARTITIONED|
                                             exchange
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.adm
index 8ffb399..7509819 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.adm
@@ -1,26 +1,26 @@
-distribute result [$$17]
+distribute result [$$18]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
     limit 1
     -- STREAM_LIMIT  |UNPARTITIONED|
-      project ([$$17])
+      project ([$$18])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$19(ASC) ]  |PARTITIONED|
-          project ([$$19, $$17])
+        -- SORT_MERGE_EXCHANGE [$$20(ASC) ]  |PARTITIONED|
+          project ([$$20, $$18])
           -- STREAM_PROJECT  |PARTITIONED|
-            assign [$$17] <- [{"$1": substring($$18, 0, 21)}]
+            assign [$$18] <- [{"$1": substring($$19, 0, 21)}]
             -- ASSIGN  |PARTITIONED|
               limit 1
               -- STREAM_LIMIT  |PARTITIONED|
-                project ([$$19, $$18])
+                project ([$$20, $$19])
                 -- STREAM_PROJECT  |PARTITIONED|
-                  assign [$$18] <- [$$DBLP1.getField(1)]
+                  assign [$$19] <- [$$DBLP1.getField(1)]
                   -- ASSIGN  |PARTITIONED|
                     exchange
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      data-scan []<-[$$19, $$DBLP1] <- test.DBLP1 condition (gt($$DBLP1.getField(1), "series")) limit 1
+                      data-scan []<-[$$20, $$DBLP1] <- test.DBLP1 condition (gt($$DBLP1.getField(1), "series")) limit 1
                       -- DATASOURCE_SCAN  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.adm
index bc86e3a..5b408ad 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.adm
@@ -1,26 +1,26 @@
-distribute result [$$20]
+distribute result [$$21]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
     limit 2
     -- STREAM_LIMIT  |UNPARTITIONED|
-      project ([$$20])
+      project ([$$21])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$23(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$24(ASC) ]  |PARTITIONED|
           limit 2
           -- STREAM_LIMIT  |PARTITIONED|
-            project ([$$23, $$20])
+            project ([$$24, $$21])
             -- STREAM_PROJECT  |PARTITIONED|
-              assign [$$20] <- [$$24.getField("lang")]
+              assign [$$21] <- [$$25.getField("lang")]
               -- ASSIGN  |PARTITIONED|
-                project ([$$23, $$24])
+                project ([$$24, $$25])
                 -- STREAM_PROJECT  |PARTITIONED|
-                  assign [$$24] <- [$$t.getField("user")]
+                  assign [$$25] <- [$$t.getField("user")]
                   -- ASSIGN  |PARTITIONED|
                     exchange
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      data-scan []<-[$$23, $$t] <- test.TweetMessages condition (and(ge($$t.getField("user").getField("friends_count"), 0), le($$t.getField("user").getField("friends_count"), 150))) limit 2
+                      data-scan []<-[$$24, $$t] <- test.TweetMessages condition (and(ge($$t.getField("user").getField("friends_count"), 0), le($$t.getField("user").getField("friends_count"), 150))) limit 2
                       -- DATASOURCE_SCAN  |PARTITIONED|
                         exchange
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.3.adm
index a810489..ee3e565 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.3.adm
@@ -7,12 +7,12 @@
       project ([$$paper])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$11(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$12(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              data-scan []<-[$$11, $$paper] <- test.DBLP1 limit 10
+              data-scan []<-[$$12, $$paper] <- test.DBLP1 limit 10
               -- DATASOURCE_SCAN  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.5.adm
index 41880a5..939637d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/limit/push-limit-to-primary-scan/push-limit-to-primary-scan.5.adm
@@ -7,12 +7,12 @@
       project ([$$paper])
       -- STREAM_PROJECT  |PARTITIONED|
         exchange
-        -- SORT_MERGE_EXCHANGE [$$13(ASC) ]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$14(ASC) ]  |PARTITIONED|
           limit 10
           -- STREAM_LIMIT  |PARTITIONED|
             exchange
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              data-scan []<-[$$13, $$paper] <- test.DBLP1 limit 10
+              data-scan []<-[$$14, $$paper] <- test.DBLP1 limit 10
               -- DATASOURCE_SCAN  |PARTITIONED|
                 exchange
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/list/enforcing_item_type/enforcing_item_type.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/list/enforcing_item_type/enforcing_item_type.1.adm
index 81de56f..f0da628 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/list/enforcing_item_type/enforcing_item_type.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/list/enforcing_item_type/enforcing_item_type.1.adm
@@ -1,10 +1,10 @@
-distribute result [$$19]
+distribute result [$$20]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
   exchange
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-    project ([$$19])
+    project ([$$20])
     -- STREAM_PROJECT  |UNPARTITIONED|
-      assign [$$19] <- [{"id": get-item($$t, 0), "v": get-item($$t, 1)}]
+      assign [$$20] <- [{"id": get-item($$t, 0), "v": get-item($$t, 1)}]
       -- ASSIGN  |UNPARTITIONED|
         unnest $$t <- scan-collection(ordered-list-constructor(ordered-list-constructor(29, cast({ f1: "a", f2: 3 }))))
         -- UNNEST  |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/list/list-star_01/list-star_01.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/list/list-star_01/list-star_01.3.adm
new file mode 100644
index 0000000..7c99ec3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/list/list-star_01/list-star_01.3.adm
@@ -0,0 +1 @@
+{ "t1": { "a": [ "a_val1", "a_val2", "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ] }, "t2": { "compType": [ { "sth": 33 }, { "sth": 44 } ], "followers": [ null, [ { "a": "a_val1", "b": "b_val1" }, { "a": "a_val2", "b": "b_val2" }, { "a": "a_val3", "b": "b_val3" } ] ], "id": [ 1, 2 ] }, "t3": { "a": [ "a_val1", "a_val2", "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ] }, "t4": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ] }, "t5": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ] }, "t6": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ], "c": [ null, null, "c_val3" ] }, "t7": { "a": [ 5, 3.2, "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ], "c": [ null, null, "c_val3" ] }, "t8": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", null, "b_val3" ] }, "t9": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", null, "b_val3" ] }, "t10": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", null, "b_val3" ] }, "t11": { "a": [ "a_val1", null, "a_val3" ], "b": [ "b_val1", null, "b_val3" ] }, "t12": { "a": [ "a_val1", null, null ], "b": [ "b_val1", null, null ] }, "t17": null, "t19": null, "t20": [ {  }, { "$1": { "a": [ "a_val1", "a_val2", "a_val3" ], "b": [ "b_val1", "b_val2", "b_val3" ] } } ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.2.adm
new file mode 100644
index 0000000..4b1e4bc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.2.adm
@@ -0,0 +1,4 @@
+true
+true
+true
+true
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.3.adm
new file mode 100644
index 0000000..aafd2d0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.3.adm
@@ -0,0 +1,18 @@
+distribute result [$$14]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    assign [$$14] <- [TRUE]
+    -- ASSIGN  |UNPARTITIONED|
+      project ([])
+      -- STREAM_PROJECT  |UNPARTITIONED|
+        exchange
+        -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+          order (ASC, $$x)
+          -- STABLE_SORT [$$x(ASC)]  |UNPARTITIONED|
+            exchange
+            -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+              unnest $$x <- range(1, 4)
+              -- UNNEST  |UNPARTITIONED|
+                empty-tuple-source
+                -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.4.adm
new file mode 100644
index 0000000..5d73c0d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.4.adm
@@ -0,0 +1,4 @@
+true
+true
+false
+false
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.5.adm
new file mode 100644
index 0000000..7209f96
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.5.adm
@@ -0,0 +1,18 @@
+distribute result [$$14]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    project ([$$14])
+    -- STREAM_PROJECT  |UNPARTITIONED|
+      assign [$$14] <- [le($$x, 2)]
+      -- ASSIGN  |UNPARTITIONED|
+        exchange
+        -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+          order (ASC, $$x)
+          -- STABLE_SORT [$$x(ASC)]  |UNPARTITIONED|
+            exchange
+            -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+              unnest $$x <- range(1, 4)
+              -- UNNEST  |UNPARTITIONED|
+                empty-tuple-source
+                -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.6.adm
new file mode 100644
index 0000000..351c8e5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.6.adm
@@ -0,0 +1,18 @@
+distribute result [$$14]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    project ([$$14])
+    -- STREAM_PROJECT  |UNPARTITIONED|
+      assign [$$14] <- [or(null, le($$x, 2))]
+      -- ASSIGN  |UNPARTITIONED|
+        exchange
+        -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+          order (ASC, $$x)
+          -- STABLE_SORT [$$x(ASC)]  |UNPARTITIONED|
+            exchange
+            -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+              unnest $$x <- range(1, 4)
+              -- UNNEST  |UNPARTITIONED|
+                empty-tuple-source
+                -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.7.adm
new file mode 100644
index 0000000..d2f3187
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/constant_folding/constant_folding.7.adm
@@ -0,0 +1,18 @@
+distribute result [$$16]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    project ([$$16])
+    -- STREAM_PROJECT  |UNPARTITIONED|
+      assign [$$16] <- [or(TRUE, lt(get-year(current-date()), $$x))]
+      -- ASSIGN  |UNPARTITIONED|
+        exchange
+        -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+          order (ASC, $$x)
+          -- STABLE_SORT [$$x(ASC)]  |UNPARTITIONED|
+            exchange
+            -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+              unnest $$x <- range(1, 4)
+              -- UNNEST  |UNPARTITIONED|
+                empty-tuple-source
+                -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/multipart-dataverse/special_chars_2/special_chars_2.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/multipart-dataverse/special_chars_2/special_chars_2.2.adm
new file mode 100644
index 0000000..9abda4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/multipart-dataverse/special_chars_2/special_chars_2.2.adm
@@ -0,0 +1,6 @@
+{ "CanonicalName": "A", "DisplayName": "A", "NameParts": [ "A" ] }
+{ "CanonicalName": "B.C", "DisplayName": "B.C", "NameParts": [ "B", "C" ] }
+{ "CanonicalName": "C@.D@.E", "DisplayName": "`C.D.E`", "NameParts": [ "C.D.E" ] }
+{ "CanonicalName": "Default", "DisplayName": "Default", "NameParts": [ "Default" ] }
+{ "CanonicalName": "Metadata", "DisplayName": "Metadata", "NameParts": [ "Metadata" ] }
+{ "CanonicalName": "a-A.b_B.c$C.z@.Z", "DisplayName": "`a-A`.b_B.c$C.`z.Z`", "NameParts": [ "a-A", "b_B", "c$C", "z.Z" ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.13.adm
index 73492d27..e14f391 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.13.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.13.adm
@@ -5,28 +5,28 @@
     project ([$$l])
     -- STREAM_PROJECT  |PARTITIONED|
       exchange
-      -- SORT_MERGE_EXCHANGE [$$15(ASC), $$16(ASC) ]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$16(ASC), $$17(ASC) ]  |PARTITIONED|
         select (eq($$l.getField(10), "1994-01-20"))
         -- STREAM_SELECT  |PARTITIONED|
           exchange
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            unnest-map [$$15, $$16, $$l] <- index-search("LineItem", 0, "tpch", "LineItem", FALSE, FALSE, 2, $$23, $$24, 2, $$23, $$24, TRUE, TRUE, TRUE)
+            unnest-map [$$16, $$17, $$l] <- index-search("LineItem", 0, "tpch", "LineItem", FALSE, FALSE, 2, $$24, $$25, 2, $$24, $$25, TRUE, TRUE, TRUE)
             -- BTREE_SEARCH  |PARTITIONED|
               exchange
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                order (ASC, $$23) (ASC, $$24) 
-                -- STABLE_SORT [$$23(ASC), $$24(ASC)]  |PARTITIONED|
+                order (ASC, $$24) (ASC, $$25)
+                -- STABLE_SORT [$$24(ASC), $$25(ASC)]  |PARTITIONED|
                   exchange
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    project ([$$23, $$24])
+                    project ([$$24, $$25])
                     -- STREAM_PROJECT  |PARTITIONED|
                       exchange
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        unnest-map [$$22, $$23, $$24] <- index-search("lineitem_shipdateIx", 0, "tpch", "LineItem", FALSE, FALSE, 1, $$20, 1, $$21, TRUE, TRUE, TRUE)
+                        unnest-map [$$23, $$24, $$25] <- index-search("lineitem_shipdateIx", 0, "tpch", "LineItem", FALSE, FALSE, 1, $$21, 1, $$22, TRUE, TRUE, TRUE)
                         -- BTREE_SEARCH  |PARTITIONED|
                           exchange
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            assign [$$20, $$21] <- ["1994-01-20", "1994-01-20"]
+                            assign [$$21, $$22] <- ["1994-01-20", "1994-01-20"]
                             -- ASSIGN  |PARTITIONED|
                               empty-tuple-source
                               -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.8.adm
index 73492d27..e14f391 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.8.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/rebalance/single_dataset_with_index/single_dataset_with_index.8.adm
@@ -5,28 +5,28 @@
     project ([$$l])
     -- STREAM_PROJECT  |PARTITIONED|
       exchange
-      -- SORT_MERGE_EXCHANGE [$$15(ASC), $$16(ASC) ]  |PARTITIONED|
+      -- SORT_MERGE_EXCHANGE [$$16(ASC), $$17(ASC) ]  |PARTITIONED|
         select (eq($$l.getField(10), "1994-01-20"))
         -- STREAM_SELECT  |PARTITIONED|
           exchange
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            unnest-map [$$15, $$16, $$l] <- index-search("LineItem", 0, "tpch", "LineItem", FALSE, FALSE, 2, $$23, $$24, 2, $$23, $$24, TRUE, TRUE, TRUE)
+            unnest-map [$$16, $$17, $$l] <- index-search("LineItem", 0, "tpch", "LineItem", FALSE, FALSE, 2, $$24, $$25, 2, $$24, $$25, TRUE, TRUE, TRUE)
             -- BTREE_SEARCH  |PARTITIONED|
               exchange
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                order (ASC, $$23) (ASC, $$24) 
-                -- STABLE_SORT [$$23(ASC), $$24(ASC)]  |PARTITIONED|
+                order (ASC, $$24) (ASC, $$25)
+                -- STABLE_SORT [$$24(ASC), $$25(ASC)]  |PARTITIONED|
                   exchange
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    project ([$$23, $$24])
+                    project ([$$24, $$25])
                     -- STREAM_PROJECT  |PARTITIONED|
                       exchange
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        unnest-map [$$22, $$23, $$24] <- index-search("lineitem_shipdateIx", 0, "tpch", "LineItem", FALSE, FALSE, 1, $$20, 1, $$21, TRUE, TRUE, TRUE)
+                        unnest-map [$$23, $$24, $$25] <- index-search("lineitem_shipdateIx", 0, "tpch", "LineItem", FALSE, FALSE, 1, $$21, 1, $$22, TRUE, TRUE, TRUE)
                         -- BTREE_SEARCH  |PARTITIONED|
                           exchange
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            assign [$$20, $$21] <- ["1994-01-20", "1994-01-20"]
+                            assign [$$21, $$22] <- ["1994-01-20", "1994-01-20"]
                             -- ASSIGN  |PARTITIONED|
                               empty-tuple-source
                               -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.3.adm
new file mode 100644
index 0000000..0881670
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.3.adm
@@ -0,0 +1,8 @@
+{ "id": 299, "fname": "Julio", "lname": "Iorio", "age": 37 }
+{ "id": 514, "fname": "Julio", "lname": "Ruben", "age": 41 }
+{ "id": 671, "fname": "Julio", "lname": "Vanpatten", "age": 30 }
+{ "id": 741, "fname": "Julio", "lname": "Mattocks", "age": 38 }
+{ "id": 881, "fname": "Julio", "lname": "Isa", "age": 38 }
+{ "id": 1418, "fname": "Julio", "lname": "Damore", "age": 27 }
+{ "id": 1430, "fname": "Julio", "lname": "Barkett", "age": 39 }
+{ "id": 8338, "fname": "Julio", "lname": "Bosket", "age": 28 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.4.adm
new file mode 100644
index 0000000..87c7773
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/index_01/index_01.4.adm
@@ -0,0 +1 @@
+{ "id": 881, "fname": "Julio", "lname": "Isa", "age": 38 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/length_multi_code_point_01/length_multi_code_point_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/length_multi_code_point_01/length_multi_code_point_01.1.adm
new file mode 100644
index 0000000..721a7e1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/length_multi_code_point_01/length_multi_code_point_01.1.adm
@@ -0,0 +1 @@
+[ 7, 9, 6 ]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.adm
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset0/pos0_multi_code_point/pos0_multi_code_point.1.adm
@@ -0,0 +1 @@
+7
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.adm
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/position/offset1/pos1_multi_code_point/pos1_multi_code_point.1.adm
@@ -0,0 +1 @@
+8
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/regexp_contains/regexp_contains/regexp_contains.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/regexp_contains/regexp_contains/regexp_contains.3.adm
index 3215658..5992661 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/regexp_contains/regexp_contains/regexp_contains.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/regexp_contains/regexp_contains/regexp_contains.3.adm
@@ -12,4 +12,5 @@
 true
 true
 false
+true
 true
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/reverse/reverse.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/reverse/reverse.1.adm
index a2b8b2c..d0669c4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/reverse/reverse.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/reverse/reverse.1.adm
@@ -1 +1 @@
-{ "t1": [ true, true ], "t2": "", "t3": "dcba", "t4": [ 98, 8457, 247, 8451, 215, 97 ], "t5": [ "ba", "cba", "dcba" ] }
\ No newline at end of file
+{ "t1": [ true, true ], "t2": "", "t3": "dcba", "t4": [ 98, 8457, 247, 8451, 215, 97 ], "t5": [ "ba", "cba", "dcba" ], "t6": "🇳🇨" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.adm
new file mode 100644
index 0000000..2e6f72f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/string_to_codepoint_multi_codepoints_01/string_to_codepoint_multi_codepoints_01.1.adm
@@ -0,0 +1 @@
+[ [ 128105, 8205, 128105, 8205, 128103, 8205, 128102 ], "👩‍👩‍👧‍👦" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.adm
new file mode 100644
index 0000000..5157e8a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/substring_multi_codepoint_01/substring_multi_codepoint_01.1.adm
@@ -0,0 +1 @@
+{ "2 people in a 4-people family": "👨‍👦", "Korean test 0": "글", "Korean test 1": "ᆫᄀ" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/trim/trim.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/trim/trim.1.adm
index 410cb004..50ab5d0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/trim/trim.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/trim/trim.1.adm
@@ -1 +1 @@
-[ "", "", "abc", "abcd", null, null, "", "", "bc", "bc", null, null, null, null, null, null ]
+[ "", "", "abc", "abcd", null, null, "", "", "bc", "bc", null, null, null, null, null, null, "🇸", "👩‍👧", "👩‍👧‍👦", "👨‍👩‍👧" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.10.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.10.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.11.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.11.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.12.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.12.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.13.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.13.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.14.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.14.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.3.adm
index f38e40b..93c0eb5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.3.adm
@@ -1,5 +1,9 @@
 { "staff": "Franklin", "student": "Olga" }
-{ "staff": "Maryann", "student": "Charles" }
-{ "staff": "Maryann", "student": "Frank" }
-{ "staff": "Maryann", "student": "Mary" }
-{ "staff": "Maryann", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.5.adm
index f38e40b..93c0eb5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.5.adm
@@ -1,5 +1,9 @@
 { "staff": "Franklin", "student": "Olga" }
-{ "staff": "Maryann", "student": "Charles" }
-{ "staff": "Maryann", "student": "Frank" }
-{ "staff": "Maryann", "student": "Mary" }
-{ "staff": "Maryann", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.7.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.7.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.8.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.8.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.9.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_after/interval_after.9.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.10.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.10.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.11.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.11.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.12.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.12.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.13.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.13.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.14.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.14.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.3.adm
index 509693a..c15304d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.3.adm
@@ -1,3 +1,3 @@
 { "staff": "Zack", "student": "Karen" }
 { "staff": "Zack", "student": "Steve" }
-{ "staff": "Zack", "student": "Tess" }
\ No newline at end of file
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
index f38e40b..93c0eb5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
@@ -1,5 +1,9 @@
 { "staff": "Franklin", "student": "Olga" }
-{ "staff": "Maryann", "student": "Charles" }
-{ "staff": "Maryann", "student": "Frank" }
-{ "staff": "Maryann", "student": "Mary" }
-{ "staff": "Maryann", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.5.adm
index 509693a..c15304d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.5.adm
@@ -1,3 +1,3 @@
 { "staff": "Zack", "student": "Karen" }
 { "staff": "Zack", "student": "Steve" }
-{ "staff": "Zack", "student": "Tess" }
\ No newline at end of file
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.6.adm
index f38e40b..93c0eb5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.6.adm
@@ -1,5 +1,9 @@
 { "staff": "Franklin", "student": "Olga" }
-{ "staff": "Maryann", "student": "Charles" }
-{ "staff": "Maryann", "student": "Frank" }
-{ "staff": "Maryann", "student": "Mary" }
-{ "staff": "Maryann", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.7.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.7.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.8.adm
new file mode 100644
index 0000000..93c0eb5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.8.adm
@@ -0,0 +1,9 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Jake", "student": "Charles" }
+{ "staff": "Jake", "student": "Frank" }
+{ "staff": "Jake", "student": "Mary" }
+{ "staff": "Jake", "student": "Olga" }
+{ "staff": "MaryAnn", "student": "Charles" }
+{ "staff": "MaryAnn", "student": "Frank" }
+{ "staff": "MaryAnn", "student": "Mary" }
+{ "staff": "MaryAnn", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.9.adm
new file mode 100644
index 0000000..c15304d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.9.adm
@@ -0,0 +1,3 @@
+{ "staff": "Zack", "student": "Karen" }
+{ "staff": "Zack", "student": "Steve" }
+{ "staff": "Zack", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.10.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.10.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.11.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.11.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.12.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.12.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.13.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.13.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.14.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.14.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.4.adm
index 4e22101..90e39d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.4.adm
@@ -3,9 +3,9 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.6.adm
index 4e22101..90e39d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.6.adm
@@ -3,9 +3,9 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.7.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.7.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.8.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.8.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.9.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covered_by/interval_covered_by.9.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.10.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.10.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.11.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.11.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.12.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.12.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.13.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.13.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.14.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.14.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
index 4e22101..90e39d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
@@ -3,9 +3,9 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.5.adm
index 4e22101..90e39d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.5.adm
@@ -3,9 +3,9 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.7.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.7.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.8.adm
new file mode 100644
index 0000000..1a67e10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.8.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.9.adm
new file mode 100644
index 0000000..90e39d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.9.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.10.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.10.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.11.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.11.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.12.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.12.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.13.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.13.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.14.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.14.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.4.adm
index 5af9101..1fc19e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.4.adm
@@ -1,7 +1,7 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Steve" }
 { "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.6.adm
index 5af9101..1fc19e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.6.adm
@@ -1,7 +1,7 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Steve" }
 { "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.7.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.7.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.8.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.8.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.9.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ended_by/interval_ended_by.9.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.10.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.10.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.11.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.11.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.12.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.12.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.13.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.13.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.14.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.14.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
index 5af9101..1fc19e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
@@ -1,7 +1,7 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Steve" }
 { "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.5.adm
index 5af9101..1fc19e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.5.adm
@@ -1,7 +1,7 @@
 { "staff": "Elisabeth", "student": "Steve" }
 { "staff": "Elisabeth", "student": "Tess" }
 { "staff": "Franklin", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Steve" }
 { "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.7.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.7.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.8.adm
new file mode 100644
index 0000000..5857139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.8.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.9.adm
new file mode 100644
index 0000000..1fc19e7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.9.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.10.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.10.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.11.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.11.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.12.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.12.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.13.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.13.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.14.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.14.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.3.adm
index 5568195..8cafa72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.3.adm
@@ -1,2 +1,3 @@
 { "staff": "Alex", "student": "Tess" }
 { "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.5.adm
index 5568195..8cafa72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.5.adm
@@ -1,2 +1,3 @@
 { "staff": "Alex", "student": "Tess" }
 { "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.7.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.7.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.8.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.8.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.9.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_meets/interval_meets.9.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.10.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.10.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.11.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.11.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.12.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.12.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.13.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.13.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.14.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.14.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.4.adm
index 5568195..8cafa72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.4.adm
@@ -1,2 +1,3 @@
 { "staff": "Alex", "student": "Tess" }
 { "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.6.adm
index 5568195..8cafa72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.6.adm
@@ -1,2 +1,3 @@
 { "staff": "Alex", "student": "Tess" }
 { "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.7.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.7.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.8.adm
new file mode 100644
index 0000000..8cafa72
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.8.adm
@@ -0,0 +1,3 @@
+{ "staff": "Alex", "student": "Tess" }
+{ "staff": "Henry", "student": "Tess" }
+{ "staff": "Jake", "student": "Tess" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.9.adm
new file mode 100644
index 0000000..cd4b3ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_met_by/interval_met_by.9.adm
@@ -0,0 +1,4 @@
+{ "staff": "Alex", "student": "Olga" }
+{ "staff": "Franklin", "student": "Charles" }
+{ "staff": "Franklin", "student": "Frank" }
+{ "staff": "Henry", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.10.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.11.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.12.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.13.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.14.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.adm
index 94ac56a..7ab4d4f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.4.adm
@@ -4,3 +4,5 @@
 { "staff": "Franklin", "student": "Tess" }
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.adm
index 94ac56a..7ab4d4f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.6.adm
@@ -4,3 +4,5 @@
 { "staff": "Franklin", "student": "Tess" }
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.7.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.8.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapped_by/interval_overlapped_by.9.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.10.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.10.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.11.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.11.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.12.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.12.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.13.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.13.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.14.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.14.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.adm
index 4ecd143..dc01c06 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.3.adm
@@ -19,9 +19,11 @@
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Mary" }
 { "staff": "Henry", "student": "Steve" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.4.adm
index 4ecd143..dc01c06 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.4.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.4.adm
@@ -19,9 +19,11 @@
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Mary" }
 { "staff": "Henry", "student": "Steve" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.5.adm
index 4ecd143..dc01c06 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.5.adm
@@ -19,9 +19,11 @@
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Mary" }
 { "staff": "Henry", "student": "Steve" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.6.adm
index 4ecd143..dc01c06 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.6.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.6.adm
@@ -19,9 +19,11 @@
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Mary" }
 { "staff": "Henry", "student": "Steve" }
-{ "staff": "Maryann", "student": "Karen" }
-{ "staff": "Maryann", "student": "Steve" }
-{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
 { "staff": "Vicky", "student": "Charles" }
 { "staff": "Vicky", "student": "Frank" }
 { "staff": "Vicky", "student": "Karen" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.7.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.7.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.8.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.8.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.9.adm
new file mode 100644
index 0000000..dc01c06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlapping/interval_overlapping.9.adm
@@ -0,0 +1,37 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Mary" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Karen" }
+{ "staff": "MaryAnn", "student": "Steve" }
+{ "staff": "MaryAnn", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.10.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.10.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.11.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.11.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.12.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.12.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.13.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.13.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.14.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.14.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.adm
index 94ac56a..7ab4d4f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.3.adm
@@ -4,3 +4,5 @@
 { "staff": "Franklin", "student": "Tess" }
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.5.adm
index 94ac56a..7ab4d4f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.5.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.5.adm
@@ -4,3 +4,5 @@
 { "staff": "Franklin", "student": "Tess" }
 { "staff": "Henry", "student": "Karen" }
 { "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.7.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.7.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.8.adm
new file mode 100644
index 0000000..9e5549f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.8.adm
@@ -0,0 +1,10 @@
+{ "staff": "Alex", "student": "Charles" }
+{ "staff": "Alex", "student": "Frank" }
+{ "staff": "Alex", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Charles" }
+{ "staff": "Elisabeth", "student": "Frank" }
+{ "staff": "Elisabeth", "student": "Olga" }
+{ "staff": "Franklin", "student": "Mary" }
+{ "staff": "Henry", "student": "Charles" }
+{ "staff": "Henry", "student": "Frank" }
+{ "staff": "Henry", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.9.adm
new file mode 100644
index 0000000..7ab4d4f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_overlaps/interval_overlaps.9.adm
@@ -0,0 +1,8 @@
+{ "staff": "Alex", "student": "Karen" }
+{ "staff": "Alex", "student": "Steve" }
+{ "staff": "Franklin", "student": "Steve" }
+{ "staff": "Franklin", "student": "Tess" }
+{ "staff": "Henry", "student": "Karen" }
+{ "staff": "Henry", "student": "Steve" }
+{ "staff": "Jake", "student": "Karen" }
+{ "staff": "Jake", "student": "Steve" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.10.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.10.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.11.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.11.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.12.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.12.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.13.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.13.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.14.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.14.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.7.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.7.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.8.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.8.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.9.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_started_by/interval_started_by.9.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.10.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.10.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.11.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.11.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.12.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.12.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.13.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.13.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.14.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.14.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.7.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.7.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.8.adm
new file mode 100644
index 0000000..6cd921a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.8.adm
@@ -0,0 +1,4 @@
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Olga" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.9.adm
new file mode 100644
index 0000000..54ab54e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_starts/interval_starts.9.adm
@@ -0,0 +1 @@
+{ "staff": "Zack", "student": "Mary" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_after/interval_after.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_after/interval_after.3.adm
new file mode 100644
index 0000000..393d858
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_after/interval_after.3.adm
@@ -0,0 +1 @@
+{ "$1": 4753 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_before/interval_before.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_before/interval_before.3.adm
new file mode 100644
index 0000000..c114617
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_before/interval_before.3.adm
@@ -0,0 +1 @@
+{ "$1": 4656 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.adm
new file mode 100644
index 0000000..b3d2794
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covered_by/interval_covered_by.3.adm
@@ -0,0 +1 @@
+{ "$1": 1728 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covers/interval_covers.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covers/interval_covers.3.adm
new file mode 100644
index 0000000..81026fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_covers/interval_covers.3.adm
@@ -0,0 +1 @@
+{ "$1": 1710 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.adm
new file mode 100644
index 0000000..81026fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapped_by/interval_overlapped_by.3.adm
@@ -0,0 +1 @@
+{ "$1": 1710 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.adm
new file mode 100644
index 0000000..5e118ee
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlapping/interval_overlapping.3.adm
@@ -0,0 +1 @@
+{ "$1": 1800 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.adm
new file mode 100644
index 0000000..2dfe912
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins_spilling/interval_overlaps/interval_overlaps.3.adm
@@ -0,0 +1 @@
+{ "$1": 1691 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.4.adm
new file mode 100644
index 0000000..638ab59
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.4.adm
@@ -0,0 +1,4 @@
+{ "unique1": 98, "unique2": 0, "unique3": 0 }
+{ "unique1": 98, "unique2": 12, "unique3": 98 }
+{ "unique1": 99, "unique2": 25, "unique3": 25 }
+{ "unique1": 99, "unique2": 97, "unique3": 99 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.5.adm
new file mode 100644
index 0000000..638ab59
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.5.adm
@@ -0,0 +1,4 @@
+{ "unique1": 98, "unique2": 0, "unique3": 0 }
+{ "unique1": 98, "unique2": 12, "unique3": 98 }
+{ "unique1": 99, "unique2": 25, "unique3": 25 }
+{ "unique1": 99, "unique2": 97, "unique3": 99 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.6.adm
new file mode 100644
index 0000000..355836b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.6.adm
@@ -0,0 +1,6 @@
+{ "alias": "Von", "name": "VonKemble" }
+{ "alias": "Von", "name": "VonKemble" }
+{ "alias": "Willis", "name": "WillisWynne" }
+{ "alias": "Willis", "name": "WillisWynne" }
+{ "alias": "Woodrow", "name": "WoodrowNehling" }
+{ "alias": "Woodrow", "name": "WoodrowNehling" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.7.adm
new file mode 100644
index 0000000..355836b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/union/union_opt_1/union_opt_1.7.adm
@@ -0,0 +1,6 @@
+{ "alias": "Von", "name": "VonKemble" }
+{ "alias": "Von", "name": "VonKemble" }
+{ "alias": "Willis", "name": "WillisWynne" }
+{ "alias": "Willis", "name": "WillisWynne" }
+{ "alias": "Woodrow", "name": "WoodrowNehling" }
+{ "alias": "Woodrow", "name": "WoodrowNehling" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.adm
new file mode 100644
index 0000000..e57f576
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.2.adm
@@ -0,0 +1 @@
+{ "f1": 3, "f2": 10 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.adm
new file mode 100644
index 0000000..63617d3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/create-or-replace-function-1/create-or-replace-function-1.3.adm
@@ -0,0 +1,2 @@
+{ "Name": "f1", "Definition": "a - b" }
+{ "Name": "f2", "Definition": "a * b" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/drop-function-1/drop-function-1.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/drop-function-1/drop-function-1.2.adm
new file mode 100644
index 0000000..7813681
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/drop-function-1/drop-function-1.2.adm
@@ -0,0 +1 @@
+5
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/single-line-definition/single-line-definition.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/single-line-definition/single-line-definition.1.adm
index 10c6384..abd3c72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/single-line-definition/single-line-definition.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/single-line-definition/single-line-definition.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "Name": "printName", "Arity": "0", "ReturnType": "any", "Definition": "'AsterixDB Shared nothing parallel BDMS'" }
\ No newline at end of file
+{ "DataverseName": "test", "Name": "printName", "Arity": "0", "ReturnType": "", "Definition": "'AsterixDB Shared nothing parallel BDMS'" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf28/udf28.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf28/udf28.1.adm
index 07e4942..eb1d4d6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf28/udf28.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf28/udf28.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "Name": "f1", "Arity": "0", "ReturnType": "any", "Definition": "100" }
\ No newline at end of file
+{ "DataverseName": "test", "Name": "f1", "Arity": "0", "ReturnType": "", "Definition": "100" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
index 07f3289..7cf89ce 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
@@ -1,3 +1,3 @@
-{ "fn": { "DataverseName": "test", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "any", "Definition": "42", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ] } }
-{ "fn": { "DataverseName": "test", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "any", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "any" } ] } }
-{ "fn": { "DataverseName": "test", "Name": "myfn003", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "any", "Definition": "a + b", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "any" }, { "Type": "any" } ] } }
+{ "fn": { "DataverseName": "test", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "", "Definition": "42", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ] } }
+{ "fn": { "DataverseName": "test", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ] } }
+{ "fn": { "DataverseName": "test", "Name": "myfn003", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "", "Definition": "a + b", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ] } }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf33_overloading/udf33_overloading.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf33_overloading/udf33_overloading.2.adm
new file mode 100644
index 0000000..8024624
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf33_overloading/udf33_overloading.2.adm
@@ -0,0 +1 @@
+{ "myfn_1": 2, "myfn_2": 5 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf34/udf34.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf34/udf34.2.adm
new file mode 100644
index 0000000..c55eb7a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf34/udf34.2.adm
@@ -0,0 +1,3 @@
+0
+1
+2
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
index 64386d6..e256cca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
@@ -5,10 +5,10 @@
     :
     FunctionCall asterix.sql-count@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -21,10 +21,10 @@
     :
     FunctionCall asterix.sql-avg@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -37,10 +37,10 @@
     :
     FunctionCall asterix.sql-sum@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -53,10 +53,10 @@
     :
     FunctionCall asterix.sql-min@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -69,10 +69,10 @@
     :
     FunctionCall asterix.sql-max@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -85,10 +85,10 @@
     :
     FunctionCall asterix.sql-stddev_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -101,10 +101,10 @@
     :
     FunctionCall asterix.sql-stddev_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -117,10 +117,10 @@
     :
     FunctionCall asterix.sql-var_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -133,10 +133,10 @@
     :
     FunctionCall asterix.sql-var_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -149,10 +149,10 @@
     :
     FunctionCall asterix.sql-skewness@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -165,10 +165,10 @@
     :
     FunctionCall asterix.sql-kurtosis@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -181,10 +181,10 @@
     :
     FunctionCall asterix.sql-count@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -197,10 +197,10 @@
     :
     FunctionCall asterix.sql-avg@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -213,10 +213,10 @@
     :
     FunctionCall asterix.sql-sum@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -229,10 +229,10 @@
     :
     FunctionCall asterix.sql-min@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -245,10 +245,10 @@
     :
     FunctionCall asterix.sql-max@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -261,10 +261,10 @@
     :
     FunctionCall asterix.sql-stddev_samp@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -277,10 +277,10 @@
     :
     FunctionCall asterix.sql-stddev_pop@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -293,10 +293,10 @@
     :
     FunctionCall asterix.sql-var_samp@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -309,10 +309,10 @@
     :
     FunctionCall asterix.sql-var_pop@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -325,10 +325,10 @@
     :
     FunctionCall asterix.sql-skewness@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -341,10 +341,10 @@
     :
     FunctionCall asterix.sql-kurtosis@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double/avg_double.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double/avg_double.4.ast
index 6ed2da5..225a169 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double/avg_double.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double/avg_double.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.ast
index b7ab21d..4f65985 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.ast
index c2f543d..f03e0ad 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -30,6 +30,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float/avg_float.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float/avg_float.4.ast
index 3351633..e0f92fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float/avg_float.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float/avg_float.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.ast
index f8904be..8e5e508 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16/avg_int16.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16/avg_int16.4.ast
index 09b14c2..977ece3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16/avg_int16.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16/avg_int16.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.ast
index 39ec752..c583e53 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32/avg_int32.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32/avg_int32.4.ast
index 08e7eef..b488440 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32/avg_int32.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32/avg_int32.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.4.ast
index 1143883..93783dc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64/avg_int64.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64/avg_int64.4.ast
index f156a1b..95c1de1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64/avg_int64.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64/avg_int64.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64_null/avg_int64_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64_null/avg_int64_null.4.ast
index 35979d4..ec53307 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64_null/avg_int64_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int64_null/avg_int64_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8/avg_int8.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8/avg_int8.4.ast
index 29133cb..3d5fe2b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8/avg_int8.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8/avg_int8.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.array_avg@1[
+WINDOW asterix.sql-avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8_null/avg_int8_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8_null/avg_int8_null.4.ast
index 14ceeb5..51422fa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8_null/avg_int8_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_int8_null/avg_int8_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.array_avg@1[
+      WINDOW asterix.sql-avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.ast
index 7fac994..2c42fc1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [10]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/min_mixed/min_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/min_mixed/min_mixed.3.ast
index 27e0619..30fc192 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/min_mixed/min_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/min_mixed/min_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [93847382783847382]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg/scalar_avg.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg/scalar_avg.3.ast
index 46f9fd5..a866be7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg/scalar_avg.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg/scalar_avg.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg_null/scalar_avg_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg_null/scalar_avg_null.3.ast
index a06070c..906ae0f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg_null/scalar_avg_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_avg_null/scalar_avg_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sql-avg@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count/scalar_count.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count/scalar_count.3.ast
index f1abf16..559f7cf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count/scalar_count.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count/scalar_count.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count_null/scalar_count_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count_null/scalar_count_null.3.ast
index 12d3e6f..ca7769c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count_null/scalar_count_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_count_null/scalar_count_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sql-count@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max/scalar_max.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max/scalar_max.3.ast
index c75afa6..9815748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max/scalar_max.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max/scalar_max.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -103,13 +103,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max_null/scalar_max_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max_null/scalar_max_null.3.ast
index eb42b80..dcde0e5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max_null/scalar_max_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_max_null/scalar_max_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -110,13 +110,13 @@
   :=
   FunctionCall asterix.sql-max@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min/scalar_min.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min/scalar_min.3.ast
index 2827888..c7c7c18 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min/scalar_min.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min/scalar_min.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -103,13 +103,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min_null/scalar_min_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min_null/scalar_min_null.3.ast
index 6237a07..eec5aaa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min_null/scalar_min_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_min_null/scalar_min_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -110,13 +110,13 @@
   :=
   FunctionCall asterix.sql-min@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum/scalar_sum.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum/scalar_sum.3.ast
index 812e172..bac6515 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum/scalar_sum.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum/scalar_sum.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum_null/scalar_sum_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum_null/scalar_sum_null.3.ast
index 94722a4..cecce51 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum_null/scalar_sum_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_sum_null/scalar_sum_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sql-sum@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_float/sum_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_float/sum_float.3.ast
index c21fa1c..d2c2e8a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_float/sum_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_float/sum_float.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int16/sum_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int16/sum_int16.3.ast
index 62fc04f..3fd8df5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int16/sum_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int16/sum_int16.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int32/sum_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int32/sum_int32.3.ast
index 402f257..9b6a747 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int32/sum_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int32/sum_int32.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int64/sum_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int64/sum_int64.3.ast
index 1e4a755..77f5a7e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int64/sum_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int64/sum_int64.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int8/sum_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int8/sum_int8.3.ast
index cd32941..3058d30 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int8/sum_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_int8/sum_int8.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_mixed/sum_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_mixed/sum_mixed.3.ast
index eb44b3a..70ab82b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_mixed/sum_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/sum_mixed/sum_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [93847382783847382]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.05.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.05.ast
index 28919af..5c4635c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.05.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.05.ast
@@ -1,83 +1,163 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-FunctionCall asterix.sql-count@1[
-  (
-    SELECT ELEMENT [
-    LiteralExpr [LONG] [1]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#2 ]
-    ]
-    Where
-      OperatorExpr [
-        FieldAccessor [
-          FieldAccessor [
-            Variable [ Name=#2 ]
-            Field=tenk
-          ]
-          Field=four
-        ]
-        >
-        LiteralExpr [LONG] [0]
-      ]
-  )
+SELECT ELEMENT [
+Variable [ Name=#2 ]
 ]
-cnt
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
-      ]
-      Field=four
-    ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-    Where
-      OperatorExpr [
-        FieldAccessor [
-          FieldAccessor [
-            Variable [ Name=#3 ]
-            Field=tenk
-          ]
-          Field=four
-        ]
-        >
-        LiteralExpr [LONG] [0]
-      ]
-  )
-]
-sm
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
+FROM [  (
+    SELECT [
     Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
+    two
+    FunctionCall asterix.sql-count@1[
+      (
+        SELECT ELEMENT [
+        LiteralExpr [LONG] [1]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#3 ]
+        ]
+        Where
+          OperatorExpr [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#3 ]
+                Field=tenk
+              ]
+              Field=four
+            ]
+            >
+            LiteralExpr [LONG] [0]
+          ]
+      )
     ]
-  )
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    cnt
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=four
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+        Where
+          OperatorExpr [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#4 ]
+                Field=tenk
+              ]
+              Field=four
+            ]
+            >
+            LiteralExpr [LONG] [0]
+          ]
+      )
+    ]
+    sm
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      FunctionCall asterix.sql-count@1[
+        (
+          SELECT ELEMENT [
+          LiteralExpr [LONG] [1]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+          Where
+            OperatorExpr [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#5 ]
+                  Field=tenk
+                ]
+                Field=four
+              ]
+              >
+              LiteralExpr [LONG] [0]
+            ]
+        )
+      ]
+      cnt
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=four
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+          Where
+            OperatorExpr [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#6 ]
+                  Field=tenk
+                ]
+                Field=four
+              ]
+              >
+              LiteralExpr [LONG] [0]
+            ]
+        )
+      ]
+      sm
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+  )
+  AS Variable [ Name=#2 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=two
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.06.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.06.ast
index 60815f4..d01f24b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.06.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.06.ast
@@ -16,9 +16,28 @@
   Field=tenthous
 ]
 tenthous
-WINDOW test.count@1[
-  Variable [ Name=$tenthous ]
+WINDOW asterix.sql-count@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#7 ]
+        Field=tenk
+      ]
+      Field=tenthous
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#7 ]
+    ]
+  )
 ]
+  AS Variable [ Name=#1 ]
+  (
+    tenk:=Variable [ Name=$tenk ]
+    #4:=Variable [ Name=#4 ]
+    #6:=Variable [ Name=#6 ]
+  )
 OVER (
   ORDER BY
     FieldAccessor [
@@ -28,9 +47,28 @@
     ASC
 )
 cnt
-WINDOW test.sum@1[
-  Variable [ Name=$tenthous ]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#8 ]
+        Field=tenk
+      ]
+      Field=tenthous
+    ]
+    ]
+    FROM [      Variable [ Name=#2 ]
+      AS Variable [ Name=#8 ]
+    ]
+  )
 ]
+  AS Variable [ Name=#2 ]
+  (
+    tenk:=Variable [ Name=$tenk ]
+    #4:=Variable [ Name=#4 ]
+    #6:=Variable [ Name=#6 ]
+  )
 OVER (
   ORDER BY
     FieldAccessor [
@@ -40,15 +78,32 @@
     ASC
 )
 sm
-WINDOW test.count@1[
-  Variable [ Name=$tenthous ]
-]
-  FILTER (WHERE
-    OperatorExpr [
-      Variable [ Name=$twothous ]
-      =
-      LiteralExpr [LONG] [0]
+WINDOW asterix.sql-count@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#9 ]
+        Field=tenk
+      ]
+      Field=tenthous
     ]
+    ]
+    FROM [      Variable [ Name=#3 ]
+      AS Variable [ Name=#9 ]
+    ]
+    Where
+      FieldAccessor [
+        Variable [ Name=#9 ]
+        Field=#4
+      ]
+  )
+]
+  AS Variable [ Name=#3 ]
+  (
+    tenk:=Variable [ Name=$tenk ]
+    #4:=Variable [ Name=#4 ]
+    #6:=Variable [ Name=#6 ]
   )
 OVER (
   ORDER BY
@@ -59,15 +114,32 @@
     ASC
 )
 cnt_filter
-WINDOW test.sum@1[
-  Variable [ Name=$tenthous ]
-]
-  FILTER (WHERE
-    OperatorExpr [
-      Variable [ Name=$twothous ]
-      =
-      LiteralExpr [LONG] [0]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#10 ]
+        Field=tenk
+      ]
+      Field=tenthous
     ]
+    ]
+    FROM [      Variable [ Name=#5 ]
+      AS Variable [ Name=#10 ]
+    ]
+    Where
+      FieldAccessor [
+        Variable [ Name=#10 ]
+        Field=#6
+      ]
+  )
+]
+  AS Variable [ Name=#5 ]
+  (
+    tenk:=Variable [ Name=$tenk ]
+    #4:=Variable [ Name=#4 ]
+    #6:=Variable [ Name=#6 ]
   )
 OVER (
   ORDER BY
@@ -93,6 +165,26 @@
     =
     LiteralExpr [LONG] [0]
   ]
+Let Variable [ Name=#4 ]
+  :=
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=$tenk ]
+      Field=twothous
+    ]
+    =
+    LiteralExpr [LONG] [0]
+  ]
+Let Variable [ Name=#6 ]
+  :=
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=$tenk ]
+      Field=twothous
+    ]
+    =
+    LiteralExpr [LONG] [0]
+  ]
 Orderby
   FieldAccessor [
     Variable [ Name=$tenk ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.07.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.07.ast
index 48f5c9d..06abed9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.07.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-subclause/agg_filter_01/agg_filter_1.07.ast
@@ -8,66 +8,74 @@
     SELECT ELEMENT [
     FieldAccessor [
       FieldAccessor [
-        Variable [ Name=#2 ]
+        Variable [ Name=#14 ]
         Field=tenk
       ]
       Field=ten
     ]
     ]
     FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#2 ]
+      AS Variable [ Name=#14 ]
     ]
   )
 ]
 sm
-WINDOW test.sum@1[
-  FunctionCall asterix.sql-sum@1[
-    (
-      SELECT ELEMENT [
-      FieldAccessor [
-        FieldAccessor [
-          Variable [ Name=#3 ]
-          Field=tenk
-        ]
-        Field=ten
-      ]
-      ]
-      FROM [        Variable [ Name=#1 ]
-        AS Variable [ Name=#3 ]
-      ]
-    )
-  ]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=#15 ]
+      Field=#3
+    ]
+    ]
+    FROM [      Variable [ Name=#2 ]
+      AS Variable [ Name=#15 ]
+    ]
+  )
 ]
+  AS Variable [ Name=#2 ]
+  (
+    twenty:=Variable [ Name=$twenty ]
+    #1:=Variable [ Name=#1 ]
+    #3:=Variable [ Name=#3 ]
+    #5:=Variable [ Name=#5 ]
+    #6:=Variable [ Name=#6 ]
+    #8:=Variable [ Name=#8 ]
+    #9:=Variable [ Name=#9 ]
+  )
 OVER (
   ORDER BY
     Variable [ Name=$twenty ]
     ASC
 )
 sm_sm
-WINDOW test.sum@1[
-  FunctionCall asterix.sql-sum@1[
-    (
-      SELECT ELEMENT [
-      FieldAccessor [
-        FieldAccessor [
-          Variable [ Name=#4 ]
-          Field=tenk
-        ]
-        Field=ten
-      ]
-      ]
-      FROM [        Variable [ Name=#1 ]
-        AS Variable [ Name=#4 ]
-      ]
-    )
-  ]
-]
-  FILTER (WHERE
-    OperatorExpr [
-      Variable [ Name=$twenty ]
-      <
-      LiteralExpr [LONG] [10]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=#16 ]
+      Field=#6
     ]
+    ]
+    FROM [      Variable [ Name=#4 ]
+      AS Variable [ Name=#16 ]
+    ]
+    Where
+      FieldAccessor [
+        Variable [ Name=#16 ]
+        Field=#5
+      ]
+  )
+]
+  AS Variable [ Name=#4 ]
+  (
+    twenty:=Variable [ Name=$twenty ]
+    #1:=Variable [ Name=#1 ]
+    #3:=Variable [ Name=#3 ]
+    #5:=Variable [ Name=#5 ]
+    #6:=Variable [ Name=#6 ]
+    #8:=Variable [ Name=#8 ]
+    #9:=Variable [ Name=#9 ]
   )
 OVER (
   ORDER BY
@@ -75,45 +83,33 @@
     ASC
 )
 sm_sm_where_twenty_lt_10
-WINDOW test.sum@1[
-  FunctionCall asterix.sql-sum@1[
-    (
-      SELECT ELEMENT [
-      FieldAccessor [
-        FieldAccessor [
-          Variable [ Name=#5 ]
-          Field=tenk
-        ]
-        Field=ten
-      ]
-      ]
-      FROM [        Variable [ Name=#1 ]
-        AS Variable [ Name=#5 ]
-      ]
-    )
-  ]
-]
-  FILTER (WHERE
-    OperatorExpr [
-      FunctionCall asterix.sql-sum@1[
-        (
-          SELECT ELEMENT [
-          FieldAccessor [
-            FieldAccessor [
-              Variable [ Name=#6 ]
-              Field=tenk
-            ]
-            Field=ten
-          ]
-          ]
-          FROM [            Variable [ Name=#1 ]
-            AS Variable [ Name=#6 ]
-          ]
-        )
-      ]
-      <
-      LiteralExpr [LONG] [3000]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=#17 ]
+      Field=#9
     ]
+    ]
+    FROM [      Variable [ Name=#7 ]
+      AS Variable [ Name=#17 ]
+    ]
+    Where
+      FieldAccessor [
+        Variable [ Name=#17 ]
+        Field=#8
+      ]
+  )
+]
+  AS Variable [ Name=#7 ]
+  (
+    twenty:=Variable [ Name=$twenty ]
+    #1:=Variable [ Name=#1 ]
+    #3:=Variable [ Name=#3 ]
+    #5:=Variable [ Name=#5 ]
+    #6:=Variable [ Name=#6 ]
+    #8:=Variable [ Name=#8 ]
+    #9:=Variable [ Name=#9 ]
   )
 OVER (
   ORDER BY
@@ -139,6 +135,89 @@
     tenk:=Variable [ Name=$tenk ]
   )
 
+Let Variable [ Name=#3 ]
+  :=
+  FunctionCall asterix.sql-sum@1[
+    (
+      SELECT ELEMENT [
+      FieldAccessor [
+        FieldAccessor [
+          Variable [ Name=#10 ]
+          Field=tenk
+        ]
+        Field=ten
+      ]
+      ]
+      FROM [        Variable [ Name=#1 ]
+        AS Variable [ Name=#10 ]
+      ]
+    )
+  ]
+Let Variable [ Name=#5 ]
+  :=
+  OperatorExpr [
+    Variable [ Name=$twenty ]
+    <
+    LiteralExpr [LONG] [10]
+  ]
+Let Variable [ Name=#6 ]
+  :=
+  FunctionCall asterix.sql-sum@1[
+    (
+      SELECT ELEMENT [
+      FieldAccessor [
+        FieldAccessor [
+          Variable [ Name=#11 ]
+          Field=tenk
+        ]
+        Field=ten
+      ]
+      ]
+      FROM [        Variable [ Name=#1 ]
+        AS Variable [ Name=#11 ]
+      ]
+    )
+  ]
+Let Variable [ Name=#8 ]
+  :=
+  OperatorExpr [
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#12 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#12 ]
+        ]
+      )
+    ]
+    <
+    LiteralExpr [LONG] [3000]
+  ]
+Let Variable [ Name=#9 ]
+  :=
+  FunctionCall asterix.sql-sum@1[
+    (
+      SELECT ELEMENT [
+      FieldAccessor [
+        FieldAccessor [
+          Variable [ Name=#13 ]
+          Field=tenk
+        ]
+        Field=ten
+      ]
+      ]
+      FROM [        Variable [ Name=#1 ]
+        AS Variable [ Name=#13 ]
+      ]
+    )
+  ]
 Orderby
   Variable [ Name=$twenty ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
index 21cab5a..97164dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
@@ -5,10 +5,10 @@
     :
     FunctionCall asterix.count@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -21,10 +21,10 @@
     :
     FunctionCall asterix.avg@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -37,10 +37,10 @@
     :
     FunctionCall asterix.sum@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -53,10 +53,10 @@
     :
     FunctionCall asterix.min@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -69,10 +69,10 @@
     :
     FunctionCall asterix.max@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -85,10 +85,10 @@
     :
     FunctionCall asterix.stddev_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -101,10 +101,10 @@
     :
     FunctionCall asterix.stddev_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -117,10 +117,10 @@
     :
     FunctionCall asterix.var_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -133,10 +133,10 @@
     :
     FunctionCall asterix.var_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -149,10 +149,10 @@
     :
     FunctionCall asterix.skewness@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -165,10 +165,10 @@
     :
     FunctionCall asterix.kurtosis@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -181,10 +181,10 @@
     :
     FunctionCall asterix.count@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -197,10 +197,10 @@
     :
     FunctionCall asterix.avg@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -213,10 +213,10 @@
     :
     FunctionCall asterix.sum@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -229,10 +229,10 @@
     :
     FunctionCall asterix.min@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -245,10 +245,10 @@
     :
     FunctionCall asterix.max@1[
       UnorderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -261,10 +261,10 @@
     :
     FunctionCall asterix.stddev_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -277,10 +277,10 @@
     :
     FunctionCall asterix.stddev_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -293,10 +293,10 @@
     :
     FunctionCall asterix.var_samp@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -309,10 +309,10 @@
     :
     FunctionCall asterix.var_pop@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -325,10 +325,10 @@
     :
     FunctionCall asterix.skewness@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
@@ -341,10 +341,10 @@
     :
     FunctionCall asterix.kurtosis@1[
       OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
-        FunctionCall null.double@1[
+        FunctionCall asterix.double@1[
           LiteralExpr [STRING] [3.0]
         ]
         LiteralExpr [LONG] [93847382783847382]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double/avg_double.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double/avg_double.4.ast
index c6e5f00..486f5ca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double/avg_double.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double/avg_double.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double_null/avg_double_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double_null/avg_double_null.4.ast
index b5910c3..c35af94 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double_null/avg_double_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_double_null/avg_double_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_empty_01/avg_empty_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_empty_01/avg_empty_01.3.ast
index be4e9f4..c8a1c1e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_empty_01/avg_empty_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_empty_01/avg_empty_01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -30,6 +30,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float/avg_float.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float/avg_float.4.ast
index e388212..227a847 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float/avg_float.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float/avg_float.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float_null/avg_float_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float_null/avg_float_null.4.ast
index a27474e..d87565d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float_null/avg_float_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_float_null/avg_float_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16/avg_int16.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16/avg_int16.4.ast
index 93ac851..cfaf11d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16/avg_int16.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16/avg_int16.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16_null/avg_int16_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16_null/avg_int16_null.4.ast
index a8eeec5..96d8472 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16_null/avg_int16_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int16_null/avg_int16_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32/avg_int32.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32/avg_int32.4.ast
index 305ef7b..0d6873c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32/avg_int32.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32/avg_int32.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32_null/avg_int32_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32_null/avg_int32_null.4.ast
index 342ef66..59cdebd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32_null/avg_int32_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int32_null/avg_int32_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64/avg_int64.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64/avg_int64.4.ast
index d81470b..cd1ca5f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64/avg_int64.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64/avg_int64.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64_null/avg_int64_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64_null/avg_int64_null.4.ast
index f6e324a..c6a4275 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64_null/avg_int64_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int64_null/avg_int64_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8/avg_int8.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8/avg_int8.4.ast
index a42531f..9645d36 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8/avg_int8.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8/avg_int8.4.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-WINDOW test.strict_avg@1[
+WINDOW asterix.avg@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -18,6 +18,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8_null/avg_int8_null.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8_null/avg_int8_null.4.ast
index d39b019..1b61a4b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8_null/avg_int8_null.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_int8_null/avg_int8_null.4.ast
@@ -6,7 +6,7 @@
     :
     (
       SELECT ELEMENT [
-      WINDOW test.strict_avg@1[
+      WINDOW asterix.avg@1[
         (
           SELECT ELEMENT [
           FieldAccessor [
@@ -23,6 +23,9 @@
         )
       ]
         AS Variable [ Name=$w ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_mixed/avg_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_mixed/avg_mixed.3.ast
index 750ac9b..73c7ade 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_mixed/avg_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/avg_mixed/avg_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [93847382783847382]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/min_mixed/min_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/min_mixed/min_mixed.3.ast
index 802040d..e472793 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/min_mixed/min_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/min_mixed/min_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [93847382783847382]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg/scalar_avg.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg/scalar_avg.3.ast
index 1049f33..187e742 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg/scalar_avg.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg/scalar_avg.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg_null/scalar_avg_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg_null/scalar_avg_null.3.ast
index 7e062bb..0e200eb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg_null/scalar_avg_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_avg_null/scalar_avg_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.avg@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count/scalar_count.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count/scalar_count.3.ast
index bbd01a0..0721a90 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count/scalar_count.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count/scalar_count.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count_null/scalar_count_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count_null/scalar_count_null.3.ast
index 56e6061..395e913 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count_null/scalar_count_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_count_null/scalar_count_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.count@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max/scalar_max.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max/scalar_max.3.ast
index ccc7579..1643023 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max/scalar_max.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max/scalar_max.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -103,13 +103,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max_null/scalar_max_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max_null/scalar_max_null.3.ast
index de3f4ca..ce0ddd7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max_null/scalar_max_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_max_null/scalar_max_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -110,13 +110,13 @@
   :=
   FunctionCall asterix.max@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min/scalar_min.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min/scalar_min.3.ast
index 0aa087f..e0baf2a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min/scalar_min.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min/scalar_min.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -103,13 +103,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min_null/scalar_min_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min_null/scalar_min_null.3.ast
index 3346789..c2e2783 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min_null/scalar_min_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_min_null/scalar_min_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -110,13 +110,13 @@
   :=
   FunctionCall asterix.min@1[
     OrderedListConstructor [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-03-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-02-01T00:00:00Z]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum/scalar_sum.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum/scalar_sum.3.ast
index 58bb3ca..defe2fa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum/scalar_sum.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum/scalar_sum.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -19,13 +19,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -34,13 +34,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -49,13 +49,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -64,13 +64,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -79,13 +79,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum_null/scalar_sum_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum_null/scalar_sum_null.3.ast
index 30cccae..87d6e04 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum_null/scalar_sum_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_sum_null/scalar_sum_null.3.ast
@@ -4,13 +4,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -20,13 +20,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -36,13 +36,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -52,13 +52,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -68,13 +68,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
@@ -84,13 +84,13 @@
   :=
   FunctionCall asterix.sum@1[
     OrderedListConstructor [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2]
       ]
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_float/sum_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_float/sum_float.3.ast
index f391452..8ca6b1b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_float/sum_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_float/sum_float.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int16/sum_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int16/sum_int16.3.ast
index 18be6bb..789e221 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int16/sum_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int16/sum_int16.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int16@1[
+        FunctionCall asterix.int16@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int32/sum_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int32/sum_int32.3.ast
index df28ba6..7677d97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int32/sum_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int32/sum_int32.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int32@1[
+        FunctionCall asterix.int32@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int64/sum_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int64/sum_int64.3.ast
index c9652ea..fba72d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int64/sum_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int64/sum_int64.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [1]
         ]
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [2]
         ]
-        FunctionCall test.int64@1[
+        FunctionCall asterix.int64@1[
           LiteralExpr [STRING] [3]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int8/sum_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int8/sum_int8.3.ast
index 8cd57a7..121702c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int8/sum_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_int8/sum_int8.3.ast
@@ -7,13 +7,13 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
-        FunctionCall test.int8@1[
+        FunctionCall asterix.int8@1[
           LiteralExpr [STRING] [100]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_mixed/sum_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_mixed/sum_mixed.3.ast
index e849c4e..471fbe0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_mixed/sum_mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/sum_mixed/sum_mixed.3.ast
@@ -6,12 +6,12 @@
     Variable [ Name=$x ]
     ]
     FROM [      OrderedListConstructor [
-        FunctionCall null.float@1[
+        FunctionCall asterix.float@1[
           LiteralExpr [STRING] [2.0]
         ]
         LiteralExpr [STRING] [hello world]
         LiteralExpr [LONG] [93847382783847382]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_groupby-2/big_object_groupby.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_groupby-2/big_object_groupby.3.ast
index 7ec7ccb..894dcb7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_groupby-2/big_object_groupby.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_groupby-2/big_object_groupby.3.ast
@@ -10,7 +10,7 @@
   (
     LiteralExpr [STRING] [length]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       Variable [ Name=$comment ]
     ]
   )
@@ -47,7 +47,7 @@
 Orderby
   Variable [ Name=$id ]
   ASC
-  FunctionCall test.string-length@1[
+  FunctionCall asterix.string-length@1[
     Variable [ Name=$comment ]
   ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_join/big_object_join.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_join/big_object_join.3.ast
index 1fa4750..483250c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_join/big_object_join.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_join/big_object_join.3.ast
@@ -21,7 +21,7 @@
   (
     LiteralExpr [STRING] [len_c_comment]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$c ]
         Field=c_comment
@@ -31,7 +31,7 @@
   (
     LiteralExpr [STRING] [len_o_comment]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=o_comment
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_sort/big_object_sort.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_sort/big_object_sort.3.ast
index 8ef1dc5..31b8b5b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_sort/big_object_sort.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/big-object/big_object_sort/big_object_sort.3.ast
@@ -21,7 +21,7 @@
   (
     LiteralExpr [STRING] [len-comment]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=o_comment
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/concat/concat_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/concat/concat_01.3.ast
index b481603..2bd7c50 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/concat/concat_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/concat/concat_01.3.ast
@@ -2,65 +2,65 @@
 Query:
 OrderedListConstructor [
   OperatorExpr [
-    FunctionCall test.binary-concat@1[
+    FunctionCall asterix.binary-concat@1[
       OrderedListConstructor [
-        FunctionCall test.hex@1[
+        FunctionCall asterix.hex@1[
           LiteralExpr [STRING] [aa]
         ]
-        FunctionCall test.hex@1[
+        FunctionCall asterix.hex@1[
           LiteralExpr [STRING] [259911]
         ]
-        FunctionCall test.hex@1[
+        FunctionCall asterix.hex@1[
           LiteralExpr [STRING] [bb]
         ]
-        FunctionCall test.hex@1[
+        FunctionCall asterix.hex@1[
           LiteralExpr [STRING] [31]
         ]
       ]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [AA259911bb31]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.binary-concat@1[
+    FunctionCall asterix.binary-concat@1[
       OrderedListConstructor [
       ]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
-  FunctionCall test.binary-concat@1[
+  FunctionCall asterix.binary-concat@1[
     OrderedListConstructor [
       LiteralExpr [NULL]
     ]
   ]
-  FunctionCall test.binary-concat@1[
+  FunctionCall asterix.binary-concat@1[
     OrderedListConstructor [
       LiteralExpr [NULL]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [55]
       ]
     ]
   ]
-  FunctionCall test.binary-concat@1[
+  FunctionCall asterix.binary-concat@1[
     OrderedListConstructor [
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aa]
       ]
       LiteralExpr [NULL]
     ]
   ]
-  FunctionCall test.binary-concat@1[
+  FunctionCall asterix.binary-concat@1[
     OrderedListConstructor [
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aa]
       ]
       LiteralExpr [NULL]
-      FunctionCall test.base64@1[
+      FunctionCall asterix.base64@1[
         LiteralExpr [STRING] [asdf]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/find/find.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/find/find.3.ast
index 813591c..c24ad58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/find/find.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/find/find.3.ast
@@ -2,11 +2,11 @@
 Query:
 OrderedListConstructor [
   OperatorExpr [
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] []
       ]
     ]
@@ -14,11 +14,11 @@
     LiteralExpr [LONG] [0]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aa]
       ]
     ]
@@ -26,11 +26,11 @@
     LiteralExpr [LONG] [0]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aa]
       ]
       LiteralExpr [LONG] [1]
@@ -39,31 +39,31 @@
     LiteralExpr [LONG] [4]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabb]
       ]
       - LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabb]
       ]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [11]
       ]
     ]
@@ -71,11 +71,11 @@
     - LiteralExpr [LONG] [1]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [ccddaa]
       ]
     ]
@@ -83,30 +83,30 @@
     LiteralExpr [LONG] [2]
   ]
   OperatorExpr [
-    FunctionCall test.find-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.find-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccddaa]
       ]
-      FunctionCall test.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [ccddaabb]
       ]
     ]
     =
     - LiteralExpr [LONG] [1]
   ]
-  FunctionCall test.find-binary@2[
-    FunctionCall test.hex@1[
+  FunctionCall asterix.find-binary@2[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccddaa]
     ]
     LiteralExpr [NULL]
   ]
-  FunctionCall test.find-binary@2[
+  FunctionCall asterix.find-binary@2[
     LiteralExpr [NULL]
     LiteralExpr [NULL]
   ]
-  FunctionCall test.find-binary@2[
+  FunctionCall asterix.find-binary@2[
     LiteralExpr [NULL]
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccddaa]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/length/length.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/length/length.3.ast
index 8942f96..c8d1db6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/length/length.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/length/length.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.binary-length@1[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.binary-length@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [00AA]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.binary-length@1[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.binary-length@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] []
       ]
     ]
@@ -22,7 +22,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.binary-length@1[
+    FunctionCall asterix.binary-length@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/parse/parse.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/parse/parse.3.ast
index 5613753..99ffffd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/parse/parse.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/parse/parse.3.ast
@@ -1,43 +1,43 @@
 DataverseUse test
 Query:
 OrderedListConstructor [
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [ABCDEF0123456789]
     LiteralExpr [STRING] [hex]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [abcdef0123456789]
     LiteralExpr [STRING] [HEX]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [0A0B0C0D0E0F]
     LiteralExpr [STRING] [hEx]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [01020304050607080900]
     LiteralExpr [STRING] [hex]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] []
     LiteralExpr [STRING] [hex]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM+/]
     LiteralExpr [STRING] [base64]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] []
     LiteralExpr [STRING] [base64]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [QXN0ZXJpeA==]
     LiteralExpr [STRING] [BASE64]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [QXN0ZXJpeAE=]
     LiteralExpr [STRING] [baSE64]
   ]
-  FunctionCall test.parse-binary@2[
+  FunctionCall asterix.parse-binary@2[
     LiteralExpr [STRING] [QXN0ZXJpeAE8]
     LiteralExpr [STRING] [base64]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/print/print.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/print/print.3.ast
index 91609e5..e42bb37 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/print/print.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/print/print.3.ast
@@ -7,8 +7,8 @@
     (
       SELECT ELEMENT [
       OperatorExpr [
-        FunctionCall test.print-binary@2[
-          FunctionCall test.parse-binary@2[
+        FunctionCall asterix.print-binary@2[
+          FunctionCall asterix.parse-binary@2[
             Variable [ Name=$i ]
             LiteralExpr [STRING] [hex]
           ]
@@ -34,8 +34,8 @@
     (
       SELECT ELEMENT [
       OperatorExpr [
-        FunctionCall test.print-binary@2[
-          FunctionCall test.parse-binary@2[
+        FunctionCall asterix.print-binary@2[
+          FunctionCall asterix.parse-binary@2[
             Variable [ Name=$j ]
             LiteralExpr [STRING] [base64]
           ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/subbinary/subbinary_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/subbinary/subbinary_01.3.ast
index 5a232ae..4c52f44 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/subbinary/subbinary_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/binary/subbinary/subbinary_01.3.ast
@@ -2,182 +2,182 @@
 Query:
 OrderedListConstructor [
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] []
       ]
       LiteralExpr [LONG] [0]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] []
       ]
       LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] []
       ]
       - LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [0]
-      FunctionCall test.binary-length@1[
-        FunctionCall test.hex@1[
+      FunctionCall asterix.binary-length@1[
+        FunctionCall asterix.hex@1[
           LiteralExpr [STRING] [aabbccdd]
         ]
       ]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [bb]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [bbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [4]
       LiteralExpr [LONG] [0]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [3]
       LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [dd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [bbcc]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [0]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@2[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@2[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       - LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [256]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [aabbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [256]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [bbccdd]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.sub-binary@3[
-      FunctionCall test.hex@1[
+    FunctionCall asterix.sub-binary@3[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [aabbccdd]
       ]
       LiteralExpr [LONG] [1]
       - LiteralExpr [LONG] [1]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] []
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/boolean/and_01/and_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/boolean/and_01/and_01.3.ast
index 85aa549..04666b2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/boolean/and_01/and_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/boolean/and_01/and_01.3.ast
@@ -1,11 +1,11 @@
 DataverseUse test
 Query:
 OperatorExpr [
-  FunctionCall test.boolean@1[
+  FunctionCall asterix.boolean@1[
     LiteralExpr [STRING] [true]
   ]
   and
-  FunctionCall test.boolean@1[
+  FunctionCall asterix.boolean@1[
     LiteralExpr [STRING] [false]
   ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary/binary.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary/binary.3.ast
index 854f0ba..ba2bef5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary/binary.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary/binary.3.ast
@@ -2,146 +2,146 @@
 Query:
 OrderedListConstructor [
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     >
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     >=
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     <
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     <=
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     =
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     !=
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     >
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     >=
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     <
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     <=
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     =
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
     !=
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     =
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
     =
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0A0A]
     ]
     =
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cw==]
     ]
   ]
   OperatorExpr [
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [0B]
     ]
     =
-    FunctionCall test.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [Cgo=]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary_null/binary_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary_null/binary_null.1.ast
index ee79f0c..03c8b0d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary_null/binary_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/binary_null/binary_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.hex@1[
+      FunctionCall asterix.hex@1[
         LiteralExpr [STRING] [AA]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_order/datetime_order.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_order/datetime_order.3.ast
index 491637d..8cf70af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_order/datetime_order.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_order/datetime_order.3.ast
@@ -2,57 +2,57 @@
 Query:
 Let Variable [ Name=$dt1 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2011-12-31T14:00:00-10:00]
   ]
 Let Variable [ Name=$dt2 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2012-01-01T00:00:00Z]
   ]
 Let Variable [ Name=$dt3 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2005-01-01T00:00:00+04:00]
   ]
 Let Variable [ Name=$dt4 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2011-12-31T13:00:00-11:00]
   ]
 Let Variable [ Name=$dt5 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2012-04-06T00:00:00Z]
   ]
 Let Variable [ Name=$dt6 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [-1937-07-07T23:00:00+08:00]
   ]
 Let Variable [ Name=$dt7 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [-1600-03-01T00:00:00.384+06:00]
   ]
 Let Variable [ Name=$dt8 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [-1600-02-29T23:59:59.999Z]
   ]
 Let Variable [ Name=$dt9 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2000-02-29T23:59:59.999Z]
   ]
 Let Variable [ Name=$dt10 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [2000-03-01T01:59:59.999+07:00]
   ]
 Let Variable [ Name=$dt11 ]
   :=
-  FunctionCall test.datetime@1[
+  FunctionCall asterix.datetime@1[
     LiteralExpr [STRING] [-1600-03-01T00:00:00.384-06:00]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_range/datetime_range.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_range/datetime_range.3.ast
index f9148b3..fdce3c7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_range/datetime_range.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_range/datetime_range.3.ast
@@ -25,7 +25,7 @@
         Field=time
       ]
       >
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-05-15T16:00:00Z]
       ]
     ]
@@ -36,7 +36,7 @@
         Field=time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-05-15T21:59:59Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_tzeq/datetime_tzeq.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_tzeq/datetime_tzeq.3.ast
index 2cef895..2431972 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_tzeq/datetime_tzeq.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/datetime_tzeq/datetime_tzeq.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-12-31T14:00:00-10:00]
       ]
       =
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-01-01T00:00:00Z]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2000-03-01T02:00:00+04:00]
       ]
       =
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2000-02-29T22:00:00Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double/double.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double/double.3.ast
index 2cea57c..fae7ef1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double/double.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double/double.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       <
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       <=
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double_null/double_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double_null/double_null.1.ast
index 4b99024..922f419 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double_null/double_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/double_null/double_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float/float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float/float.3.ast
index 4e4c32a..5193a2d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float/float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float/float.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       <
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       <=
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float_null/float_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float_null/float_null.1.ast
index 42c1496..c200a75 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float_null/float_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/float_null/float_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16/int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16/int16.3.ast
index d13d5f5..d995083 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16/int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16/int16.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       <
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       <=
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16_null/int16_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16_null/int16_null.1.ast
index 5573145..21428e8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16_null/int16_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int16_null/int16_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32/int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32/int32.3.ast
index 5be4493..07c6a1d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32/int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32/int32.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       <
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       <=
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32_null/int32_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32_null/int32_null.1.ast
index c73d562..23bb974 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32_null/int32_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int32_null/int32_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64/int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64/int64.3.ast
index d6bf81b..08cb2be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64/int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64/int64.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       <=
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       <
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64_null/int64_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64_null/int64_null.1.ast
index 0866ec0..822579c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64_null/int64_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int64_null/int64_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8/int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8/int8.3.ast
index 1580aee..c98865f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8/int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8/int8.3.ast
@@ -5,11 +5,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       >
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -18,11 +18,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       >=
-      FunctionCall test.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       <
-      FunctionCall test.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -44,11 +44,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       <=
-      FunctionCall test.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -57,11 +57,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       =
-      FunctionCall test.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -70,11 +70,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall test.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       !=
-      FunctionCall test.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8_null/int8_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8_null/int8_null.1.ast
index 82e3aae..e4d4e38 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8_null/int8_null.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/int8_null/int8_null.1.ast
@@ -4,7 +4,7 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       >
@@ -17,7 +17,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       >=
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -26,7 +26,7 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       <
@@ -39,7 +39,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       <=
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
@@ -48,7 +48,7 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
       =
@@ -61,7 +61,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       !=
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [3]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_equality/issue363_equality.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_equality/issue363_equality.3.ast
index 5bf9603..edbbefb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_equality/issue363_equality.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_equality/issue363_equality.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [duration]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
       =
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [year-month-duration]
     :
     OperatorExpr [
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P3Y6M]
       ]
       =
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P3Y6M]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [day-time-duration]
     :
     OperatorExpr [
-      FunctionCall null.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P3DT9H5M2.348S]
       ]
       =
-      FunctionCall null.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P3DT9H5M2.348S]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [point]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
       =
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [line]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       =
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [polygon]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       =
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
@@ -82,11 +82,11 @@
     LiteralExpr [STRING] [circle]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
       =
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
     ]
@@ -95,11 +95,11 @@
     LiteralExpr [STRING] [rectangle]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
       =
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
     ]
@@ -108,20 +108,20 @@
     LiteralExpr [STRING] [interval]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       =
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
@@ -131,11 +131,11 @@
     LiteralExpr [STRING] [duration2]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
       !=
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P4Y6M3DT9H5M2.348S]
       ]
     ]
@@ -144,11 +144,11 @@
     LiteralExpr [STRING] [year-month-duration2]
     :
     OperatorExpr [
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P3Y6M]
       ]
       !=
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P3Y7M]
       ]
     ]
@@ -157,11 +157,11 @@
     LiteralExpr [STRING] [day-time-duration2]
     :
     OperatorExpr [
-      FunctionCall null.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P3DT9H5M2.348S]
       ]
       !=
-      FunctionCall null.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P3DT1H5M2.348S]
       ]
     ]
@@ -170,11 +170,11 @@
     LiteralExpr [STRING] [point2]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
       !=
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.4444,80.65]
       ]
     ]
@@ -183,11 +183,11 @@
     LiteralExpr [STRING] [line2]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       !=
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.5678,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
@@ -196,11 +196,11 @@
     LiteralExpr [STRING] [polygon2]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       !=
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.19E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
@@ -209,11 +209,11 @@
     LiteralExpr [STRING] [circle2]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
       !=
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 +10.5E-2]
       ]
     ]
@@ -222,11 +222,11 @@
     LiteralExpr [STRING] [rectangle2]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
       !=
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 5.5487,0.48765]
       ]
     ]
@@ -235,20 +235,20 @@
     LiteralExpr [STRING] [interval2]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       !=
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1983-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_circle/issue363_inequality_circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_circle/issue363_inequality_circle.3.ast
index 968e627..4134cc4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_circle/issue363_inequality_circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_circle/issue363_inequality_circle.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [circle0]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
       >
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 +10.5E-2]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [circle1]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 +10.5E-2]
       ]
       <
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [circle2]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
       >=
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 +10.5E-2]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [circle3]
     :
     OperatorExpr [
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 +10.5E-2]
       ]
       <=
-      FunctionCall null.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_duration/issue363_inequality_duration.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_duration/issue363_inequality_duration.3.ast
index 49251c6..b306672 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_duration/issue363_inequality_duration.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_duration/issue363_inequality_duration.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [duration0]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y6M3DT9H5M2.348S]
       ]
       >
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [duration1]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
       <
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y6M3DT9H5M2.348S]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [duration2]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y6M3DT9H5M2.348S]
       ]
       >=
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [duration3]
     :
     OperatorExpr [
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y6M3DT9H5M2.348S]
       ]
       <=
-      FunctionCall null.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y6M3DT9H5M2.348S]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_interval/issue363_inequality_interval.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_interval/issue363_inequality_interval.3.ast
index e59b50f..8b99251 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_interval/issue363_inequality_interval.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_interval/issue363_inequality_interval.3.ast
@@ -4,20 +4,20 @@
     LiteralExpr [STRING] [interval0]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       >
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1983-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
@@ -27,20 +27,20 @@
     LiteralExpr [STRING] [interval1]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1983-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       <
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
@@ -50,20 +50,20 @@
     LiteralExpr [STRING] [interval2]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       >=
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1983-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
@@ -73,20 +73,20 @@
     LiteralExpr [STRING] [interval3]
     :
     OperatorExpr [
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1983-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
       <=
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [19991112T124935948-0700]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_line/issue363_inequality_line.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_line/issue363_inequality_line.3.ast
index 12ca8bd..8a41c81 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_line/issue363_inequality_line.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_line/issue363_inequality_line.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [line0]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       >
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [line1]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       <
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [line2]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       >=
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [line3]
     :
     OperatorExpr [
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
       <=
-      FunctionCall null.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_point/issue363_inequality_point.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_point/issue363_inequality_point.3.ast
index 23b6cbc..fc8dace 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_point/issue363_inequality_point.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_point/issue363_inequality_point.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [point0]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
       >
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.4444,80.65]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [point1]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.4444,80.65]
       ]
       <
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [point2]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
       >=
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.4444,80.65]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [point3]
     :
     OperatorExpr [
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.4444,80.65]
       ]
       <=
-      FunctionCall null.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [47.44,80.65]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_polygon/issue363_inequality_polygon.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_polygon/issue363_inequality_polygon.3.ast
index 6bf50b5..f4f1cb9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_polygon/issue363_inequality_polygon.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_polygon/issue363_inequality_polygon.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [polygon0]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       >
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.19E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [polygon1]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.19E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       <
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [polygon2]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       >=
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.19E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [polygon3]
     :
     OperatorExpr [
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.19E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
       <=
-      FunctionCall null.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_rectangle/issue363_inequality_rectangle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_rectangle/issue363_inequality_rectangle.3.ast
index ba93efa..241edf6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_rectangle/issue363_inequality_rectangle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/issue363_inequality_rectangle/issue363_inequality_rectangle.3.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [rectangle0]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
       >
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 5.5487,0.48765]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [rectangle1]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 5.5487,0.48765]
       ]
       <
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [rectangle2]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
       >=
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 5.5487,0.48765]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [rectangle3]
     :
     OperatorExpr [
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.5678,-1.00e-10 5.5487,0.48765]
       ]
       <=
-      FunctionCall null.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/year_month_duration_order/year_month_duration_order.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/year_month_duration_order/year_month_duration_order.3.ast
index 3d1f63c..955c22c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/year_month_duration_order/year_month_duration_order.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/comparison/year_month_duration_order/year_month_duration_order.3.ast
@@ -2,22 +2,22 @@
 Query:
 Let Variable [ Name=$dr1 ]
   :=
-  FunctionCall test.year-month-duration@1[
+  FunctionCall asterix.year-month-duration@1[
     LiteralExpr [STRING] [P439Y]
   ]
 Let Variable [ Name=$dr2 ]
   :=
-  FunctionCall test.year-month-duration@1[
+  FunctionCall asterix.year-month-duration@1[
     LiteralExpr [STRING] [-P328M]
   ]
 Let Variable [ Name=$dr3 ]
   :=
-  FunctionCall test.year-month-duration@1[
+  FunctionCall asterix.year-month-duration@1[
     LiteralExpr [STRING] [-P48Y12M]
   ]
 Let Variable [ Name=$dr4 ]
   :=
-  FunctionCall test.year-month-duration@1[
+  FunctionCall asterix.year-month-duration@1[
     LiteralExpr [STRING] [P12M]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/binary_01/binary_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/binary_01/binary_01.3.ast
index f099319..a4d112a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/binary_01/binary_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/binary_01/binary_01.3.ast
@@ -1,43 +1,43 @@
 DataverseUse test
 Query:
 OrderedListConstructor [
-  FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
     LiteralExpr [STRING] [ABCDEF0123456789]
   ]
-  FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
     LiteralExpr [STRING] [abcdef0123456789]
   ]
-  FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
     LiteralExpr [STRING] [0A0B0C0D0E0F]
   ]
-  FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
     LiteralExpr [STRING] [01020304050607080900]
   ]
-  FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
     LiteralExpr [STRING] []
   ]
-  FunctionCall test.hex@1[
-    FunctionCall test.hex@1[
+  FunctionCall asterix.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [ABCDEF0123456789]
     ]
   ]
-  FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
     LiteralExpr [STRING] [0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM+/]
   ]
-  FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
     LiteralExpr [STRING] []
   ]
-  FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
     LiteralExpr [STRING] [QXN0ZXJpeA==]
   ]
-  FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
     LiteralExpr [STRING] [QXN0ZXJpeAE=]
   ]
-  FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
     LiteralExpr [STRING] [QXN0ZXJpeAE8]
   ]
-  FunctionCall test.base64@1[
-    FunctionCall test.base64@1[
+  FunctionCall asterix.base64@1[
+    FunctionCall asterix.base64@1[
       LiteralExpr [STRING] [QXN0ZXJpeAE8]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/boolean_01/boolean_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/boolean_01/boolean_01.3.ast
index f247b92..f2b6571 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/boolean_01/boolean_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/boolean_01/boolean_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [boolean1]
     :
-    FunctionCall test.boolean@1[
+    FunctionCall asterix.boolean@1[
       LiteralExpr [STRING] [true]
     ]
   )
   (
     LiteralExpr [STRING] [boolean2]
     :
-    FunctionCall test.boolean@1[
+    FunctionCall asterix.boolean@1[
       LiteralExpr [STRING] [false]
     ]
   )
   (
     LiteralExpr [STRING] [boolean3]
     :
-    FunctionCall test.boolean@1[
-      FunctionCall test.boolean@1[
+    FunctionCall asterix.boolean@1[
+      FunctionCall asterix.boolean@1[
         LiteralExpr [STRING] [false]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/circle_01/circle_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/circle_01/circle_01.3.ast
index f8be79e..66f3752 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/circle_01/circle_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/circle_01/circle_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [circle1]
     :
-    FunctionCall test.circle@1[
+    FunctionCall asterix.circle@1[
       LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2]
     ]
   )
   (
     LiteralExpr [STRING] [circle2]
     :
-    FunctionCall test.circle@1[
+    FunctionCall asterix.circle@1[
       LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
     ]
   )
   (
     LiteralExpr [STRING] [circle3]
     :
-    FunctionCall test.circle@1[
-      FunctionCall test.circle@1[
+    FunctionCall asterix.circle@1[
+      FunctionCall asterix.circle@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/date_01/date_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/date_01/date_01.3.ast
index b54c957..93eda8c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/date_01/date_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/date_01/date_01.3.ast
@@ -4,78 +4,78 @@
   (
     LiteralExpr [STRING] [date1]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-10-30]
     ]
   )
   (
     LiteralExpr [STRING] [date2]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [1987-11-19]
     ]
   )
   (
     LiteralExpr [STRING] [date3]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [-1987-11-19]
     ]
   )
   (
     LiteralExpr [STRING] [date4]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [0001-12-27]
     ]
   )
   (
     LiteralExpr [STRING] [date5]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [-1951-12-27]
     ]
   )
   (
     LiteralExpr [STRING] [date6]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [-2043-11-19]
     ]
   )
   (
     LiteralExpr [STRING] [date7]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [-19280329]
     ]
   )
   (
     LiteralExpr [STRING] [date8]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [19280329]
     ]
   )
   (
     LiteralExpr [STRING] [date9]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [19000228]
     ]
   )
   (
     LiteralExpr [STRING] [date10]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [20000229]
     ]
   )
   (
     LiteralExpr [STRING] [date11]
     :
-    FunctionCall test.date@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [20000229]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/datetime_01/datetime_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/datetime_01/datetime_01.3.ast
index 7b80fb1..cbe87ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/datetime_01/datetime_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/datetime_01/datetime_01.3.ast
@@ -4,106 +4,106 @@
   (
     LiteralExpr [STRING] [datetime1]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2010-10-30T10:50:56.999+05:45]
     ]
   )
   (
     LiteralExpr [STRING] [datetime2]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2010-10-30T10:30:56.250-10:00]
     ]
   )
   (
     LiteralExpr [STRING] [datetime3]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [1987-11-19T09:20:00.200Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime4]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [1987-11-19T10:50:56Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime5]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-1987-11-19T10:50:56.099-05:30]
     ]
   )
   (
     LiteralExpr [STRING] [datetime6]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-0001-11-19T10:50:56.719Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime7]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [1951-12-27T12:20:15Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime8]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2043-11-19T10:50:56.719Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime9]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280329T174937374-0630]
     ]
   )
   (
     LiteralExpr [STRING] [datetime10]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280329T174937374+0630]
     ]
   )
   (
     LiteralExpr [STRING] [datetime11]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280329T174937374]
     ]
   )
   (
     LiteralExpr [STRING] [datetime12]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280329T174937374+0630]
     ]
   )
   (
     LiteralExpr [STRING] [datetime13]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280329T17493737+0630]
     ]
   )
   (
     LiteralExpr [STRING] [datetime14]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19280301T05493737+0630]
     ]
   )
   (
     LiteralExpr [STRING] [datetime15]
     :
-    FunctionCall test.datetime@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-19280301T05493737+0630]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/double_01/double_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/double_01/double_01.3.ast
index 903775c..ef36c04 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/double_01/double_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/double_01/double_01.3.ast
@@ -4,50 +4,50 @@
   (
     LiteralExpr [STRING] [double1]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [NaN]
     ]
   )
   (
     LiteralExpr [STRING] [double2]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [INF]
     ]
   )
   (
     LiteralExpr [STRING] [double3]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [-INF]
     ]
   )
   (
     LiteralExpr [STRING] [double4]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [-80.20d]
     ]
   )
   (
     LiteralExpr [STRING] [double5]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [-20.56e-30]
     ]
   )
   (
     LiteralExpr [STRING] [double6]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [-20.56e-300]
     ]
   )
   (
     LiteralExpr [STRING] [double7]
     :
-    FunctionCall test.double@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.56e-300]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_01/duration_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_01/duration_01.3.ast
index 566d8d2..d65e33c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_01/duration_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_01/duration_01.3.ast
@@ -4,92 +4,92 @@
   (
     LiteralExpr [STRING] [duration1]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P30Y10M25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration2]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration3]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [PT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration4]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P30YT12MS]
     ]
   )
   (
     LiteralExpr [STRING] [duration5]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [PT13H]
     ]
   )
   (
     LiteralExpr [STRING] [duration6]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [-P30Y10M25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration7]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [-P25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration8]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [-PT13H50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration9]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P120D]
     ]
   )
   (
     LiteralExpr [STRING] [duration10]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [-P28M]
     ]
   )
   (
     LiteralExpr [STRING] [duration11]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [PT29M90.937S]
     ]
   )
   (
     LiteralExpr [STRING] [duration12]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P300Y15M60DT300H98M482.435S]
     ]
   )
   (
     LiteralExpr [STRING] [duration13]
     :
-    FunctionCall test.duration@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y15M60DT300H98M482.435S]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_02/duration_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_02/duration_02.3.ast
index 5ef3343..e615b56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_02/duration_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/duration_02/duration_02.3.ast
@@ -4,92 +4,92 @@
   (
     LiteralExpr [STRING] [duration1]
     :
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [P30Y10M]
     ]
   )
   (
     LiteralExpr [STRING] [duration2]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [P25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration3]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration4]
     :
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [P30Y]
     ]
   )
   (
     LiteralExpr [STRING] [duration5]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT13H]
     ]
   )
   (
     LiteralExpr [STRING] [duration6]
     :
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [-P30Y10M]
     ]
   )
   (
     LiteralExpr [STRING] [duration7]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [-P25DT13H12M50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration8]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [-PT13H50S]
     ]
   )
   (
     LiteralExpr [STRING] [duration9]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [P120D]
     ]
   )
   (
     LiteralExpr [STRING] [duration10]
     :
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [-P28M]
     ]
   )
   (
     LiteralExpr [STRING] [duration11]
     :
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT29M90.937S]
     ]
   )
   (
     LiteralExpr [STRING] [duration12]
     :
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [P300Y15M]
     ]
   )
   (
     LiteralExpr [STRING] [duration13]
     :
-    FunctionCall test.year-month-duration@1[
-      FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P300Y15M]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/float_01/float_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/float_01/float_01.3.ast
index caf9745..6a8e42b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/float_01/float_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/float_01/float_01.3.ast
@@ -4,43 +4,43 @@
   (
     LiteralExpr [STRING] [float1]
     :
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [NaN]
     ]
   )
   (
     LiteralExpr [STRING] [float2]
     :
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [INF]
     ]
   )
   (
     LiteralExpr [STRING] [float3]
     :
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [-INF]
     ]
   )
   (
     LiteralExpr [STRING] [float4]
     :
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [-80.20]
     ]
   )
   (
     LiteralExpr [STRING] [float5]
     :
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [-20.56e-30]
     ]
   )
   (
     LiteralExpr [STRING] [float6]
     :
-    FunctionCall test.float@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/int_01/int_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/int_01/int_01.3.ast
index 1ee39a1..e346cec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/int_01/int_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/int_01/int_01.3.ast
@@ -4,71 +4,71 @@
   (
     LiteralExpr [STRING] [int8]
     :
-    FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [+80i8]
     ]
   )
   (
     LiteralExpr [STRING] [int16]
     :
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [160]
     ]
   )
   (
     LiteralExpr [STRING] [int32]
     :
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [+320i32]
     ]
   )
   (
     LiteralExpr [STRING] [int64]
     :
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [640]
     ]
   )
   (
     LiteralExpr [STRING] [int8_2]
     :
-    FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [-80]
     ]
   )
   (
     LiteralExpr [STRING] [int16_2]
     :
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [-160i16]
     ]
   )
   (
     LiteralExpr [STRING] [int32_2]
     :
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [-320]
     ]
   )
   (
     LiteralExpr [STRING] [int64_2]
     :
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [-640i64]
     ]
   )
   (
     LiteralExpr [STRING] [int64_min]
     :
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [-9223372036854775808]
     ]
   )
   (
     LiteralExpr [STRING] [int8_3]
     :
-    FunctionCall test.int8@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+80i8]
       ]
     ]
@@ -76,8 +76,8 @@
   (
     LiteralExpr [STRING] [int16_3]
     :
-    FunctionCall test.int16@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [160]
       ]
     ]
@@ -85,8 +85,8 @@
   (
     LiteralExpr [STRING] [int32_3]
     :
-    FunctionCall test.int32@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+320i32]
       ]
     ]
@@ -94,8 +94,8 @@
   (
     LiteralExpr [STRING] [int64_3]
     :
-    FunctionCall test.int64@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [640]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/interval/interval.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/interval/interval.3.ast
index c993fe1..600bdee 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/interval/interval.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/interval/interval.3.ast
@@ -4,11 +4,11 @@
   (
     LiteralExpr [STRING] [interval41]
     :
-    FunctionCall test.interval-start-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-start-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [0001-12-27]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y394DT48H398.483S]
       ]
     ]
@@ -16,9 +16,9 @@
   (
     LiteralExpr [STRING] [interval42]
     :
-    FunctionCall test.interval-start-from-date@2[
+    FunctionCall asterix.interval-start-from-date@2[
       LiteralExpr [STRING] [0001-12-27]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y394DT48H398.483S]
       ]
     ]
@@ -26,8 +26,8 @@
   (
     LiteralExpr [STRING] [interval43]
     :
-    FunctionCall test.interval-start-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-start-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [0001-12-27]
       ]
       LiteralExpr [STRING] [P3Y394DT48H398.483S]
@@ -36,7 +36,7 @@
   (
     LiteralExpr [STRING] [interval44]
     :
-    FunctionCall test.interval-start-from-date@2[
+    FunctionCall asterix.interval-start-from-date@2[
       LiteralExpr [STRING] [0001-12-27]
       LiteralExpr [STRING] [P3Y394DT48H398.483S]
     ]
@@ -44,9 +44,9 @@
   (
     LiteralExpr [STRING] [interval45]
     :
-    FunctionCall test.interval-start-from-date@2[
+    FunctionCall asterix.interval-start-from-date@2[
       LiteralExpr [NULL]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y394DT48H398.483S]
       ]
     ]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [interval46]
     :
-    FunctionCall test.interval-start-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-start-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [0001-12-27]
       ]
       LiteralExpr [NULL]
@@ -64,11 +64,11 @@
   (
     LiteralExpr [STRING] [interval51]
     :
-    FunctionCall test.interval-start-from-time@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval-start-from-time@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [20:03:20.948]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P60DT48M389.938S]
       ]
     ]
@@ -76,9 +76,9 @@
   (
     LiteralExpr [STRING] [interval52]
     :
-    FunctionCall test.interval-start-from-time@2[
+    FunctionCall asterix.interval-start-from-time@2[
       LiteralExpr [STRING] [20:03:20.948]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P60DT48M389.938S]
       ]
     ]
@@ -86,8 +86,8 @@
   (
     LiteralExpr [STRING] [interval53]
     :
-    FunctionCall test.interval-start-from-time@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval-start-from-time@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [20:03:20.948]
       ]
       LiteralExpr [STRING] [P60DT48M389.938S]
@@ -96,7 +96,7 @@
   (
     LiteralExpr [STRING] [interval54]
     :
-    FunctionCall test.interval-start-from-time@2[
+    FunctionCall asterix.interval-start-from-time@2[
       LiteralExpr [STRING] [20:03:20.948]
       LiteralExpr [STRING] [P60DT48M389.938S]
     ]
@@ -104,9 +104,9 @@
   (
     LiteralExpr [STRING] [interval55]
     :
-    FunctionCall test.interval-start-from-time@2[
+    FunctionCall asterix.interval-start-from-time@2[
       LiteralExpr [NULL]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P60DT48M389.938S]
       ]
     ]
@@ -114,8 +114,8 @@
   (
     LiteralExpr [STRING] [interval56]
     :
-    FunctionCall test.interval-start-from-time@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval-start-from-time@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [20:03:20.948]
       ]
       LiteralExpr [NULL]
@@ -124,11 +124,11 @@
   (
     LiteralExpr [STRING] [interval61]
     :
-    FunctionCall test.interval-start-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval-start-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-2043-11-19T15:32:39.293]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P439Y3M20DT20H39M58.949S]
       ]
     ]
@@ -136,9 +136,9 @@
   (
     LiteralExpr [STRING] [interval62]
     :
-    FunctionCall test.interval-start-from-datetime@2[
+    FunctionCall asterix.interval-start-from-datetime@2[
       LiteralExpr [STRING] [-2043-11-19T15:32:39.293]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P439Y3M20DT20H39M58.949S]
       ]
     ]
@@ -146,8 +146,8 @@
   (
     LiteralExpr [STRING] [interval63]
     :
-    FunctionCall test.interval-start-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval-start-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-2043-11-19T15:32:39.293]
       ]
       LiteralExpr [STRING] [P439Y3M20DT20H39M58.949S]
@@ -156,7 +156,7 @@
   (
     LiteralExpr [STRING] [interval64]
     :
-    FunctionCall test.interval-start-from-datetime@2[
+    FunctionCall asterix.interval-start-from-datetime@2[
       LiteralExpr [STRING] [-2043-11-19T15:32:39.293]
       LiteralExpr [STRING] [P439Y3M20DT20H39M58.949S]
     ]
@@ -164,9 +164,9 @@
   (
     LiteralExpr [STRING] [interval65]
     :
-    FunctionCall test.interval-start-from-datetime@2[
+    FunctionCall asterix.interval-start-from-datetime@2[
       LiteralExpr [NULL]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P439Y3M20DT20H39M58.949S]
       ]
     ]
@@ -174,8 +174,8 @@
   (
     LiteralExpr [STRING] [interval66]
     :
-    FunctionCall test.interval-start-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval-start-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-2043-11-19T15:32:39.293]
       ]
       LiteralExpr [NULL]
@@ -184,11 +184,11 @@
   (
     LiteralExpr [STRING] [interval71]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2012-10-21]
       ]
     ]
@@ -196,9 +196,9 @@
   (
     LiteralExpr [STRING] [interval72]
     :
-    FunctionCall test.interval@2[
+    FunctionCall asterix.interval@2[
       LiteralExpr [NULL]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2012-10-21]
       ]
     ]
@@ -206,8 +206,8 @@
   (
     LiteralExpr [STRING] [interval73]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
       LiteralExpr [NULL]
@@ -216,11 +216,11 @@
   (
     LiteralExpr [STRING] [interval74]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [03:04:05.678-11:00]
       ]
-      FunctionCall test.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [232425267+0200]
       ]
     ]
@@ -228,9 +228,9 @@
   (
     LiteralExpr [STRING] [interval75]
     :
-    FunctionCall test.interval@2[
+    FunctionCall asterix.interval@2[
       LiteralExpr [NULL]
-      FunctionCall test.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [232425267+0200]
       ]
     ]
@@ -238,8 +238,8 @@
   (
     LiteralExpr [STRING] [interval76]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [03:04:05.678-11:00]
       ]
       LiteralExpr [NULL]
@@ -248,11 +248,11 @@
   (
     LiteralExpr [STRING] [interval77]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19991112T124935948-0700]
       ]
     ]
@@ -260,9 +260,9 @@
   (
     LiteralExpr [STRING] [interval78]
     :
-    FunctionCall test.interval@2[
+    FunctionCall asterix.interval@2[
       LiteralExpr [NULL]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19991112T124935948-0700]
       ]
     ]
@@ -270,8 +270,8 @@
   (
     LiteralExpr [STRING] [interval79]
     :
-    FunctionCall test.interval@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1987-11-19T02:43:57.938+08:00]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/line_01/line_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/line_01/line_01.3.ast
index a9bcd9f..4ac56e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/line_01/line_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/line_01/line_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [line1]
     :
-    FunctionCall test.line@1[
+    FunctionCall asterix.line@1[
       LiteralExpr [STRING] [10.1234,11.1e-1 +10.2E-2,-11.22]
     ]
   )
   (
     LiteralExpr [STRING] [line2]
     :
-    FunctionCall test.line@1[
+    FunctionCall asterix.line@1[
       LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2,-01.02]
     ]
   )
   (
     LiteralExpr [STRING] [line3]
     :
-    FunctionCall test.line@1[
-      FunctionCall test.line@1[
+    FunctionCall asterix.line@1[
+      FunctionCall asterix.line@1[
         LiteralExpr [STRING] [0.1234,-1.00e-10 +10.5E-2,-01.02]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/point_01/point_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/point_01/point_01.3.ast
index cf0faa2..ae93fc2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/point_01/point_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/point_01/point_01.3.ast
@@ -4,36 +4,36 @@
   (
     LiteralExpr [STRING] [point1]
     :
-    FunctionCall test.point@1[
+    FunctionCall asterix.point@1[
       LiteralExpr [STRING] [80.10d, -10E5]
     ]
   )
   (
     LiteralExpr [STRING] [point3d1]
     :
-    FunctionCall test.point3d@1[
+    FunctionCall asterix.point3d@1[
       LiteralExpr [STRING] [5e2, -10E+5, +10.5e-10d]
     ]
   )
   (
     LiteralExpr [STRING] [point2]
     :
-    FunctionCall test.point@1[
+    FunctionCall asterix.point@1[
       LiteralExpr [STRING] [5.10E-10d, -10E5]
     ]
   )
   (
     LiteralExpr [STRING] [point3d2]
     :
-    FunctionCall test.point3d@1[
+    FunctionCall asterix.point3d@1[
       LiteralExpr [STRING] [0.5e+2d, -10.0E+5d, +10.05e-10]
     ]
   )
   (
     LiteralExpr [STRING] [point3]
     :
-    FunctionCall test.point@1[
-      FunctionCall test.point@1[
+    FunctionCall asterix.point@1[
+      FunctionCall asterix.point@1[
         LiteralExpr [STRING] [5.10E-10d, -10E5]
       ]
     ]
@@ -41,8 +41,8 @@
   (
     LiteralExpr [STRING] [point3d3]
     :
-    FunctionCall test.point3d@1[
-      FunctionCall test.point3d@1[
+    FunctionCall asterix.point3d@1[
+      FunctionCall asterix.point3d@1[
         LiteralExpr [STRING] [0.5e+2d, -10.0E+5d, +10.05e-10]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/polygon_01/polygon_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/polygon_01/polygon_01.3.ast
index ece41d9..22456e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/polygon_01/polygon_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/polygon_01/polygon_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [polygon1]
     :
-    FunctionCall test.polygon@1[
+    FunctionCall asterix.polygon@1[
       LiteralExpr [STRING] [-1.2,+1.3e2 -2.14E+5,2.15 -3.5e+2,03.6 -4.6E-3,+4.81]
     ]
   )
   (
     LiteralExpr [STRING] [polygon2]
     :
-    FunctionCall test.polygon@1[
+    FunctionCall asterix.polygon@1[
       LiteralExpr [STRING] [-1.0,+10.5e2 -02.15E+50,2.5 -1.0,+3.3e3 -2.50E+05,20.15 +3.5e+2,03.6 -4.60E-3,+4.75 -2,+1.0e2 -2.00E+5,20.10 30.5,03.25 -4.33E-3,+4.75]
     ]
   )
   (
     LiteralExpr [STRING] [polygon3]
     :
-    FunctionCall test.polygon@1[
-      FunctionCall test.polygon@1[
+    FunctionCall asterix.polygon@1[
+      FunctionCall asterix.polygon@1[
         LiteralExpr [STRING] [-1.2,+1.3e2 -2.14E+5,2.15 -3.5e+2,03.6 -4.6E-3,+4.81]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-01/primitive-01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-01/primitive-01.3.ast
index db232e1..34bca75 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-01/primitive-01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-01/primitive-01.3.ast
@@ -3,35 +3,35 @@
   (
     LiteralExpr [STRING] [$a]
     :
-    FunctionCall null.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [-127]
     ]
   )
   (
     LiteralExpr [STRING] [$b]
     :
-    FunctionCall null.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [127]
     ]
   )
   (
     LiteralExpr [STRING] [$c]
     :
-    FunctionCall null.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [0]
     ]
   )
   (
     LiteralExpr [STRING] [$d]
     :
-    FunctionCall null.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [1]
     ]
   )
   (
     LiteralExpr [STRING] [$e]
     :
-    FunctionCall null.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [-1]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-02/primitive-02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-02/primitive-02.3.ast
index 24e3507..5a662a0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-02/primitive-02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-02/primitive-02.3.ast
@@ -3,49 +3,49 @@
   (
     LiteralExpr [STRING] [$a]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [-32767]
     ]
   )
   (
     LiteralExpr [STRING] [$b]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [32767]
     ]
   )
   (
     LiteralExpr [STRING] [$c]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [0]
     ]
   )
   (
     LiteralExpr [STRING] [$d]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [1]
     ]
   )
   (
     LiteralExpr [STRING] [$e]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [-1]
     ]
   )
   (
     LiteralExpr [STRING] [$f]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [16383]
     ]
   )
   (
     LiteralExpr [STRING] [$g]
     :
-    FunctionCall null.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [-16383]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-03/primitive-03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-03/primitive-03.3.ast
index c46f250..b07b99a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-03/primitive-03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-03/primitive-03.3.ast
@@ -3,49 +3,49 @@
   (
     LiteralExpr [STRING] [$a]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [-2147483647]
     ]
   )
   (
     LiteralExpr [STRING] [$b]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [2147483647]
     ]
   )
   (
     LiteralExpr [STRING] [$c]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [0]
     ]
   )
   (
     LiteralExpr [STRING] [$d]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [1]
     ]
   )
   (
     LiteralExpr [STRING] [$e]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [-1]
     ]
   )
   (
     LiteralExpr [STRING] [$f]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [1073741828]
     ]
   )
   (
     LiteralExpr [STRING] [$g]
     :
-    FunctionCall null.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [-1073741828]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-04/primitive-04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-04/primitive-04.3.ast
index e2136d4..0cae729 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-04/primitive-04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/primitive-04/primitive-04.3.ast
@@ -3,49 +3,49 @@
   (
     LiteralExpr [STRING] [$a]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [9222872036854775809]
     ]
   )
   (
     LiteralExpr [STRING] [$b]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [-9222872036854775809]
     ]
   )
   (
     LiteralExpr [STRING] [$c]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [0]
     ]
   )
   (
     LiteralExpr [STRING] [$d]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [1]
     ]
   )
   (
     LiteralExpr [STRING] [$e]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [-1]
     ]
   )
   (
     LiteralExpr [STRING] [$f]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [4611436018427387904]
     ]
   )
   (
     LiteralExpr [STRING] [$g]
     :
-    FunctionCall null.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [-4611436018427387904]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/rectangle_01/rectangle_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/rectangle_01/rectangle_01.3.ast
index 9632ac0..55c1122 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/rectangle_01/rectangle_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/rectangle_01/rectangle_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [rectangle1]
     :
-    FunctionCall test.rectangle@1[
+    FunctionCall asterix.rectangle@1[
       LiteralExpr [STRING] [5.1,11.8 87.6,15.6548]
     ]
   )
   (
     LiteralExpr [STRING] [rectangle2]
     :
-    FunctionCall test.rectangle@1[
+    FunctionCall asterix.rectangle@1[
       LiteralExpr [STRING] [0.1234,-1.00e-10 5.5487,0.48765]
     ]
   )
   (
     LiteralExpr [STRING] [rectangle3]
     :
-    FunctionCall test.rectangle@1[
-      FunctionCall test.rectangle@1[
+    FunctionCall asterix.rectangle@1[
+      FunctionCall asterix.rectangle@1[
         LiteralExpr [STRING] [5.1,11.8 87.6,15.6548]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/string_01/string_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/string_01/string_01.3.ast
index 5d4de90..2696db5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/string_01/string_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/string_01/string_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [string1]
     :
-    FunctionCall test.string@1[
+    FunctionCall asterix.string@1[
       LiteralExpr [STRING] [true]
     ]
   )
   (
     LiteralExpr [STRING] [string2]
     :
-    FunctionCall test.string@1[
+    FunctionCall asterix.string@1[
       LiteralExpr [STRING] [false"]
     ]
   )
   (
     LiteralExpr [STRING] [string3]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [8]
       ]
     ]
@@ -27,8 +27,8 @@
   (
     LiteralExpr [STRING] [string4]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [16]
       ]
     ]
@@ -36,8 +36,8 @@
   (
     LiteralExpr [STRING] [string5]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [32]
       ]
     ]
@@ -45,8 +45,8 @@
   (
     LiteralExpr [STRING] [string6]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [64]
       ]
     ]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [string7]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [1.25]
       ]
     ]
@@ -63,8 +63,8 @@
   (
     LiteralExpr [STRING] [string8]
     :
-    FunctionCall test.string@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.string@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2.5]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/time_01/time_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/time_01/time_01.3.ast
index 6be78b1..6c688cb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/time_01/time_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/time_01/time_01.3.ast
@@ -4,85 +4,85 @@
   (
     LiteralExpr [STRING] [time1]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [10:50:56.200+05:00]
     ]
   )
   (
     LiteralExpr [STRING] [time2]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [10:50:56.200-10:15]
     ]
   )
   (
     LiteralExpr [STRING] [time3]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [10:50:56]
     ]
   )
   (
     LiteralExpr [STRING] [time4]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [10:50:56.200Z]
     ]
   )
   (
     LiteralExpr [STRING] [time5]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [23:59:59.999-13:30]
     ]
   )
   (
     LiteralExpr [STRING] [time6]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [00:00:00.000+14:45]
     ]
   )
   (
     LiteralExpr [STRING] [time7]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12:59:00.019-01:00]
     ]
   )
   (
     LiteralExpr [STRING] [time8]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12:59:00.01-01:00]
     ]
   )
   (
     LiteralExpr [STRING] [time9]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12:59:00.019-01:00]
     ]
   )
   (
     LiteralExpr [STRING] [time10]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12590001-0100]
     ]
   )
   (
     LiteralExpr [STRING] [time11]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [125900019+0100]
     ]
   )
   (
     LiteralExpr [STRING] [time12]
     :
-    FunctionCall test.time@1[
-      FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [125900019+0100]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/uuid_01/uuid_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/uuid_01/uuid_01.3.ast
index 9b2f4e0..addc784 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/uuid_01/uuid_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/constructor/uuid_01/uuid_01.3.ast
@@ -4,22 +4,22 @@
   (
     LiteralExpr [STRING] [uuid1]
     :
-    FunctionCall test.uuid@1[
+    FunctionCall asterix.uuid@1[
       LiteralExpr [STRING] [02a199ca-bf58-412e-bd9f-60a0c975a8ac]
     ]
   )
   (
     LiteralExpr [STRING] [uuid2]
     :
-    FunctionCall test.uuid@1[
+    FunctionCall asterix.uuid@1[
       LiteralExpr [STRING] [8cea25ab-55f8-467e-929d-94888f754832]
     ]
   )
   (
     LiteralExpr [STRING] [uuid3]
     :
-    FunctionCall test.uuid@1[
-      FunctionCall test.uuid@1[
+    FunctionCall asterix.uuid@1[
+      FunctionCall asterix.uuid@1[
         LiteralExpr [STRING] [8cea25ab-55f8-467e-929d-94888f754832]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/csv/basic-types/basic-types.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/csv/basic-types/basic-types.2.ast
index ea4d950..0f6da51 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/csv/basic-types/basic-types.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/csv/basic-types/basic-types.2.ast
@@ -11,7 +11,7 @@
   (
     LiteralExpr [STRING] [string]
     :
-    FunctionCall test.string@1[
+    FunctionCall asterix.string@1[
       LiteralExpr [STRING] [Nancy]
     ]
   )
@@ -23,7 +23,7 @@
   (
     LiteralExpr [STRING] [double]
     :
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [-2013.5938237483274]
     ]
   )
@@ -35,112 +35,112 @@
   (
     LiteralExpr [STRING] [int8]
     :
-    FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [125]
     ]
   )
   (
     LiteralExpr [STRING] [int16]
     :
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [32765]
     ]
   )
   (
     LiteralExpr [STRING] [int32]
     :
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [294967295]
     ]
   )
   (
     LiteralExpr [STRING] [int64]
     :
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [1700000000000000000]
     ]
   )
   (
     LiteralExpr [STRING] [date]
     :
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [-2011-01-27]
     ]
   )
   (
     LiteralExpr [STRING] [time]
     :
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12:20:30Z]
     ]
   )
   (
     LiteralExpr [STRING] [datetime]
     :
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-1951-12-27T12:20:30]
     ]
   )
   (
     LiteralExpr [STRING] [duration]
     :
-    FunctionCall test.duration@1[
+    FunctionCall asterix.duration@1[
       LiteralExpr [STRING] [P10Y11M12DT10H50M30S]
     ]
   )
   (
     LiteralExpr [STRING] [point]
     :
-    FunctionCall test.point@1[
+    FunctionCall asterix.point@1[
       LiteralExpr [STRING] [41.00,44.00]
     ]
   )
   (
     LiteralExpr [STRING] [point3d]
     :
-    FunctionCall test.point3d@1[
+    FunctionCall asterix.point3d@1[
       LiteralExpr [STRING] [44.00,13.00,41.00]
     ]
   )
   (
     LiteralExpr [STRING] [line]
     :
-    FunctionCall test.line@1[
+    FunctionCall asterix.line@1[
       LiteralExpr [STRING] [10.1,11.1 10.2,11.2]
     ]
   )
   (
     LiteralExpr [STRING] [rectangle]
     :
-    FunctionCall test.rectangle@1[
+    FunctionCall asterix.rectangle@1[
       LiteralExpr [STRING] [5.1,11.8 87.6,15.6548]
     ]
   )
   (
     LiteralExpr [STRING] [polygon]
     :
-    FunctionCall test.polygon@1[
+    FunctionCall asterix.polygon@1[
       LiteralExpr [STRING] [1.2,1.3 2.1,2.5 3.5,3.6 4.6,4.8]
     ]
   )
   (
     LiteralExpr [STRING] [circle]
     :
-    FunctionCall test.circle@1[
+    FunctionCall asterix.circle@1[
       LiteralExpr [STRING] [10.1,11.1 10.2]
     ]
   )
   (
     LiteralExpr [STRING] [binary]
     :
-    FunctionCall test.hex@1[
+    FunctionCall asterix.hex@1[
       LiteralExpr [STRING] [ABCDEF0123456789]
     ]
   )
   (
     LiteralExpr [STRING] [uuid]
     :
-    FunctionCall test.uuid@1[
+    FunctionCall asterix.uuid@1[
       LiteralExpr [STRING] [5c848e5c-6b6a-498f-8452-8847a2957421]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_03/customer_q_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_03/customer_q_03.3.ast
index a32db1d..742435a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_03/customer_q_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_03/customer_q_03.3.ast
@@ -92,7 +92,7 @@
       Field=cid
     ]
     >=
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [3]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_04/customer_q_04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_04/customer_q_04.3.ast
index ed79556..1c3212c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_04/customer_q_04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_04/customer_q_04.3.ast
@@ -113,7 +113,7 @@
       Field=cid
     ]
     >=
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [3]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_05/customer_q_05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_05/customer_q_05.3.ast
index 8c758d6..5196d91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_05/customer_q_05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_05/customer_q_05.3.ast
@@ -105,7 +105,7 @@
       Field=cid
     ]
     >=
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [3]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_01/insert-with-autogenerated-pk_adm_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_01/insert-with-autogenerated-pk_adm_01.3.ast
index 9e739f4..69ad67d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_01/insert-with-autogenerated-pk_adm_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_01/insert-with-autogenerated-pk_adm_01.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_02/insert-with-autogenerated-pk_adm_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_02/insert-with-autogenerated-pk_adm_02.3.ast
index 9e739f4..69ad67d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_02/insert-with-autogenerated-pk_adm_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_02/insert-with-autogenerated-pk_adm_02.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_03/insert-with-autogenerated-pk_adm_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_03/insert-with-autogenerated-pk_adm_03.3.ast
index 9fbfba8..a224f37 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_03/insert-with-autogenerated-pk_adm_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/insert-with-autogenerated-pk_adm_03/insert-with-autogenerated-pk_adm_03.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_01/load-with-autogenerated-pk_adm_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_01/load-with-autogenerated-pk_adm_01.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_01/load-with-autogenerated-pk_adm_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_01/load-with-autogenerated-pk_adm_01.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_02/load-with-autogenerated-pk_adm_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_02/load-with-autogenerated-pk_adm_01.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_02/load-with-autogenerated-pk_adm_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_02/load-with-autogenerated-pk_adm_01.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_03/load-with-autogenerated-pk_adm_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_03/load-with-autogenerated-pk_adm_03.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_03/load-with-autogenerated-pk_adm_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_03/load-with-autogenerated-pk_adm_03.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_04/load-with-autogenerated-pk_adm_04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_04/load-with-autogenerated-pk_adm_04.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_04/load-with-autogenerated-pk_adm_04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_adm_04/load-with-autogenerated-pk_adm_04.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_01/load-with-autogenerated-pk_csv_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_01/load-with-autogenerated-pk_csv_01.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_01/load-with-autogenerated-pk_csv_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_01/load-with-autogenerated-pk_csv_01.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_02/load-with-autogenerated-pk_csv_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_02/load-with-autogenerated-pk_csv_02.3.ast
index 30d57a3..5ce110a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_02/load-with-autogenerated-pk_csv_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_csv_02/load-with-autogenerated-pk_csv_02.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_txt_01/load-with-autogenerated-pk_txt_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_txt_01/load-with-autogenerated-pk_txt_01.3.ast
index 0efb991..7a2ea92 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_txt_01/load-with-autogenerated-pk_txt_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-autogenerated-pk_txt_01/load-with-autogenerated-pk_txt_01.3.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index-open/load-with-ngram-index-open.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index-open/load-with-ngram-index-open.3.ast
index 6ddcba2..57a17cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index-open/load-with-ngram-index-open.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index-open/load-with-ngram-index-open.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index/load-with-ngram-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index/load-with-ngram-index.3.ast
index 0e4c541..21e29aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index/load-with-ngram-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-ngram-index/load-with-ngram-index.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index-open/load-with-rtree-index-open.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index-open/load-with-rtree-index-open.3.ast
index 1485b5e..3fc95da 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index-open/load-with-rtree-index-open.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index-open/load-with-rtree-index-open.3.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index/load-with-rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index/load-with-rtree-index.3.ast
index ded6d72..6c1a91e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index/load-with-rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-rtree-index/load-with-rtree-index.3.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index-open/load-with-word-index-open.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index-open/load-with-word-index-open.3.ast
index 3b02994..39fd3c2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index-open/load-with-word-index-open.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index-open/load-with-word-index-open.3.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index/load-with-word-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index/load-with-word-index.3.ast
index a9e83dd..f00a084 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index/load-with-word-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/load-with-word-index/load-with-word-index.3.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
index 0e4c541..21e29aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-open/scan-delete-inverted-index-ngram-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-open/scan-delete-inverted-index-ngram-secondary-index-open.5.ast
index 6ddcba2..57a17cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-open/scan-delete-inverted-index-ngram-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index-open/scan-delete-inverted-index-ngram-secondary-index-open.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
index 0e4c541..21e29aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
index a9e83dd..f00a084 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-open/scan-delete-inverted-index-word-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-open/scan-delete-inverted-index-word-secondary-index-open.5.ast
index 3b02994..39fd3c2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-open/scan-delete-inverted-index-word-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index-open/scan-delete-inverted-index-word-secondary-index-open.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
index a9e83dd..f00a084 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
index ded6d72..6c1a91e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-open/scan-delete-rtree-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-open/scan-delete-rtree-secondary-index-open.5.ast
index 1485b5e..3fc95da 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-open/scan-delete-rtree-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index-open/scan-delete-rtree-secondary-index-open.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
index ded6d72..6c1a91e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
index 8e5ec0b..89ced26 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-open/scan-insert-inverted-index-ngram-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-open/scan-insert-inverted-index-ngram-secondary-index-open.5.ast
index 6ddcba2..57a17cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-open/scan-insert-inverted-index-ngram-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index-open/scan-insert-inverted-index-ngram-secondary-index-open.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
index 8e5ec0b..89ced26 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
index 2a11645..807fb94 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-open/scan-insert-inverted-index-word-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-open/scan-insert-inverted-index-word-secondary-index-open.5.ast
index 3b02994..39fd3c2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-open/scan-insert-inverted-index-word-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index-open/scan-insert-inverted-index-word-secondary-index-open.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
index 2a11645..807fb94 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
index a3863e7..cf52de3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-open/scan-insert-rtree-secondary-index-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-open/scan-insert-rtree-secondary-index-open.5.ast
index a3ab36b..85604e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-open/scan-insert-rtree-secondary-index-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index-open/scan-insert-rtree-secondary-index-open.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
index a3863e7..cf52de3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
index 5d4c69d..8dfee3d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
@@ -48,7 +48,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -73,7 +73,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -87,7 +87,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin/leftouterjoin.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin/leftouterjoin.3.ast
index caf47d3..204a6a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin/leftouterjoin.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/leftouterjoin/leftouterjoin.3.ast
@@ -82,7 +82,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/rtree-index/rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/rtree-index/rtree-index.3.ast
index 2f985dc..0345c25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/rtree-index/rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/external-indexing/rtree-index/rtree-index.3.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/equality-predicate/equality-predicate.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/equality-predicate/equality-predicate.5.ast
index e0501fd..a648bff 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/equality-predicate/equality-predicate.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/equality-predicate/equality-predicate.5.ast
@@ -15,7 +15,7 @@
       Field=send-time
     ]
     =
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2014-01-20T10:10:00]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-btree/insert-with-secondary-btree.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-btree/insert-with-secondary-btree.5.ast
index 8bc514e..1b75ed4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-btree/insert-with-secondary-btree.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-btree/insert-with-secondary-btree.5.ast
@@ -25,7 +25,7 @@
         Field=send-time
       ]
       >
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-08-20T10:10:00]
       ]
     ]
@@ -36,7 +36,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-11-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-ngram/insert-with-secondary-inverted-ngram.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-ngram/insert-with-secondary-inverted-ngram.5.ast
index 8257da4..1823b12 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-ngram/insert-with-secondary-inverted-ngram.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-ngram/insert-with-secondary-inverted-ngram.5.ast
@@ -10,7 +10,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$m ]
         Field=message
@@ -24,7 +24,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-12-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-word/insert-with-secondary-inverted-word.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-word/insert-with-secondary-inverted-word.5.ast
index e60853f..75f6e3e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-word/insert-with-secondary-inverted-word.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-inverted-word/insert-with-secondary-inverted-word.5.ast
@@ -11,14 +11,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$m ]
             Field=message
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           LiteralExpr [STRING] [love sprint at&t verizon]
         ]
       ]
@@ -32,7 +32,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-12-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-rtree/insert-with-secondary-rtree.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-rtree/insert-with-secondary-rtree.5.ast
index 71e9ac4..8ae6bda1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-rtree/insert-with-secondary-rtree.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert-with-secondary-rtree/insert-with-secondary-rtree.5.ast
@@ -10,12 +10,12 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$m ]
         Field=sender-location
       ]
-      FunctionCall test.create-polygon@1[
+      FunctionCall asterix.create-polygon@1[
         OrderedListConstructor [
           LiteralExpr [DOUBLE] [40.0]
           LiteralExpr [DOUBLE] [79.87]
@@ -35,7 +35,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-11-20T10:10:00.000Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert/insert.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert/insert.5.ast
index 18f08db..60fb2af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert/insert.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/insert/insert.5.ast
@@ -15,7 +15,7 @@
       Field=send-time
     ]
     >
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2012-08-20T10:10:00]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-btree/load-with-secondary-btree.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-btree/load-with-secondary-btree.5.ast
index 5b83358..7571b85 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-btree/load-with-secondary-btree.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-btree/load-with-secondary-btree.5.ast
@@ -25,7 +25,7 @@
         Field=send-time
       ]
       >
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-08-20T10:10:00]
       ]
     ]
@@ -36,7 +36,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-11-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-ngram/load-with-secondary-inverted-ngram.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-ngram/load-with-secondary-inverted-ngram.5.ast
index 8257da4..1823b12 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-ngram/load-with-secondary-inverted-ngram.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-ngram/load-with-secondary-inverted-ngram.5.ast
@@ -10,7 +10,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$m ]
         Field=message
@@ -24,7 +24,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-12-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-word/load-with-secondary-inverted-word.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-word/load-with-secondary-inverted-word.5.ast
index e60853f..75f6e3e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-word/load-with-secondary-inverted-word.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-inverted-word/load-with-secondary-inverted-word.5.ast
@@ -11,14 +11,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$m ]
             Field=message
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           LiteralExpr [STRING] [love sprint at&t verizon]
         ]
       ]
@@ -32,7 +32,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-12-20T10:10:00]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.5.ast
index 71e9ac4..8ae6bda1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.5.ast
@@ -10,12 +10,12 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$m ]
         Field=sender-location
       ]
-      FunctionCall test.create-polygon@1[
+      FunctionCall asterix.create-polygon@1[
         OrderedListConstructor [
           LiteralExpr [DOUBLE] [40.0]
           LiteralExpr [DOUBLE] [79.87]
@@ -35,7 +35,7 @@
         Field=send-time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-11-20T10:10:00.000Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.6.ast
index af827a6..af46972 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load-with-secondary-rtree/load-with-secondary-rtree.6.ast
@@ -10,12 +10,12 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$m ]
         Field=sender-location
       ]
-      FunctionCall test.create-polygon@1[
+      FunctionCall asterix.create-polygon@1[
         OrderedListConstructor [
           LiteralExpr [DOUBLE] [40.0]
           LiteralExpr [DOUBLE] [79.87]
@@ -35,7 +35,7 @@
         Field=send-time
       ]
       >
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-11-20T10:10:00.000Z]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load/load.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load/load.5.ast
index 2c74e63..a536843 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load/load.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/filters/load/load.5.ast
@@ -15,7 +15,7 @@
       Field=send-time
     ]
     >
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2012-08-20T10:10:00]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/at03/at03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/at03/at03.3.ast
index 79623e5..c412e91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/at03/at03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/at03/at03.3.ast
@@ -72,7 +72,7 @@
 Groupby
   Variable [ Name=$fus ]
   :=
-  FunctionCall test.get-year@1[
+  FunctionCall asterix.get-year@1[
     FieldAccessor [
       Variable [ Name=$i ]
       Field=user-since
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/query-issue550/query-issue550.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/query-issue550/query-issue550.3.ast
index 41a157e..c184468 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/query-issue550/query-issue550.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/flwor/query-issue550/query-issue550.3.ast
@@ -16,7 +16,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:00:00]
         ]
       )
@@ -40,7 +40,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:01:00]
         ]
       )
@@ -64,7 +64,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:02:00]
         ]
       )
@@ -88,7 +88,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:03:00]
         ]
       )
@@ -112,7 +112,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:04:00]
         ]
       )
@@ -136,7 +136,7 @@
       (
         LiteralExpr [STRING] [t]
         :
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-01-01T01:05:00]
         ]
       )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_1/dblp-1_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_1/dblp-1_1.3.ast
index 6a37de6..f29f0ee 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_1/dblp-1_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_1/dblp-1_1.3.ast
@@ -9,7 +9,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.3.ast
index 95fc8fb..5bd5b5c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1.1/dblp-1_2.3.ast
@@ -9,7 +9,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1/dblp-1_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1/dblp-1_2.3.ast
index 95fc8fb..5bd5b5c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1/dblp-1_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2.1/dblp-1_2.3.ast
@@ -9,7 +9,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2/dblp-1_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2/dblp-1_2.3.ast
index 934a36e..7e77424 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2/dblp-1_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-1_2/dblp-1_2.3.ast
@@ -9,7 +9,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.3.ast
index 63c83d4..6c2bfbe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.1_5.3.1/dblp-2.3.ast
@@ -25,12 +25,12 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+    FunctionCall asterix.prefix-len-jaccard@2[
       FunctionCall asterix.dataset@1[
         LiteralExpr [STRING] [fuzzyjoin.lenDBLP]
       ]
@@ -47,7 +47,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -55,7 +55,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -76,7 +76,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.2/dblp-2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.2/dblp-2.3.ast
index a3f4e26..a4fa5aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.2/dblp-2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2.2/dblp-2.3.ast
@@ -25,13 +25,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,7 +49,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -57,7 +57,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_1/dblp-2_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_1/dblp-2_1.3.ast
index 9a6bf41..1984c2c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_1/dblp-2_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_1/dblp-2_1.3.ast
@@ -29,7 +29,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -46,7 +46,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_2/dblp-2_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_2/dblp-2_2.3.ast
index 464b8aa..07c041b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_2/dblp-2_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_2/dblp-2_2.3.ast
@@ -29,7 +29,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -46,7 +46,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_3/dblp-2_3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_3/dblp-2_3.3.ast
index 1e7cafa..95e5d58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_3/dblp-2_3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_3/dblp-2_3.3.ast
@@ -32,7 +32,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -49,7 +49,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_4/dblp-2_4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_4/dblp-2_4.3.ast
index 1689261..4fe1dc4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_4/dblp-2_4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_4/dblp-2_4.3.ast
@@ -28,7 +28,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -52,7 +52,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.1/dblp-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.1/dblp-2_5.3.ast
index a2babd9..7b3c9be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.1/dblp-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.1/dblp-2_5.3.ast
@@ -33,7 +33,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -41,7 +41,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -62,7 +62,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.2/dblp-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.2/dblp-2_5.3.ast
index a2babd9..7b3c9be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.2/dblp-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.2/dblp-2_5.3.ast
@@ -33,7 +33,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -41,7 +41,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -62,7 +62,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.ast
index a2babd9..7b3c9be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3.1/dblp-2_5.3.ast
@@ -33,7 +33,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -41,7 +41,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -62,7 +62,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.ast
index a2babd9..7b3c9be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5.3/dblp-2_5.3.ast
@@ -33,7 +33,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -41,7 +41,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -62,7 +62,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5/dblp-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5/dblp-2_5.3.ast
index 6304774..0a6b044 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5/dblp-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-2_5/dblp-2_5.3.ast
@@ -33,7 +33,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -41,7 +41,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -62,7 +62,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.1/dblp-3_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.1/dblp-3_1.3.ast
index 959f69a..5601840 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.1/dblp-3_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.1/dblp-3_1.3.ast
@@ -51,12 +51,12 @@
       ]
       AS Variable [ Name=$paperLeft ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensLeft]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenLeft]
           ]
@@ -70,12 +70,12 @@
       ]
       AS Variable [ Name=$paperRight ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensRight]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenRight]
           ]
@@ -86,8 +86,8 @@
     ]
     Let Variable [ Name=$lenLeft ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperLeft ]
             Field=title
@@ -100,7 +100,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperLeft ]
               Field=title
@@ -117,7 +117,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -171,8 +171,8 @@
       )
     Let Variable [ Name=$lenRight ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperRight ]
             Field=title
@@ -185,7 +185,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperRight ]
               Field=title
@@ -202,7 +202,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -256,7 +256,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenLeft ]
         Variable [ Name=$tokensLeft ]
         Variable [ Name=$lenRight ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.2/dblp-3_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.2/dblp-3_1.3.ast
index 959f69a..5601840 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.2/dblp-3_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1.2/dblp-3_1.3.ast
@@ -51,12 +51,12 @@
       ]
       AS Variable [ Name=$paperLeft ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensLeft]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenLeft]
           ]
@@ -70,12 +70,12 @@
       ]
       AS Variable [ Name=$paperRight ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensRight]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenRight]
           ]
@@ -86,8 +86,8 @@
     ]
     Let Variable [ Name=$lenLeft ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperLeft ]
             Field=title
@@ -100,7 +100,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperLeft ]
               Field=title
@@ -117,7 +117,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -171,8 +171,8 @@
       )
     Let Variable [ Name=$lenRight ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperRight ]
             Field=title
@@ -185,7 +185,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperRight ]
               Field=title
@@ -202,7 +202,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -256,7 +256,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenLeft ]
         Variable [ Name=$tokensLeft ]
         Variable [ Name=$lenRight ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1/dblp-3_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1/dblp-3_1.3.ast
index ba90fec..2ff3d69 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1/dblp-3_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-3_1/dblp-3_1.3.ast
@@ -61,12 +61,12 @@
       ]
       AS Variable [ Name=$paperLeft ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensLeft]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenLeft]
           ]
@@ -80,12 +80,12 @@
       ]
       AS Variable [ Name=$paperRight ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensRight]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
+        FunctionCall asterix.prefix-len-jaccard@2[
           FunctionCall asterix.dataset@1[
             LiteralExpr [STRING] [fuzzyjoin.lenRight]
           ]
@@ -96,8 +96,8 @@
     ]
     Let Variable [ Name=$lenLeft ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperLeft ]
             Field=title
@@ -110,7 +110,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperLeft ]
               Field=title
@@ -127,7 +127,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -181,8 +181,8 @@
       )
     Let Variable [ Name=$lenRight ]
       :=
-      FunctionCall fuzzyjoin.len@1[
-        FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.len@1[
+        FunctionCall asterix.counthashed-word-tokens@1[
           FieldAccessor [
             Variable [ Name=$paperRight ]
             Field=title
@@ -195,7 +195,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperRight ]
               Field=title
@@ -212,7 +212,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -266,7 +266,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenLeft ]
         Variable [ Name=$tokensLeft ]
         Variable [ Name=$lenRight ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.ast
index 4c1fd0e..35c13be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-aqlplus_1/dblp-aqlplus_1.3.ast
@@ -28,14 +28,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$dblp ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$dblp2 ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.ast
index 201405b..6b0e231 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_1/dblp-csx-2_1.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -71,7 +71,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -88,7 +88,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -146,7 +146,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -163,7 +163,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -217,9 +217,9 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -227,8 +227,8 @@
       ]
     ]
     Variable [ Name=$tokensDBLP ]
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.ast
index bc3e7bd..4e7e104 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_2/dblp-csx-2_2.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -71,7 +71,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -88,7 +88,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -153,7 +153,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -170,7 +170,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -231,9 +231,9 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -241,8 +241,8 @@
       ]
     ]
     Variable [ Name=$tokensDBLP ]
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.ast
index 9820085..f6ac967 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_3/dblp-csx-2_3.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -77,7 +77,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -94,7 +94,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -165,7 +165,7 @@
     SELECT ELEMENT [
     Variable [ Name=$i ]
     ]
-    FROM [      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FROM [      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -182,7 +182,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -243,9 +243,9 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -253,8 +253,8 @@
       ]
     ]
     Variable [ Name=$tokensDBLP ]
-    FunctionCall fuzzyjoin.len@1[
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+    FunctionCall asterix.len@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.ast
index b426df7..be9f563 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_4/dblp-csx-2_4.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -97,7 +97,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -164,7 +164,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -188,7 +188,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -249,12 +249,12 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-    FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
+    FunctionCall asterix.len@1[
       Variable [ Name=$tokensUnrankedDBLP ]
     ]
     Variable [ Name=$tokensDBLP ]
-    FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.len@1[
       Variable [ Name=$tokensUnrankedCSX ]
     ]
     Variable [ Name=$tokensCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.3.ast
index 2fcb5cd..1cd1fb8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.1/dblp-csx-2_5.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -81,7 +81,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -102,7 +102,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -169,7 +169,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -177,7 +177,7 @@
   ]
 Let Variable [ Name=$lenCSX ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedCSX ]
   ]
 Let Variable [ Name=$tokensCSX ]
@@ -198,7 +198,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -259,7 +259,7 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     Variable [ Name=$lenDBLP ]
     Variable [ Name=$tokensDBLP ]
     Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.3.ast
index 2fcb5cd..1cd1fb8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.2/dblp-csx-2_5.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -81,7 +81,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -102,7 +102,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -169,7 +169,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -177,7 +177,7 @@
   ]
 Let Variable [ Name=$lenCSX ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedCSX ]
   ]
 Let Variable [ Name=$tokensCSX ]
@@ -198,7 +198,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -259,7 +259,7 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     Variable [ Name=$lenDBLP ]
     Variable [ Name=$tokensDBLP ]
     Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.ast
index 8aa7d18..bfd2029 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3.1/dblp-csx-2_5.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -81,7 +81,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -102,7 +102,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -169,7 +169,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -177,7 +177,7 @@
   ]
 Let Variable [ Name=$lenCSX ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedCSX ]
   ]
 Let Variable [ Name=$tokensCSX ]
@@ -198,7 +198,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -259,7 +259,7 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     Variable [ Name=$lenDBLP ]
     Variable [ Name=$tokensDBLP ]
     Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.ast
index 2fcb5cd..1cd1fb8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5.3/dblp-csx-2_5.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -81,7 +81,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -102,7 +102,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -169,7 +169,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -177,7 +177,7 @@
   ]
 Let Variable [ Name=$lenCSX ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedCSX ]
   ]
 Let Variable [ Name=$tokensCSX ]
@@ -198,7 +198,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -259,7 +259,7 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     Variable [ Name=$lenDBLP ]
     Variable [ Name=$tokensDBLP ]
     Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.ast
index 8aa7d18..bfd2029 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-2_5/dblp-csx-2_5.3.ast
@@ -28,13 +28,13 @@
   ]
   AS Variable [ Name=$paperDBLP ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
@@ -49,13 +49,13 @@
   ]
   AS Variable [ Name=$paperCSX ]
 ,
-  FunctionCall fuzzyjoin.subset-collection@3[
+  FunctionCall asterix.subset-collection@3[
     FunctionCall asterix.dataset@1[
       LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
     ]
     LiteralExpr [LONG] [0]
-    FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-      FunctionCall fuzzyjoin.len@1[
+    FunctionCall asterix.prefix-len-jaccard@2[
+      FunctionCall asterix.len@1[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
@@ -73,7 +73,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedDBLP ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperDBLP ]
       Field=title
@@ -81,7 +81,7 @@
   ]
 Let Variable [ Name=$lenDBLP ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedDBLP ]
   ]
 Let Variable [ Name=$tokensDBLP ]
@@ -102,7 +102,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -169,7 +169,7 @@
   ]
 Let Variable [ Name=$tokensUnrankedCSX ]
   :=
-  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paperCSX ]
       Field=title
@@ -177,7 +177,7 @@
   ]
 Let Variable [ Name=$lenCSX ]
   :=
-  FunctionCall fuzzyjoin.len@1[
+  FunctionCall asterix.len@1[
     Variable [ Name=$tokensUnrankedCSX ]
   ]
 Let Variable [ Name=$tokensCSX ]
@@ -198,7 +198,7 @@
           ]
           AS Variable [ Name=$paper ]
 ,
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paper ]
               Field=title
@@ -259,7 +259,7 @@
   )
 Let Variable [ Name=$sim ]
   :=
-  FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     Variable [ Name=$lenDBLP ]
     Variable [ Name=$tokensDBLP ]
     Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.ast
index 38fff8c..fddeacb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_1/dblp-csx-3_1.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -94,7 +94,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -111,7 +111,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -169,7 +169,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
@@ -186,7 +186,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -240,9 +240,9 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -250,8 +250,8 @@
           ]
         ]
         Variable [ Name=$tokensDBLP ]
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.ast
index 49eedfd..c53c4fa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_2/dblp-csx-3_2.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -94,7 +94,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -111,7 +111,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -176,7 +176,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
@@ -193,7 +193,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -254,9 +254,9 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -264,8 +264,8 @@
           ]
         ]
         Variable [ Name=$tokensDBLP ]
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.ast
index 22069a1..2aeeb40 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_3/dblp-csx-3_3.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -100,7 +100,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -117,7 +117,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -188,7 +188,7 @@
         SELECT ELEMENT [
         Variable [ Name=$i ]
         ]
-        FROM [          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FROM [          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
@@ -205,7 +205,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -266,9 +266,9 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -276,8 +276,8 @@
           ]
         ]
         Variable [ Name=$tokensDBLP ]
-        FunctionCall fuzzyjoin.len@1[
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+        FunctionCall asterix.len@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.ast
index 7d61632..2e6fc16 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_4/dblp-csx-3_4.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -120,7 +120,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -187,7 +187,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -211,7 +211,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -272,12 +272,12 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
-        FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
+        FunctionCall asterix.len@1[
           Variable [ Name=$tokensUnrankedDBLP ]
         ]
         Variable [ Name=$tokensDBLP ]
-        FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.len@1[
           Variable [ Name=$tokensUnrankedCSX ]
         ]
         Variable [ Name=$tokensCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.3.ast
index 99ef2b7..8e8f750 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.1/dblp-csx-3_5.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -104,7 +104,7 @@
       ]
     Let Variable [ Name=$lenDBLP ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedDBLP ]
       ]
     Let Variable [ Name=$tokensDBLP ]
@@ -125,7 +125,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -192,7 +192,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -200,7 +200,7 @@
       ]
     Let Variable [ Name=$lenCSX ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedCSX ]
       ]
     Let Variable [ Name=$tokensCSX ]
@@ -221,7 +221,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenDBLP ]
         Variable [ Name=$tokensDBLP ]
         Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.3.ast
index 99ef2b7..8e8f750 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.2/dblp-csx-3_5.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -104,7 +104,7 @@
       ]
     Let Variable [ Name=$lenDBLP ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedDBLP ]
       ]
     Let Variable [ Name=$tokensDBLP ]
@@ -125,7 +125,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -192,7 +192,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -200,7 +200,7 @@
       ]
     Let Variable [ Name=$lenCSX ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedCSX ]
       ]
     Let Variable [ Name=$tokensCSX ]
@@ -221,7 +221,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenDBLP ]
         Variable [ Name=$tokensDBLP ]
         Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.ast
index 99ef2b7..8e8f750 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3.1/dblp-csx-3_5.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -104,7 +104,7 @@
       ]
     Let Variable [ Name=$lenDBLP ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedDBLP ]
       ]
     Let Variable [ Name=$tokensDBLP ]
@@ -125,7 +125,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -192,7 +192,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -200,7 +200,7 @@
       ]
     Let Variable [ Name=$lenCSX ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedCSX ]
       ]
     Let Variable [ Name=$tokensCSX ]
@@ -221,7 +221,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenDBLP ]
         Variable [ Name=$tokensDBLP ]
         Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.ast
index 99399d76..1d7411d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.3/dblp-csx-3_5.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -104,7 +104,7 @@
       ]
     Let Variable [ Name=$lenDBLP ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedDBLP ]
       ]
     Let Variable [ Name=$tokensDBLP ]
@@ -125,7 +125,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -192,7 +192,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -200,7 +200,7 @@
       ]
     Let Variable [ Name=$lenCSX ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedCSX ]
       ]
     Let Variable [ Name=$tokensCSX ]
@@ -221,7 +221,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenDBLP ]
         Variable [ Name=$tokensDBLP ]
         Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.3.ast
index 606edd0..ce31b00 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4.1/dblp-csx-3_5.3.ast
@@ -98,13 +98,13 @@
           ]
           AS Variable [ Name=$paperDBLP ]
 ,
-          FunctionCall fuzzyjoin.subset-collection@3[
+          FunctionCall asterix.subset-collection@3[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
             LiteralExpr [LONG] [0]
-            FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-              FunctionCall fuzzyjoin.len@1[
+            FunctionCall asterix.prefix-len-jaccard@2[
+              FunctionCall asterix.len@1[
                 FunctionCall asterix.dataset@1[
                   LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
                 ]
@@ -119,13 +119,13 @@
           ]
           AS Variable [ Name=$paperCSX ]
 ,
-          FunctionCall fuzzyjoin.subset-collection@3[
+          FunctionCall asterix.subset-collection@3[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
             LiteralExpr [LONG] [0]
-            FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-              FunctionCall fuzzyjoin.len@1[
+            FunctionCall asterix.prefix-len-jaccard@2[
+              FunctionCall asterix.len@1[
                 FunctionCall asterix.dataset@1[
                   LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
                 ]
@@ -143,7 +143,7 @@
           ]
         Let Variable [ Name=$tokensUnrankedDBLP ]
           :=
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -151,7 +151,7 @@
           ]
         Let Variable [ Name=$lenDBLP ]
           :=
-          FunctionCall fuzzyjoin.len@1[
+          FunctionCall asterix.len@1[
             Variable [ Name=$tokensUnrankedDBLP ]
           ]
         Let Variable [ Name=$tokensDBLP ]
@@ -172,7 +172,7 @@
                   ]
                   AS Variable [ Name=$paper ]
 ,
-                  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+                  FunctionCall asterix.counthashed-word-tokens@1[
                     FieldAccessor [
                       Variable [ Name=$paper ]
                       Field=title
@@ -239,7 +239,7 @@
           ]
         Let Variable [ Name=$tokensUnrankedCSX ]
           :=
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
@@ -247,7 +247,7 @@
           ]
         Let Variable [ Name=$lenCSX ]
           :=
-          FunctionCall fuzzyjoin.len@1[
+          FunctionCall asterix.len@1[
             Variable [ Name=$tokensUnrankedCSX ]
           ]
         Let Variable [ Name=$tokensCSX ]
@@ -268,7 +268,7 @@
                   ]
                   AS Variable [ Name=$paper ]
 ,
-                  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+                  FunctionCall asterix.counthashed-word-tokens@1[
                     FieldAccessor [
                       Variable [ Name=$paper ]
                       Field=title
@@ -329,7 +329,7 @@
           )
         Let Variable [ Name=$sim ]
           :=
-          FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+          FunctionCall asterix.similarity-jaccard-prefix@6[
             Variable [ Name=$lenDBLP ]
             Variable [ Name=$tokensDBLP ]
             Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.3.ast
index 87e475a..7632755 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5.4/dblp-csx-3_5.3.ast
@@ -98,13 +98,13 @@
           ]
           AS Variable [ Name=$paperDBLP ]
 ,
-          FunctionCall fuzzyjoin.subset-collection@3[
+          FunctionCall asterix.subset-collection@3[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
             LiteralExpr [LONG] [0]
-            FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-              FunctionCall fuzzyjoin.len@1[
+            FunctionCall asterix.prefix-len-jaccard@2[
+              FunctionCall asterix.len@1[
                 FunctionCall asterix.dataset@1[
                   LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
                 ]
@@ -119,13 +119,13 @@
           ]
           AS Variable [ Name=$paperCSX ]
 ,
-          FunctionCall fuzzyjoin.subset-collection@3[
+          FunctionCall asterix.subset-collection@3[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
             LiteralExpr [LONG] [0]
-            FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-              FunctionCall fuzzyjoin.len@1[
+            FunctionCall asterix.prefix-len-jaccard@2[
+              FunctionCall asterix.len@1[
                 FunctionCall asterix.dataset@1[
                   LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
                 ]
@@ -143,7 +143,7 @@
           ]
         Let Variable [ Name=$tokensUnrankedDBLP ]
           :=
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperDBLP ]
               Field=title
@@ -151,7 +151,7 @@
           ]
         Let Variable [ Name=$lenDBLP ]
           :=
-          FunctionCall fuzzyjoin.len@1[
+          FunctionCall asterix.len@1[
             Variable [ Name=$tokensUnrankedDBLP ]
           ]
         Let Variable [ Name=$tokensDBLP ]
@@ -172,7 +172,7 @@
                   ]
                   AS Variable [ Name=$paper ]
 ,
-                  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+                  FunctionCall asterix.counthashed-word-tokens@1[
                     FieldAccessor [
                       Variable [ Name=$paper ]
                       Field=title
@@ -239,7 +239,7 @@
           ]
         Let Variable [ Name=$tokensUnrankedCSX ]
           :=
-          FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+          FunctionCall asterix.counthashed-word-tokens@1[
             FieldAccessor [
               Variable [ Name=$paperCSX ]
               Field=title
@@ -247,7 +247,7 @@
           ]
         Let Variable [ Name=$lenCSX ]
           :=
-          FunctionCall fuzzyjoin.len@1[
+          FunctionCall asterix.len@1[
             Variable [ Name=$tokensUnrankedCSX ]
           ]
         Let Variable [ Name=$tokensCSX ]
@@ -268,7 +268,7 @@
                   ]
                   AS Variable [ Name=$paper ]
 ,
-                  FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+                  FunctionCall asterix.counthashed-word-tokens@1[
                     FieldAccessor [
                       Variable [ Name=$paper ]
                       Field=title
@@ -329,7 +329,7 @@
           )
         Let Variable [ Name=$sim ]
           :=
-          FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+          FunctionCall asterix.similarity-jaccard-prefix@6[
             Variable [ Name=$lenDBLP ]
             Variable [ Name=$tokensDBLP ]
             Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.ast
index 99399d76..1d7411d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-3_5/dblp-csx-3_5.3.ast
@@ -51,13 +51,13 @@
       ]
       AS Variable [ Name=$paperDBLP ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensDBLP]
             ]
@@ -72,13 +72,13 @@
       ]
       AS Variable [ Name=$paperCSX ]
 ,
-      FunctionCall fuzzyjoin.subset-collection@3[
+      FunctionCall asterix.subset-collection@3[
         FunctionCall asterix.dataset@1[
           LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
         ]
         LiteralExpr [LONG] [0]
-        FunctionCall fuzzyjoin.prefix-len-jaccard@2[
-          FunctionCall fuzzyjoin.len@1[
+        FunctionCall asterix.prefix-len-jaccard@2[
+          FunctionCall asterix.len@1[
             FunctionCall asterix.dataset@1[
               LiteralExpr [STRING] [fuzzyjoin.tokensCSX]
             ]
@@ -96,7 +96,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedDBLP ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperDBLP ]
           Field=title
@@ -104,7 +104,7 @@
       ]
     Let Variable [ Name=$lenDBLP ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedDBLP ]
       ]
     Let Variable [ Name=$tokensDBLP ]
@@ -125,7 +125,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -192,7 +192,7 @@
       ]
     Let Variable [ Name=$tokensUnrankedCSX ]
       :=
-      FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+      FunctionCall asterix.counthashed-word-tokens@1[
         FieldAccessor [
           Variable [ Name=$paperCSX ]
           Field=title
@@ -200,7 +200,7 @@
       ]
     Let Variable [ Name=$lenCSX ]
       :=
-      FunctionCall fuzzyjoin.len@1[
+      FunctionCall asterix.len@1[
         Variable [ Name=$tokensUnrankedCSX ]
       ]
     Let Variable [ Name=$tokensCSX ]
@@ -221,7 +221,7 @@
               ]
               AS Variable [ Name=$paper ]
 ,
-              FunctionCall fuzzyjoin.counthashed-word-tokens@1[
+              FunctionCall asterix.counthashed-word-tokens@1[
                 FieldAccessor [
                   Variable [ Name=$paper ]
                   Field=title
@@ -282,7 +282,7 @@
       )
     Let Variable [ Name=$sim ]
       :=
-      FunctionCall fuzzyjoin.similarity-jaccard-prefix@6[
+      FunctionCall asterix.similarity-jaccard-prefix@6[
         Variable [ Name=$lenDBLP ]
         Variable [ Name=$tokensDBLP ]
         Variable [ Name=$lenCSX ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.ast
index 6d23e45..cc6ef31 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_1/dblp-csx-aqlplus_1.3.ast
@@ -27,14 +27,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$j ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.ast
index a796c3e..6ccd28b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_2/dblp-csx-aqlplus_2.3.ast
@@ -27,14 +27,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$dblp ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$csx ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.ast
index 8091791..6f0c47b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-aqlplus_3/dblp-csx-aqlplus_3.3.ast
@@ -27,14 +27,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$csx ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall fuzzyjoin.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$dblp ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.ast
index c7ed736..8a02dc2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/fuzzyjoin/dblp-csx-dblp-aqlplus_1/dblp-csx-dblp-aqlplus_1.3.ast
@@ -38,14 +38,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$dblp ]
           Field=title
         ]
       ]
       ~=
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$csx ]
           Field=title
@@ -54,14 +54,14 @@
     ]
     and
     OperatorExpr [
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$csx ]
           Field=authors
         ]
       ]
       ~=
-      FunctionCall fuzzyjoin.word-tokens@1[
+      FunctionCall asterix.word-tokens@1[
         FieldAccessor [
           Variable [ Name=$dblp2 ]
           Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.10.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.10.ast
index 9c6df5d..e560710 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.10.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.10.ast
@@ -1,93 +1,248 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=twenty
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=twenty
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      DECOR
+      Variable [ Name=$four ]
+      :=
+      LiteralExpr [NULL]
+      Variable [ Name=$ten ]
+      :=
+      LiteralExpr [NULL]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@3[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [3]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [5]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [6]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.11.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.11.ast
index 462e1e4..c4060e5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.11.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.11.ast
@@ -1,85 +1,194 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=twenty
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=twenty
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      Variable [ Name=$ten ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=ten
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@3[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [7]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.12.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.12.ast
index f89980c..b419ea4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.12.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.12.ast
@@ -42,9 +42,7 @@
 
 Let Variable [ Name=#2 ]
   :=
-  FunctionCall test.grouping@1[
-    Variable [ Name=$two ]
-  ]
+  LiteralExpr [LONG] [0]
 Orderby
   Variable [ Name=$two ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.13.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.13.ast
index 5fa0a46..674d94c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.13.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.13.ast
@@ -1,228 +1,787 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=$twenty ]
-twenty
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=$twenty ]
+    twenty
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=hundred
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=hundred
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      Variable [ Name=$ten ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=ten
+      ]
+      Variable [ Name=$twenty ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=twenty
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@4[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-    Variable [ Name=$twenty ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [2]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#8 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#8 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [4]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#9 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#9 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [5]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#10 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#10 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [6]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#11 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#11 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [7]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#12 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#12 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [12]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#13 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#13 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [13]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#14 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#14 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [14]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#15 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#15 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [15]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
-  Variable [ Name=$twenty ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=twenty
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.14.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.14.ast
index 5fa0a46..674d94c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.14.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.14.ast
@@ -1,228 +1,787 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=$twenty ]
-twenty
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=$twenty ]
+    twenty
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=hundred
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=hundred
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      Variable [ Name=$ten ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=ten
+      ]
+      Variable [ Name=$twenty ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=twenty
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@4[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-    Variable [ Name=$twenty ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [2]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#8 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#8 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [4]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#9 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#9 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [5]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#10 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#10 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [6]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#11 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#11 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [7]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#12 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#12 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [12]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#13 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#13 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [13]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#14 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#14 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [14]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#15 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#15 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [15]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
-  Variable [ Name=$twenty ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=twenty
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.15.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.15.ast
index 767e94f..80f30d4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.15.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.15.ast
@@ -1,116 +1,454 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=$twenty ]
-twenty
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=$twenty ]
+    twenty
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=hundred
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=hundred
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$twenty ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=twenty
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      DECOR
+      Variable [ Name=$ten ]
+      :=
+      LiteralExpr [NULL]
+      Variable [ Name=$twenty ]
+      :=
+      LiteralExpr [NULL]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@4[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-    Variable [ Name=$twenty ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [3]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [7]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [15]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [12]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#8 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#8 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$ten ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=ten
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [13]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#9 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#9 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$twenty ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=twenty
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [14]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=$twenty ]
+      twenty
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#10 ]
+              Field=tenk
+            ]
+            Field=hundred
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#10 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$twenty ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [15]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
-  Variable [ Name=$twenty ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=twenty
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.5.ast
index f9f3410..d1a5570 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.5.ast
@@ -1,36 +1,74 @@
 DataverseUse test
 Query:
-SELECT [
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#2 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#2 ]
+]
+FROM [  (
+    SELECT [
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#3 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#3 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=ten
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#2 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-  )
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      GROUPING SET (
+      )
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
+    UNION
+      SELECT [
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#4 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+  )
+  AS Variable [ Name=#2 ]
+]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.7.ast
index b2898d1..4baddd7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.7.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.7.ast
@@ -1,74 +1,171 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=ten
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@2[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.8.ast
index 11c6281..255b4cf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.8.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.8.ast
@@ -1,82 +1,221 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=ten
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@2[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [2]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.9.ast
index 775f28e..6a5daae 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.9.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-1/grouping-sets-1.9.ast
@@ -1,97 +1,198 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$two ]
-two
-Variable [ Name=$four ]
-four
-Variable [ Name=$ten ]
-ten
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$ten ]
+    ten
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=twenty
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=twenty
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-    Variable [ Name=$ten ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=ten
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$four ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$two ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      Variable [ Name=$ten ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=ten
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@3[
-    Variable [ Name=$two ]
-    Variable [ Name=$four ]
-    Variable [ Name=$ten ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        DECOR
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$ten ]
+      ten
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=twenty
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$ten ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$two ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=two
+  ]
   ASC
-  Variable [ Name=$four ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=four
+  ]
   ASC
-  Variable [ Name=$ten ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=ten
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.ast
new file mode 100644
index 0000000..d992e77
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.10.ast
@@ -0,0 +1,144 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+Variable [ Name=#2 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s1 ]
+    s1
+    Variable [ Name=$s2 ]
+    s2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#3 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#3 ]
+          ]
+        )
+      ]
+    Let Variable [ Name=$s2 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#4 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s1 ]
+      s1
+      Variable [ Name=$s2 ]
+      s2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#5 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#5 ]
+            ]
+          )
+        ]
+      Let Variable [ Name=$s2 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#2 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=s1
+  ]
+  DESC
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=s2
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.ast
new file mode 100644
index 0000000..f290ca3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.11.ast
@@ -0,0 +1,147 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.object-remove@2[
+  Variable [ Name=#3 ]
+  LiteralExpr [STRING] [$2]
+]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s1 ]
+    s1
+    Variable [ Name=$s2 ]
+    $2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#4 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
+      ]
+    Let Variable [ Name=$s2 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s1 ]
+      s1
+      Variable [ Name=$s2 ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+      Let Variable [ Name=$s2 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#7 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#7 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#3 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=s1
+  ]
+  DESC
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=$2
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.ast
new file mode 100644
index 0000000..df9d569
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.12.ast
@@ -0,0 +1,150 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.object-remove@2[
+  FunctionCall asterix.object-remove@2[
+    Variable [ Name=#4 ]
+    LiteralExpr [STRING] [$2]
+  ]
+  LiteralExpr [STRING] [$3]
+]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s1 ]
+    $2
+    Variable [ Name=$s2 ]
+    $3
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+    Let Variable [ Name=$s2 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s1 ]
+      $2
+      Variable [ Name=$s2 ]
+      $3
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#7 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#7 ]
+            ]
+          )
+        ]
+      Let Variable [ Name=$s2 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#8 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#8 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#4 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#4 ]
+    Field=$2
+  ]
+  DESC
+  FieldAccessor [
+    Variable [ Name=#4 ]
+    Field=$3
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.ast
new file mode 100644
index 0000000..8761774
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.13.ast
@@ -0,0 +1,147 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=#5 ]
+  LiteralExpr [STRING] [$4]
+]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    $4
+    Variable [ Name=$s1 ]
+    $2
+    Variable [ Name=$s2 ]
+    $3
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+    Let Variable [ Name=$s2 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#7 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#7 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      $4
+      Variable [ Name=$s1 ]
+      $2
+      Variable [ Name=$s2 ]
+      $3
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#8 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#8 ]
+            ]
+          )
+        ]
+      Let Variable [ Name=$s2 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#9 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#9 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#5 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#5 ]
+    Field=$2
+  ]
+  DESC
+  FieldAccessor [
+    Variable [ Name=#5 ]
+    Field=$3
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.ast
new file mode 100644
index 0000000..00d6c8a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.14.ast
@@ -0,0 +1,104 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+Variable [ Name=#2 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s1 ]
+    s1
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#3 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#3 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s1 ]
+      s1
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#4 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#4 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#2 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=s1
+  ]
+  DESC
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=four
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.ast
new file mode 100644
index 0000000..7db8adf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.15.ast
@@ -0,0 +1,102 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=#4 ]
+  LiteralExpr [STRING] [$3]
+]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$s1 ]
+    $3
+    Variable [ Name=$s1 ]
+    $2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s1 ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$s1 ]
+      $3
+      Variable [ Name=$s1 ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$four ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=four
+        ]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s1 ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#4 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#4 ]
+    Field=$2
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.ast
new file mode 100644
index 0000000..178385f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.16.ast
@@ -0,0 +1,93 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+Variable [ Name=#2 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$four ]
+    four
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#3 ]
+            Field=tenk
+          ]
+          Field=two
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#3 ]
+        ]
+      )
+    ]
+    s
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    UNION
+      SELECT [
+      Variable [ Name=$four ]
+      four
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#4 ]
+              Field=tenk
+            ]
+            Field=two
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
+      ]
+      s
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+  )
+  AS Variable [ Name=#2 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=four
+  ]
+  ASC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.ast
new file mode 100644
index 0000000..f57186c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.17.ast
@@ -0,0 +1,122 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=#4 ]
+  LiteralExpr [STRING] [$3]
+]
+]
+FROM [  (
+    SELECT [
+    OperatorExpr [
+      FunctionCall asterix.to-string@1[
+        FunctionCall asterix.if-null[
+          Variable [ Name=$four ]
+          LiteralExpr [STRING] [null]
+        ]
+      ]
+      ||
+      LiteralExpr [STRING] [,]
+      ||
+      FunctionCall asterix.to-string@1[
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#5 ]
+                Field=tenk
+              ]
+              Field=two
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#5 ]
+            ]
+          )
+        ]
+      ]
+    ]
+    $3
+    Variable [ Name=$four ]
+    $2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    UNION
+      SELECT [
+      OperatorExpr [
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.if-null[
+            Variable [ Name=$four ]
+            LiteralExpr [STRING] [null]
+          ]
+        ]
+        ||
+        LiteralExpr [STRING] [,]
+        ||
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.sql-sum@1[
+            (
+              SELECT ELEMENT [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#6 ]
+                  Field=tenk
+                ]
+                Field=two
+              ]
+              ]
+              FROM [                Variable [ Name=#1 ]
+                AS Variable [ Name=#6 ]
+              ]
+            )
+          ]
+        ]
+      ]
+      $3
+      Variable [ Name=$four ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+  )
+  AS Variable [ Name=#4 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#4 ]
+    Field=$2
+  ]
+  ASC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.ast
new file mode 100644
index 0000000..c80accb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.18.ast
@@ -0,0 +1,193 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT ELEMENT [
+    Variable [ Name=#4 ]
+    ]
+    FROM [      (
+        SELECT [
+        Variable [ Name=$two ]
+        two
+        LiteralExpr [NULL]
+        four
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+        s
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.tenk]
+          ]
+          AS Variable [ Name=$tenk ]
+        ]
+        Groupby
+          Variable [ Name=$two ]
+          :=
+          FieldAccessor [
+            Variable [ Name=$tenk ]
+            Field=two
+          ]
+          GROUP AS Variable [ Name=#1 ]
+          (
+            tenk:=Variable [ Name=$tenk ]
+          )
+
+        UNION
+          SELECT [
+          Variable [ Name=$two ]
+          two
+          LiteralExpr [NULL]
+          four
+          FunctionCall asterix.sql-sum@1[
+            (
+              SELECT ELEMENT [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#7 ]
+                  Field=tenk
+                ]
+                Field=unique1
+              ]
+              ]
+              FROM [                Variable [ Name=#1 ]
+                AS Variable [ Name=#7 ]
+              ]
+            )
+          ]
+          s
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.tenk]
+            ]
+            AS Variable [ Name=$tenk ]
+          ]
+          Groupby
+            GROUPING SET (
+            )
+            DECOR
+            Variable [ Name=$two ]
+            :=
+            LiteralExpr [NULL]
+            GROUP AS Variable [ Name=#1 ]
+            (
+              tenk:=Variable [ Name=$tenk ]
+            )
+
+      )
+      AS Variable [ Name=#4 ]
+    ]
+    UNION
+      SELECT ELEMENT [
+      Variable [ Name=#5 ]
+      ]
+      FROM [        (
+          SELECT [
+          LiteralExpr [NULL]
+          two
+          Variable [ Name=$four ]
+          four
+          FunctionCall asterix.sql-sum@1[
+            (
+              SELECT ELEMENT [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#8 ]
+                  Field=tenk
+                ]
+                Field=unique1
+              ]
+              ]
+              FROM [                Variable [ Name=#2 ]
+                AS Variable [ Name=#8 ]
+              ]
+            )
+          ]
+          s
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.tenk]
+            ]
+            AS Variable [ Name=$tenk ]
+          ]
+          Groupby
+            Variable [ Name=$four ]
+            :=
+            FieldAccessor [
+              Variable [ Name=$tenk ]
+              Field=four
+            ]
+            GROUP AS Variable [ Name=#2 ]
+            (
+              tenk:=Variable [ Name=$tenk ]
+            )
+
+          UNION
+            SELECT [
+            LiteralExpr [NULL]
+            two
+            Variable [ Name=$four ]
+            four
+            FunctionCall asterix.sql-sum@1[
+              (
+                SELECT ELEMENT [
+                FieldAccessor [
+                  FieldAccessor [
+                    Variable [ Name=#9 ]
+                    Field=tenk
+                  ]
+                  Field=unique1
+                ]
+                ]
+                FROM [                  Variable [ Name=#2 ]
+                  AS Variable [ Name=#9 ]
+                ]
+              )
+            ]
+            s
+            ]
+            FROM [              FunctionCall asterix.dataset@1[
+                LiteralExpr [STRING] [test.tenk]
+              ]
+              AS Variable [ Name=$tenk ]
+            ]
+            Groupby
+              GROUPING SET (
+              )
+              DECOR
+              Variable [ Name=$four ]
+              :=
+              LiteralExpr [NULL]
+              GROUP AS Variable [ Name=#2 ]
+              (
+                tenk:=Variable [ Name=$tenk ]
+              )
+
+        )
+        AS Variable [ Name=#5 ]
+      ]
+  )
+  AS Variable [ Name=#3 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=s
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.ast
index 04c8aec..30e5e96 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.4.ast
@@ -1,74 +1,171 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$v2 ]
-v2
-Variable [ Name=$v4 ]
-v4
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$v2 ]
+    v2
+    Variable [ Name=$v4 ]
+    v4
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=ten
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$v2 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$v4 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$v2 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$v2 ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$v4 ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@2[
-    Variable [ Name=$v2 ]
-    Variable [ Name=$v4 ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$v2 ]
+      v2
+      Variable [ Name=$v4 ]
+      v4
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$v2 ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$v4 ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$v2 ]
+      v2
+      Variable [ Name=$v4 ]
+      v4
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$v2 ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$v4 ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [3]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$v2 ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=v2
+  ]
   ASC
-  Variable [ Name=$v4 ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=v4
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.ast
index af33220..27364a3c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.5.ast
@@ -1,80 +1,172 @@
 DataverseUse test
 Query:
-SELECT [
-Variable [ Name=$v2 ]
-v2
-Variable [ Name=$v4 ]
-v4
-Variable [ Name=#2 ]
-grp
-FunctionCall asterix.sql-sum@1[
-  (
-    SELECT ELEMENT [
-    FieldAccessor [
-      FieldAccessor [
-        Variable [ Name=#3 ]
-        Field=tenk
+SELECT ELEMENT [
+Variable [ Name=#3 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$v2 ]
+    v2
+    Variable [ Name=$v4 ]
+    v4
+    Variable [ Name=#2 ]
+    grp
+    FunctionCall asterix.sql-sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=tenk
+          ]
+          Field=ten
+        ]
+        ]
+        FROM [          Variable [ Name=#1 ]
+          AS Variable [ Name=#4 ]
+        ]
+      )
+    ]
+    agg_sum
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
       ]
-      Field=ten
+      AS Variable [ Name=$tenk ]
     ]
-    ]
-    FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
-    ]
-  )
-]
-agg_sum
-]
-FROM [  FunctionCall asterix.dataset@1[
-    LiteralExpr [STRING] [test.tenk]
-  ]
-  AS Variable [ Name=$tenk ]
-]
-Groupby
-  GROUPING SET (
-    Variable [ Name=$v2 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-    Variable [ Name=$v4 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=four
-    ]
-  )
-  GROUPING SET (
-    Variable [ Name=$v2 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUPING SET (
-    Variable [ Name=$v2 ]
-    :=
-    FieldAccessor [
-      Variable [ Name=$tenk ]
-      Field=two
-    ]
-  ),
-  GROUP AS Variable [ Name=#1 ]
-  (
-    tenk:=Variable [ Name=$tenk ]
-  )
+    Groupby
+      Variable [ Name=$v2 ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$v4 ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
 
-Let Variable [ Name=#2 ]
-  :=
-  FunctionCall test.grouping@2[
-    Variable [ Name=$v2 ]
-    Variable [ Name=$v4 ]
-  ]
+    Let Variable [ Name=#2 ]
+      :=
+      LiteralExpr [LONG] [0]
+    UNION
+      SELECT [
+      Variable [ Name=$v2 ]
+      v2
+      Variable [ Name=$v4 ]
+      v4
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$v2 ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$v4 ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+    UNION
+      SELECT [
+      Variable [ Name=$v2 ]
+      v2
+      Variable [ Name=$v4 ]
+      v4
+      Variable [ Name=#2 ]
+      grp
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#6 ]
+              Field=tenk
+            ]
+            Field=ten
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#6 ]
+          ]
+        )
+      ]
+      agg_sum
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$v2 ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$v4 ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=#2 ]
+        :=
+        LiteralExpr [LONG] [1]
+  )
+  AS Variable [ Name=#3 ]
+]
 Orderby
-  Variable [ Name=$v2 ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=v2
+  ]
   ASC
-  Variable [ Name=$v4 ]
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=v4
+  ]
   ASC
 
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.ast
new file mode 100644
index 0000000..496b915
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.6.ast
@@ -0,0 +1,160 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+Variable [ Name=#2 ]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s ]
+    s
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#3 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#3 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s ]
+      s
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#4 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#4 ]
+            ]
+          )
+        ]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s ]
+      s
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#5 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#5 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#2 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#2 ]
+    Field=s
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.ast
new file mode 100644
index 0000000..751a23d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.7.ast
@@ -0,0 +1,163 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.object-remove@2[
+  Variable [ Name=#3 ]
+  LiteralExpr [STRING] [$2]
+]
+]
+FROM [  (
+    SELECT [
+    Variable [ Name=$two ]
+    two
+    Variable [ Name=$four ]
+    four
+    Variable [ Name=$s ]
+    $2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#4 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#5 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#5 ]
+            ]
+          )
+        ]
+    UNION
+      SELECT [
+      Variable [ Name=$two ]
+      two
+      Variable [ Name=$four ]
+      four
+      Variable [ Name=$s ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#3 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#3 ]
+    Field=$2
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.ast
new file mode 100644
index 0000000..a7b455a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.8.ast
@@ -0,0 +1,205 @@
+DataverseUse test
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=#4 ]
+  LiteralExpr [STRING] [$3]
+]
+]
+FROM [  (
+    SELECT [
+    OperatorExpr [
+      FunctionCall asterix.to-string@1[
+        FunctionCall asterix.if-null[
+          Variable [ Name=$two ]
+          LiteralExpr [STRING] [null]
+        ]
+      ]
+      ||
+      LiteralExpr [STRING] [,]
+      ||
+      FunctionCall asterix.to-string@1[
+        FunctionCall asterix.if-null[
+          Variable [ Name=$four ]
+          LiteralExpr [STRING] [null]
+        ]
+      ]
+    ]
+    $3
+    Variable [ Name=$s ]
+    $2
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Groupby
+      Variable [ Name=$two ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=two
+      ]
+      Variable [ Name=$four ]
+      :=
+      FieldAccessor [
+        Variable [ Name=$tenk ]
+        Field=four
+      ]
+      GROUP AS Variable [ Name=#1 ]
+      (
+        tenk:=Variable [ Name=$tenk ]
+      )
+
+    Let Variable [ Name=$s ]
+      :=
+      FunctionCall asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            FieldAccessor [
+              Variable [ Name=#5 ]
+              Field=tenk
+            ]
+            Field=unique1
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#5 ]
+          ]
+        )
+      ]
+    UNION
+      SELECT [
+      OperatorExpr [
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.if-null[
+            Variable [ Name=$two ]
+            LiteralExpr [STRING] [null]
+          ]
+        ]
+        ||
+        LiteralExpr [STRING] [,]
+        ||
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.if-null[
+            Variable [ Name=$four ]
+            LiteralExpr [STRING] [null]
+          ]
+        ]
+      ]
+      $3
+      Variable [ Name=$s ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        Variable [ Name=$two ]
+        :=
+        FieldAccessor [
+          Variable [ Name=$tenk ]
+          Field=two
+        ]
+        DECOR
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#6 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#6 ]
+            ]
+          )
+        ]
+    UNION
+      SELECT [
+      OperatorExpr [
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.if-null[
+            Variable [ Name=$two ]
+            LiteralExpr [STRING] [null]
+          ]
+        ]
+        ||
+        LiteralExpr [STRING] [,]
+        ||
+        FunctionCall asterix.to-string@1[
+          FunctionCall asterix.if-null[
+            Variable [ Name=$four ]
+            LiteralExpr [STRING] [null]
+          ]
+        ]
+      ]
+      $3
+      Variable [ Name=$s ]
+      $2
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [test.tenk]
+        ]
+        AS Variable [ Name=$tenk ]
+      ]
+      Groupby
+        GROUPING SET (
+        )
+        DECOR
+        Variable [ Name=$two ]
+        :=
+        LiteralExpr [NULL]
+        Variable [ Name=$four ]
+        :=
+        LiteralExpr [NULL]
+        GROUP AS Variable [ Name=#1 ]
+        (
+          tenk:=Variable [ Name=$tenk ]
+        )
+
+      Let Variable [ Name=$s ]
+        :=
+        FunctionCall asterix.sql-sum@1[
+          (
+            SELECT ELEMENT [
+            FieldAccessor [
+              FieldAccessor [
+                Variable [ Name=#7 ]
+                Field=tenk
+              ]
+              Field=unique1
+            ]
+            ]
+            FROM [              Variable [ Name=#1 ]
+              AS Variable [ Name=#7 ]
+            ]
+          )
+        ]
+  )
+  AS Variable [ Name=#4 ]
+]
+Orderby
+  FieldAccessor [
+    Variable [ Name=#4 ]
+    Field=$2
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.ast
new file mode 100644
index 0000000..18c8211
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/group-by/grouping-sets-2/grouping-sets-2.9.ast
@@ -0,0 +1,179 @@
+Set compiler.groupmemory=4MB
+Set compiler.sortmemory=4MB
+DataverseUse test
+Query:
+Let Variable [ Name=$tenk_subset ]
+  :=
+  (
+    SELECT [
+    FieldAccessor [
+      Variable [ Name=$tenk ]
+      Field=two
+    ]
+    two
+    FieldAccessor [
+      Variable [ Name=$tenk ]
+      Field=unique1
+    ]
+    unique1
+    ]
+    FROM [      FunctionCall asterix.dataset@1[
+        LiteralExpr [STRING] [test.tenk]
+      ]
+      AS Variable [ Name=$tenk ]
+    ]
+    Where
+      OperatorExpr [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=$tenk ]
+            Field=unique2
+          ]
+          mod
+          LiteralExpr [LONG] [2000]
+        ]
+        =
+        LiteralExpr [LONG] [0]
+      ]
+  )
+Let Variable [ Name=$tenk_sum ]
+  :=
+  (
+    SELECT ELEMENT [
+    Variable [ Name=#1 ]
+    ]
+    FROM [      (
+        SELECT [
+        *
+        ]
+        FROM [          Variable [ Name=$tenk_subset ]
+          AS Variable [ Name=$t ]
+        ]
+        Groupby
+          Variable [ Name=$two ]
+          :=
+          FieldAccessor [
+            Variable [ Name=$t ]
+            Field=two
+          ]
+          GROUP AS Variable [ Name=$g ]
+          (
+            t:=Variable [ Name=$t ]
+          )
+
+        Let Variable [ Name=$s ]
+          :=
+          FunctionCall asterix.sql-sum@1[
+            (
+              SELECT ELEMENT [
+              FieldAccessor [
+                FieldAccessor [
+                  Variable [ Name=#2 ]
+                  Field=t
+                ]
+                Field=unique1
+              ]
+              ]
+              FROM [                Variable [ Name=$g ]
+                AS Variable [ Name=#2 ]
+              ]
+            )
+          ]
+        UNION
+          SELECT [
+          *
+          ]
+          FROM [            Variable [ Name=$tenk_subset ]
+            AS Variable [ Name=$t ]
+          ]
+          Groupby
+            GROUPING SET (
+            )
+            DECOR
+            Variable [ Name=$two ]
+            :=
+            LiteralExpr [NULL]
+            GROUP AS Variable [ Name=$g ]
+            (
+              t:=Variable [ Name=$t ]
+            )
+
+          Let Variable [ Name=$s ]
+            :=
+            FunctionCall asterix.sql-sum@1[
+              (
+                SELECT ELEMENT [
+                FieldAccessor [
+                  FieldAccessor [
+                    Variable [ Name=#3 ]
+                    Field=t
+                  ]
+                  Field=unique1
+                ]
+                ]
+                FROM [                  Variable [ Name=$g ]
+                  AS Variable [ Name=#3 ]
+                ]
+              )
+            ]
+      )
+      AS Variable [ Name=#1 ]
+    ]
+    Orderby
+      FieldAccessor [
+        Variable [ Name=#1 ]
+        Field=s
+      ]
+      DESC
+
+    Limit
+      LiteralExpr [LONG] [3]
+  )
+SELECT [
+FieldAccessor [
+  Variable [ Name=$tt ]
+  Field=s
+]
+s
+FieldAccessor [
+  Variable [ Name=$tt ]
+  Field=two
+]
+two
+Variable [ Name=$gg ]
+gg
+]
+FROM [  Variable [ Name=$tenk_sum ]
+  AS Variable [ Name=$tt ]
+]
+Let Variable [ Name=$gg ]
+  :=
+  (
+    SELECT [
+    Variable [ Name=$gi ]
+    .*
+    ]
+    FROM [      FieldAccessor [
+        Variable [ Name=$tt ]
+        Field=g
+      ]
+      AS Variable [ Name=$gi ]
+    ]
+    Orderby
+      FieldAccessor [
+        FieldAccessor [
+          Variable [ Name=$gi ]
+          Field=t
+        ]
+        Field=unique1
+      ]
+      ASC
+
+  )
+Orderby
+  FieldAccessor [
+    Variable [ Name=$tt ]
+    Field=s
+  ]
+  DESC
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_02/hdfs_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_02/hdfs_02.3.ast
index 9a51c0b..fe0b49d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_02/hdfs_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_02/hdfs_02.3.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$line ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$line ]
       Field=content
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_03/hdfs_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_03/hdfs_03.3.ast
index 9a51c0b..fe0b49d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_03/hdfs_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_03/hdfs_03.3.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$line ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$line ]
       Field=content
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_shortcircuit/hdfs_shortcircuit.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_shortcircuit/hdfs_shortcircuit.3.ast
index 9a51c0b..fe0b49d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_shortcircuit/hdfs_shortcircuit.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hdfs/hdfs_shortcircuit/hdfs_shortcircuit.3.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$line ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$line ]
       Field=content
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.ast
index 9a51c0b..fe0b49d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$line ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$line ]
       Field=content
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
index 939c13a..676c6d9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
@@ -48,7 +48,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
index caf47d3..204a6a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
@@ -82,7 +82,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
index 63d8847..eab57b4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
@@ -96,7 +96,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
index eab8c44..3e2036e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
@@ -55,7 +55,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.similarity-jaccard-check@3[
+        FunctionCall asterix.similarity-jaccard-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=referred-topics
@@ -108,7 +108,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
index 1517a3a..86e3c17 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
@@ -55,7 +55,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=message-text
@@ -108,7 +108,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
index 5d4c69d..8dfee3d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
@@ -48,7 +48,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -73,7 +73,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -87,7 +87,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
index e88a804..1563d4c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
@@ -49,7 +49,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               Variable [ Name=$t2 ]
               Field=sender-location
@@ -87,7 +87,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -101,7 +101,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
index 0e4c541..21e29aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
index 0f93d91..6d19d11 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
@@ -27,7 +27,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-contains@3[
+    FunctionCall asterix.edit-distance-contains@3[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
index 7ba1ec6..4afcf42 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
index 204b85c..6dd3c31 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
@@ -25,7 +25,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
index c50ce00..62aa015 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
index 2cace6f..7792ca4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
@@ -11,8 +11,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -20,7 +20,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
index 71a47e3..64b1e69 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
index 609dc25..3e66801 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
index de7e638..8d7dbde 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
index 4979e59..b970dce 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       Variable [ Name=$c ]
       Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
index 0e4c541..21e29aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
index a9e83dd..f00a084 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
@@ -10,14 +10,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search-open/range-search-open.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search-open/range-search-open.5.ast
index ecfb9f3..ebd7f41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search-open/range-search-open.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search-open/range-search-open.5.ast
@@ -28,9 +28,9 @@
       OperatorExpr [
         LiteralExpr [LONG] [100]
         +
-        FunctionCall test.to-bigint@1[
+        FunctionCall asterix.to-bigint@1[
           OperatorExpr [
-            FunctionCall test.random@0[
+            FunctionCall asterix.random@0[
             ]
             /
             LiteralExpr [LONG] [2]
@@ -48,9 +48,9 @@
       OperatorExpr [
         LiteralExpr [LONG] [5]
         +
-        FunctionCall test.to-bigint@1[
+        FunctionCall asterix.to-bigint@1[
           OperatorExpr [
-            FunctionCall test.random@0[
+            FunctionCall asterix.random@0[
             ]
             /
             LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search/range-search.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search/range-search.5.ast
index ecfb9f3..ebd7f41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search/range-search.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/range-search/range-search.5.ast
@@ -28,9 +28,9 @@
       OperatorExpr [
         LiteralExpr [LONG] [100]
         +
-        FunctionCall test.to-bigint@1[
+        FunctionCall asterix.to-bigint@1[
           OperatorExpr [
-            FunctionCall test.random@0[
+            FunctionCall asterix.random@0[
             ]
             /
             LiteralExpr [LONG] [2]
@@ -48,9 +48,9 @@
       OperatorExpr [
         LiteralExpr [LONG] [5]
         +
-        FunctionCall test.to-bigint@1[
+        FunctionCall asterix.to-bigint@1[
           OperatorExpr [
-            FunctionCall test.random@0[
+            FunctionCall asterix.random@0[
             ]
             /
             LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-circular-query/rtree-secondary-index-circular-query.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-circular-query/rtree-secondary-index-circular-query.4.ast
index f411049..d16d9ff 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-circular-query/rtree-secondary-index-circular-query.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-circular-query/rtree-secondary-index-circular-query.4.ast
@@ -18,13 +18,13 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [5.0]
         LiteralExpr [DOUBLE] [5.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
index 2f985dc..0345c25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
index 2f985dc..0345c25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
index 2f985dc..0345c25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
index 13e4f9c..c358659 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
@@ -37,7 +37,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.ast
index be5c8eb..dd3dd47 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-edit-distance/ngram-edit-distance.4.ast
@@ -33,7 +33,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
index c72c206..2276491 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
@@ -38,8 +38,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -47,7 +47,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.ast
index fbc8b28..c043116 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ngram-jaccard/ngram-jaccard.4.ast
@@ -34,8 +34,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -43,7 +43,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
index 39cc5a7..dc4bea5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
@@ -38,7 +38,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -51,7 +51,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -62,7 +62,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.ast
index 5907460..aab46c8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-edit-distance/olist-edit-distance.4.ast
@@ -34,7 +34,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -45,7 +45,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
@@ -56,7 +56,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.ast
index 7a5e585..643c3aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard-inline/olist-jaccard-inline.4.ast
@@ -38,7 +38,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -69,7 +69,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -80,7 +80,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.ast
index 7bbc28e..8f2b2db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/olist-jaccard/olist-jaccard.4.ast
@@ -34,7 +34,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -61,7 +61,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -72,7 +72,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
index 7a5e585..643c3aa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
@@ -38,7 +38,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -69,7 +69,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -80,7 +80,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.ast
index 7bbc28e..8f2b2db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/ulist-jaccard/ulist-jaccard.4.ast
@@ -34,7 +34,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -61,7 +61,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -72,7 +72,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.ast
index 73e56d9..39d1e19 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard-inline/word-jaccard-inline.4.ast
@@ -38,14 +38,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.ast
index b0c74ec..2d835ed 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join-noeqjoin/word-jaccard/word-jaccard.4.ast
@@ -34,14 +34,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
index de125c4..402da91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.ast
index ad5215b..dbbd917 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-edit-distance/ngram-edit-distance.4.ast
@@ -27,7 +27,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
index a07b84a..5eec8ac 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
@@ -32,8 +32,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -41,7 +41,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard/ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard/ngram-jaccard.4.ast
index 72fd50d..0d0e374 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard/ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ngram-jaccard/ngram-jaccard.4.ast
@@ -28,8 +28,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -37,7 +37,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
index 69103f8..5669585 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance-inline/olist-edit-distance-inline.4.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -44,7 +44,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -55,7 +55,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance/olist-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance/olist-edit-distance.4.ast
index 2cbf52e..b573d5b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance/olist-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-edit-distance/olist-edit-distance.4.ast
@@ -27,7 +27,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -38,7 +38,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
@@ -49,7 +49,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.ast
index 1b069c2..fc137f8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard-inline/olist-jaccard-inline.4.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -62,7 +62,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -73,7 +73,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard/olist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard/olist-jaccard.4.ast
index fbffbda..a5c1b4c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard/olist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/olist-jaccard/olist-jaccard.4.ast
@@ -27,7 +27,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -54,7 +54,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -65,7 +65,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
index 1b069c2..fc137f8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard-inline/ulist-jaccard-inline.4.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
+  FunctionCall asterix.similarity-jaccard@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=interests
@@ -62,7 +62,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -73,7 +73,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard/ulist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard/ulist-jaccard.4.ast
index fbffbda..a5c1b4c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard/ulist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/ulist-jaccard/ulist-jaccard.4.ast
@@ -27,7 +27,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
+      FunctionCall asterix.similarity-jaccard@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -54,7 +54,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=interests
@@ -65,7 +65,7 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.len@1[
+      FunctionCall asterix.len@1[
         FieldAccessor [
           Variable [ Name=$b ]
           Field=interests
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.ast
index e324f87..92400d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard-inline/word-jaccard-inline.4.ast
@@ -31,14 +31,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard/word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard/word-jaccard.4.ast
index 917d83b..de6332b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard/word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/inverted-index-join/word-jaccard/word-jaccard.4.ast
@@ -27,14 +27,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_01/len_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_01/len_01.3.ast
index bc3ef8f..50e412d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_01/len_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_01/len_01.3.ast
@@ -2,44 +2,44 @@
 Query:
 SELECT ELEMENT [
 OrderedListConstructor [
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     OrderedListConstructor [
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
       LiteralExpr [LONG] [3]
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     UnorderedListConstructor [
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     UnorderedListConstructor [
       LiteralExpr [LONG] [1]
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     UnorderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
     ]
   ]
-  FunctionCall test.len@1[
+  FunctionCall asterix.len@1[
     UnorderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_null_01/len_null_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_null_01/len_null_01.3.ast
index f23296e..4c811b1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_null_01/len_null_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/len_null_01/len_null_01.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [len1]
     :
-    FunctionCall test.len@1[
+    FunctionCall asterix.len@1[
       OrderedListConstructor [
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.1.ast
new file mode 100644
index 0000000..736d1cc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.1.ast
@@ -0,0 +1,13 @@
+DataverseUse TinySocial
+TypeDecl t1 [
+  open RecordType {
+
+  }
+]
+TypeDecl t2 [
+  open RecordType {
+    id : int64,
+    compType : t1
+  }
+]
+DatasetDecl d1(t2) partitioned by [[id]]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.2.ast
new file mode 100644
index 0000000..f36d0ea
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.2.ast
@@ -0,0 +1 @@
+DataverseUse TinySocial
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.3.ast
new file mode 100644
index 0000000..85b966e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/list-star_01/list-star_01.3.ast
@@ -0,0 +1,549 @@
+DataverseUse TinySocial
+Query:
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [t1]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val2]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t2]
+    :
+    IndexAccessor [
+      (
+        SELECT ELEMENT [
+        Variable [ Name=$v ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [TinySocial.d1]
+          ]
+          AS Variable [ Name=$v ]
+        ]
+      )
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t3]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val2]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t4]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t5]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [NULL]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t6]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [NULL]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+          (
+            LiteralExpr [STRING] [c]
+            :
+            LiteralExpr [STRING] [c_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t7]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [LONG] [5]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [DOUBLE] [3.2]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val2]
+          )
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+          (
+            LiteralExpr [STRING] [c]
+            :
+            LiteralExpr [STRING] [c_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t8]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        RecordConstructor [
+        ]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t9]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        LiteralExpr [LONG] [5]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t10]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        LiteralExpr [NULL]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t11]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        LiteralExpr [MISSING]
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val3]
+          )
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val3]
+          )
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t12]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [b]
+            :
+            LiteralExpr [STRING] [b_val1]
+          )
+          (
+            LiteralExpr [STRING] [a]
+            :
+            LiteralExpr [STRING] [a_val1]
+          )
+        ]
+        LiteralExpr [LONG] [5]
+        OrderedListConstructor [
+          LiteralExpr [LONG] [3]
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t13]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        RecordConstructor [
+        ]
+        RecordConstructor [
+        ]
+        RecordConstructor [
+        ]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t14]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        LiteralExpr [LONG] [1]
+        LiteralExpr [LONG] [2]
+        LiteralExpr [LONG] [3]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t15]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+        LiteralExpr [LONG] [1]
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t16]
+    :
+    IndexAccessor [
+      OrderedListConstructor [
+      ]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t17]
+    :
+    IndexAccessor [
+      LiteralExpr [STRING] [non_array]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t18]
+    :
+    IndexAccessor [
+      LiteralExpr [MISSING]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t19]
+    :
+    IndexAccessor [
+      LiteralExpr [NULL]
+      Index: STAR
+    ]
+  )
+  (
+    LiteralExpr [STRING] [t20]
+    :
+    (
+      SELECT [
+      IndexAccessor [
+        FieldAccessor [
+          Variable [ Name=$d ]
+          Field=followers
+        ]
+        Index: STAR
+      ]
+      $1
+      ]
+      FROM [        FunctionCall asterix.dataset@1[
+          LiteralExpr [STRING] [TinySocial.d1]
+        ]
+        AS Variable [ Name=$d ]
+      ]
+    )
+  )
+]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_01/csv_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_01/csv_01.3.ast
index 75a14fc..86d45c5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_01/csv_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_01/csv_01.3.ast
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [date-after]
     :
-    FunctionCall temp.date@1[
+    FunctionCall asterix.date@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=date
@@ -55,7 +55,7 @@
   (
     LiteralExpr [STRING] [time-after]
     :
-    FunctionCall temp.time@1[
+    FunctionCall asterix.time@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=time
@@ -73,7 +73,7 @@
   (
     LiteralExpr [STRING] [datetime-after]
     :
-    FunctionCall temp.datetime@1[
+    FunctionCall asterix.datetime@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=datetime
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_cr/csv_08.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_cr/csv_08.3.ast
index 75a14fc..86d45c5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_cr/csv_08.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_cr/csv_08.3.ast
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [date-after]
     :
-    FunctionCall temp.date@1[
+    FunctionCall asterix.date@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=date
@@ -55,7 +55,7 @@
   (
     LiteralExpr [STRING] [time-after]
     :
-    FunctionCall temp.time@1[
+    FunctionCall asterix.time@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=time
@@ -73,7 +73,7 @@
   (
     LiteralExpr [STRING] [datetime-after]
     :
-    FunctionCall temp.datetime@1[
+    FunctionCall asterix.datetime@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=datetime
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_crlf/csv_08.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_crlf/csv_08.3.ast
index 75a14fc..86d45c5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_crlf/csv_08.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_crlf/csv_08.3.ast
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [date-after]
     :
-    FunctionCall temp.date@1[
+    FunctionCall asterix.date@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=date
@@ -55,7 +55,7 @@
   (
     LiteralExpr [STRING] [time-after]
     :
-    FunctionCall temp.time@1[
+    FunctionCall asterix.time@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=time
@@ -73,7 +73,7 @@
   (
     LiteralExpr [STRING] [datetime-after]
     :
-    FunctionCall temp.datetime@1[
+    FunctionCall asterix.datetime@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=datetime
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_lf/csv_08.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_lf/csv_08.3.ast
index 75a14fc..86d45c5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_lf/csv_08.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/load/csv_08_header_lf/csv_08.3.ast
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [date-after]
     :
-    FunctionCall temp.date@1[
+    FunctionCall asterix.date@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=date
@@ -55,7 +55,7 @@
   (
     LiteralExpr [STRING] [time-after]
     :
-    FunctionCall temp.time@1[
+    FunctionCall asterix.time@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=time
@@ -73,7 +73,7 @@
   (
     LiteralExpr [STRING] [datetime-after]
     :
-    FunctionCall temp.datetime@1[
+    FunctionCall asterix.datetime@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=datetime
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/groupby-orderby-count/groupby-orderby-count.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/groupby-orderby-count/groupby-orderby-count.3.ast
index 5d11c79..75e8b66 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/groupby-orderby-count/groupby-orderby-count.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/groupby-orderby-count/groupby-orderby-count.3.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$t ]
 ,
-  FunctionCall twitter.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$t ]
       Field=text
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/nested-loop-join_01/nested-loop-join_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/nested-loop-join_01/nested-loop-join_01.3.ast
index ca9f0b3..7ba0188 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/nested-loop-join_01/nested-loop-join_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/nested-loop-join_01/nested-loop-join_01.3.ast
@@ -15,7 +15,7 @@
   (
     LiteralExpr [STRING] [user-lottery_numbers-len]
     :
-    FunctionCall test.len@1[
+    FunctionCall asterix.len@1[
       FieldAccessor [
         Variable [ Name=$user ]
         Field=lottery_numbers
@@ -25,7 +25,7 @@
   (
     LiteralExpr [STRING] [visitor-lottery_numbers-len]
     :
-    FunctionCall test.len@1[
+    FunctionCall asterix.len@1[
       FieldAccessor [
         Variable [ Name=$visitor ]
         Field=lottery_numbers
@@ -46,14 +46,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.len@1[
+    FunctionCall asterix.len@1[
       FieldAccessor [
         Variable [ Name=$user ]
         Field=lottery_numbers
       ]
     ]
     =
-    FunctionCall test.len@1[
+    FunctionCall asterix.len@1[
       FieldAccessor [
         Variable [ Name=$visitor ]
         Field=lottery_numbers
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/query_issue267/query_issue267.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/query_issue267/query_issue267.3.ast
index d17917f..2cb138c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/query_issue267/query_issue267.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/query_issue267/query_issue267.3.ast
@@ -16,14 +16,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.lowercase@1[
+      FunctionCall asterix.lowercase@1[
         FieldAccessor [
           Variable [ Name=$m ]
           Field=name
         ]
       ]
       =
-      FunctionCall test.lowercase@1[
+      FunctionCall asterix.lowercase@1[
         FieldAccessor [
           Variable [ Name=$l ]
           Field=name
@@ -32,14 +32,14 @@
     ]
     and
     OperatorExpr [
-      FunctionCall test.string-length@1[
+      FunctionCall asterix.string-length@1[
         FieldAccessor [
           Variable [ Name=$m ]
           Field=name
         ]
       ]
       =
-      FunctionCall test.string-length@1[
+      FunctionCall asterix.string-length@1[
         FieldAccessor [
           Variable [ Name=$l ]
           Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/year_01/year_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/year_01/year_01.3.ast
index 43d5ce0..153ee6a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/year_01/year_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/misc/year_01/year_01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.get-year@1[
+FunctionCall asterix.get-year@1[
   LiteralExpr [STRING] [1996-12-01]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-ngram-index/load-with-ngram-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-ngram-index/load-with-ngram-index.3.ast
index 2ca5870..dcd9dd7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-ngram-index/load-with-ngram-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-ngram-index/load-with-ngram-index.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$c ]
 ]
 Where
-  FunctionCall TinySocial.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-rtree-index/load-with-rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-rtree-index/load-with-rtree-index.3.ast
index 71ef449..60f04c7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-rtree-index/load-with-rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-rtree-index/load-with-rtree-index.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$c ]
 ]
 Where
-  FunctionCall TinySocial.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
@@ -17,12 +17,12 @@
       ]
       Field=sender-location
     ]
-    FunctionCall TinySocial.create-rectangle@2[
-      FunctionCall TinySocial.create-point@2[
+    FunctionCall asterix.create-rectangle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [0.0]
       ]
-      FunctionCall TinySocial.create-point@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [50.0]
         LiteralExpr [DOUBLE] [80.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-word-index/load-with-word-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-word-index/load-with-word-index.3.ast
index 8300e7e..a7e3777 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-word-index/load-with-word-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/load-with-word-index/load-with-word-index.3.ast
@@ -10,8 +10,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall TinySocial.similarity-jaccard-check@3[
-    FunctionCall TinySocial.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$c ]
@@ -20,7 +20,7 @@
         Field=name
       ]
     ]
-    FunctionCall TinySocial.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Nathan Giesen]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index-nullable/scan-delete-inverted-index-ngram-secondary-index-nullable.5.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-ngram-secondary-index/scan-delete-inverted-index-ngram-secondary-index.5.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index-nullable/scan-delete-inverted-index-word-secondary-index-nullable.5.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-inverted-index-word-secondary-index/scan-delete-inverted-index-word-secondary-index.5.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
index 9ce46c5..999e4e0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index-nullable/scan-delete-rtree-secondary-index-nullable.5.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
index 9ce46c5..999e4e0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.5.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index-nullable/scan-insert-inverted-index-ngram-secondary-index-nullable.5.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-ngram-secondary-index/scan-insert-inverted-index-ngram-secondary-index.5.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index-nullable/scan-insert-inverted-index-word-secondary-index-nullable.5.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-inverted-index-word-secondary-index/scan-insert-inverted-index-word-secondary-index.5.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
index 8977eed..ca67b97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index-nullable/scan-insert-rtree-secondary-index-nullable.5.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
index 8977eed..ca67b97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index-dml/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.5.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
index 943af65..04331ab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
@@ -60,7 +60,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -91,7 +91,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -111,7 +111,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin/leftouterjoin.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
index 8117066..f584fa8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
@@ -106,7 +106,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/rtree-index/rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/rtree-index/rtree-index.3.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/rtree-index/rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/external-indexing/rtree-index/rtree-index.3.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
index 2de4faa..338d9fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
@@ -37,7 +37,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
index 5629998..d87de27 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
@@ -33,7 +33,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
index 8fb65e3..d1b9639 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
@@ -38,8 +38,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -50,7 +50,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard/ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
index 74328ad..cd5661b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
@@ -34,8 +34,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -46,7 +46,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
index 4881a92..f7abe91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
@@ -60,7 +60,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
index cce9421..2282833 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
@@ -37,8 +37,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -47,7 +47,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard/word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard/word-jaccard.4.ast
index 4a4a222..5be9b6e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard/word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-join/word-jaccard/word-jaccard.4.ast
@@ -33,8 +33,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -43,7 +43,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
index 8117066..f584fa8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
@@ -106,7 +106,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
index 5fd6a09..09c197a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
@@ -126,7 +126,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
index f3cc092..c0449bc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx1/probe-pidx-with-join-invidx-sidx1.3.ast
@@ -67,7 +67,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.similarity-jaccard-check@3[
+        FunctionCall asterix.similarity-jaccard-check@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t1 ]
@@ -138,7 +138,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
index 769e4cf..5abf3e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
@@ -67,7 +67,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t1 ]
@@ -138,7 +138,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
index 943af65..04331ab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
@@ -60,7 +60,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -91,7 +91,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -111,7 +111,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
index 14c38d5..03bf2e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
@@ -61,7 +61,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               FieldAccessor [
                 Variable [ Name=$t2 ]
@@ -111,7 +111,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -131,7 +131,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
index 8825927..1bcf75d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
@@ -33,7 +33,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-contains@3[
+    FunctionCall asterix.edit-distance-contains@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$paper ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
index 7dafb90..563b478 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
index 627ab43..e2f8302 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
@@ -31,7 +31,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$paper ]
@@ -44,7 +44,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
index 41a5216..b47036b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
index d87360a..8fb87b1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
@@ -14,8 +14,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -26,7 +26,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
index bb146ed..4e30ec5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance-panic/inverted-index-olist-edit-distance-panic.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
index b451307..91818e2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-edit-distance/inverted-index-olist-edit-distance.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
index 245e0a6..ad6c766 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-olist-jaccard/inverted-index-olist-jaccard.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
index 2b79329..53cc10b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-ulist-jaccard/inverted-index-ulist-jaccard.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$c ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-nullable/rtree-secondary-index-nullable.4.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index-open/rtree-secondary-index-open.4.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
index 943af65..04331ab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
@@ -60,7 +60,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -91,7 +91,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -111,7 +111,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin/leftouterjoin.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
index 8117066..f584fa8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/leftouterjoin/leftouterjoin.3.ast
@@ -106,7 +106,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/rtree-index/rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/rtree-index/rtree-index.3.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/rtree-index/rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/external-indexing/rtree-index/rtree-index.3.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
index 2de4faa..338d9fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
@@ -37,7 +37,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
index 5629998..d87de27 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
@@ -33,7 +33,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           FieldAccessor [
             Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
index e1044f3..6439f72 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
@@ -38,8 +38,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -50,7 +50,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard/ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
index f111822..5abf683 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/ngram-jaccard/ngram-jaccard.4.ast
@@ -34,8 +34,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -46,7 +46,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
index 4881a92..f7abe91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
@@ -60,7 +60,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
index cce9421..2282833 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
@@ -37,8 +37,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$a ]
@@ -47,7 +47,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard/word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard/word-jaccard.4.ast
index 4a4a222..5be9b6e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard/word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-join/word-jaccard/word-jaccard.4.ast
@@ -33,8 +33,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$a ]
@@ -43,7 +43,7 @@
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$b ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
index 8117066..f584fa8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
@@ -106,7 +106,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
index 5fd6a09..09c197a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
@@ -126,7 +126,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
index 1b6e63e..e0496a1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
@@ -61,7 +61,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=message-text
@@ -123,7 +123,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
index 943af65..04331ab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
@@ -60,7 +60,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             FieldAccessor [
               Variable [ Name=$t2 ]
@@ -91,7 +91,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -111,7 +111,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
index 14c38d5..03bf2e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
@@ -61,7 +61,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               FieldAccessor [
                 Variable [ Name=$t2 ]
@@ -111,7 +111,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$t1 ]
@@ -131,7 +131,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
index 8825927..1bcf75d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
@@ -33,7 +33,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-contains@3[
+    FunctionCall asterix.edit-distance-contains@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$paper ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
index 7dafb90..563b478 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
index 41a5216..b47036b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
@@ -13,7 +13,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
index d87360a..8fb87b1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
@@ -14,8 +14,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -26,7 +26,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
index d9a04f1..8a58ffc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
@@ -12,7 +12,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
index 480570a..92d61f3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
@@ -13,8 +13,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$o ]
@@ -23,7 +23,7 @@
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
index 6dbb3ea..5970091 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/nested-open-index/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
@@ -21,7 +21,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       FieldAccessor [
         Variable [ Name=$o ]
@@ -29,7 +29,7 @@
       ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs0/abs0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs0/abs0.3.ast
index 406f256..45c3a40 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs0/abs0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs0/abs0.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs1/abs1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs1/abs1.3.ast
index 71c5830..069ced3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs1/abs1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs1/abs1.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs2/abs2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs2/abs2.3.ast
index 0f65e75..5c9be1a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs2/abs2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs2/abs2.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs3/abs3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs3/abs3.3.ast
index 91fa426..7e934d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs3/abs3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs3/abs3.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs4/abs4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs4/abs4.3.ast
index 26f4e05..e328898 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs4/abs4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/abs4/abs4.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.abs@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.abs@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,21 +13,21 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.abs@1[
+    FunctionCall asterix.abs@1[
       - LiteralExpr [DOUBLE] [1.11]
     ]
   )
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.abs@1[
+    FunctionCall asterix.abs@1[
       LiteralExpr [DOUBLE] [12.9]
     ]
   )
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.abs@1[
+    FunctionCall asterix.abs@1[
       LiteralExpr [DOUBLE] [1.11]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_double/add_double.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_double/add_double.1.ast
index 7e1443c..8ddcd06 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_double/add_double.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_double/add_double.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_float/add_float.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_float/add_float.1.ast
index 1e62488..167483e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_float/add_float.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_float/add_float.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int16/add_int16.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int16/add_int16.1.ast
index 6deac21..01f5c46 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int16/add_int16.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int16/add_int16.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int32/add_int32.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int32/add_int32.1.ast
index ae05be5..9aa0183 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int32/add_int32.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int32/add_int32.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int64/add_int64.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int64/add_int64.1.ast
index a63e244..93601a1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int64/add_int64.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int64/add_int64.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int8/add_int8.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int8/add_int8.1.ast
index 3b2741d..f0e6e9d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int8/add_int8.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/add_int8/add_int8.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       +
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling0/ceiling0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling0/ceiling0.3.ast
index 971b343..23f481c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling0/ceiling0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling0/ceiling0.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling1/ceiling1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling1/ceiling1.3.ast
index 5c82b7f..4c09193 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling1/ceiling1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling1/ceiling1.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling2/ceiling2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling2/ceiling2.3.ast
index 94a56b5..2120ca2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling2/ceiling2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling2/ceiling2.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling3/ceiling3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling3/ceiling3.3.ast
index 741ba0b..f8003c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling3/ceiling3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling3/ceiling3.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling4/ceiling4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling4/ceiling4.3.ast
index 1179f48..3d282a3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling4/ceiling4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/ceiling4/ceiling4.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.ceiling@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.ceiling@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,21 +13,21 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.ceiling@1[
+    FunctionCall asterix.ceiling@1[
       - LiteralExpr [DOUBLE] [1.11]
     ]
   )
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.ceiling@1[
+    FunctionCall asterix.ceiling@1[
       LiteralExpr [DOUBLE] [12.9]
     ]
   )
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.ceiling@1[
+    FunctionCall asterix.ceiling@1[
       LiteralExpr [DOUBLE] [1.11]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_double/divide_double.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_double/divide_double.1.ast
index 67d0694..6b2a436 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_double/divide_double.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_double/divide_double.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_float/divide_float.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_float/divide_float.1.ast
index 958937c..907094d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_float/divide_float.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_float/divide_float.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.1.ast
index 21f2d7f..92c636e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.2.ast
index f92b4c2..cb38eb5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int16/divide_int16.2.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       div
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [1]
       ]
       div
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.1.ast
index 37785cf..5f2bfec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.2.ast
index 75eb726..e093f45 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int32/divide_int32.2.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       div
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [1]
       ]
       div
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.1.ast
index 22a3401..4e119e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.2.ast
index 8f295f3..2c265cf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int64/divide_int64.2.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       div
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [1]
       ]
       div
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.1.ast
index 2243ace..60ee303 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       /
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-6]
       ]
       /
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
       /
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.2.ast
index f1e7dab..a3c05bc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/divide_int8/divide_int8.2.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       div
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-6]
       ]
       div
@@ -108,7 +108,7 @@
     LiteralExpr [STRING] [result9]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [1]
       ]
       div
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor0/floor0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor0/floor0.3.ast
index d6d9169..859e589 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor0/floor0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor0/floor0.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor1/floor1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor1/floor1.3.ast
index 8f18c92..b2604a1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor1/floor1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor1/floor1.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor2/floor2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor2/floor2.3.ast
index 8ce77da..35b3d0a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor2/floor2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor2/floor2.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor3/floor3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor3/floor3.3.ast
index d08e4526..ef4bea2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor3/floor3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor3/floor3.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor4/floor4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor4/floor4.3.ast
index 1bb6af7..d8a5c1c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor4/floor4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/floor4/floor4.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.floor@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.floor@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,21 +13,21 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.floor@1[
+    FunctionCall asterix.floor@1[
       - LiteralExpr [DOUBLE] [1.11]
     ]
   )
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.floor@1[
+    FunctionCall asterix.floor@1[
       LiteralExpr [DOUBLE] [12.9]
     ]
   )
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.floor@1[
+    FunctionCall asterix.floor@1[
       LiteralExpr [DOUBLE] [1.11]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_double/multiply_double.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_double/multiply_double.1.ast
index 42394d3..3f90469 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_double/multiply_double.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_double/multiply_double.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_float/multiply_float.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_float/multiply_float.1.ast
index 8568d10..8f6a1b9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_float/multiply_float.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_float/multiply_float.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int16/multiply_int16.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int16/multiply_int16.1.ast
index 6419ff0..8d8ebd6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int16/multiply_int16.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int16/multiply_int16.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int32/multiply_int32.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int32/multiply_int32.1.ast
index 55a5562..5e08c01 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int32/multiply_int32.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int32/multiply_int32.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int64/multiply_int64.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int64/multiply_int64.1.ast
index 6498a56..3f0d0c2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int64/multiply_int64.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int64/multiply_int64.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int8/multiply_int8.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int8/multiply_int8.1.ast
index 2487b68..6f31dcc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int8/multiply_int8.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/multiply_int8/multiply_int8.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       *
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       *
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even0/round-half-to-even0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even0/round-half-to-even0.3.ast
index 9c771d2..29df6f2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even0/round-half-to-even0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even0/round-half-to-even0.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even1/round-half-to-even1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even1/round-half-to-even1.3.ast
index 28d6297..eeb7203 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even1/round-half-to-even1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even1/round-half-to-even1.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even2/round-half-to-even2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even2/round-half-to-even2.3.ast
index 6007940..3800d98 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even2/round-half-to-even2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even2/round-half-to-even2.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.5]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.5]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even20/round-half-to-even20.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even20/round-half-to-even20.3.ast
index 811c63a..5d6218f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even20/round-half-to-even20.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even20/round-half-to-even20.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
       LiteralExpr [LONG] [2]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
       LiteralExpr [LONG] [2]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
       LiteralExpr [LONG] [2]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
       LiteralExpr [LONG] [2]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
       LiteralExpr [LONG] [2]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
       LiteralExpr [LONG] [2]
@@ -64,8 +64,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
       LiteralExpr [LONG] [2]
@@ -74,8 +74,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even21/round-half-to-even21.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even21/round-half-to-even21.3.ast
index b3d1598..3ae6e0e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even21/round-half-to-even21.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even21/round-half-to-even21.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
       LiteralExpr [LONG] [2]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
       LiteralExpr [LONG] [2]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
       LiteralExpr [LONG] [2]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
       LiteralExpr [LONG] [2]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
       LiteralExpr [LONG] [2]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
       LiteralExpr [LONG] [2]
@@ -64,8 +64,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
       LiteralExpr [LONG] [2]
@@ -74,8 +74,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even22/round-half-to-even22.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even22/round-half-to-even22.3.ast
index 0e2608e..94970f2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even22/round-half-to-even22.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even22/round-half-to-even22.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.555]
       ]
       LiteralExpr [LONG] [2]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.322]
       ]
       LiteralExpr [LONG] [2]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
       LiteralExpr [LONG] [3]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
       LiteralExpr [LONG] [4]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
       LiteralExpr [LONG] [5]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
       LiteralExpr [LONG] [6]
@@ -64,8 +64,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
       LiteralExpr [LONG] [0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even23/round-half-to-even23.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even23/round-half-to-even23.3.ast
index 1797fdb..ed2d30a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even23/round-half-to-even23.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even23/round-half-to-even23.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.555]
       ]
       LiteralExpr [LONG] [2]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.322]
       ]
       LiteralExpr [LONG] [2]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
       LiteralExpr [LONG] [3]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
       LiteralExpr [LONG] [4]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
       LiteralExpr [LONG] [5]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
       LiteralExpr [LONG] [6]
@@ -64,8 +64,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
       LiteralExpr [LONG] [0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even24/round-half-to-even24.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even24/round-half-to-even24.3.ast
index 80b6d09..f45c1b0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even24/round-half-to-even24.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even24/round-half-to-even24.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.015]
       ]
       LiteralExpr [LONG] [2]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.025]
       ]
       LiteralExpr [LONG] [2]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [3.567812E+3]
       ]
       LiteralExpr [LONG] [2]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [4.7564E-3]
       ]
       LiteralExpr [LONG] [2]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.round-half-to-even@2[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@2[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [35612.25]
       ]
       - LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even3/round-half-to-even3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even3/round-half-to-even3.3.ast
index 3376733..01f409e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even3/round-half-to-even3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even3/round-half-to-even3.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.5]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.5]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even4/round-half-to-even4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even4/round-half-to-even4.3.ast
index 1b4eb21..ce46291 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even4/round-half-to-even4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even4/round-half-to-even4.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [1.5]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [2.5]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even5/round-half-to-even5.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even5/round-half-to-even5.3.ast
index e2e0f27..1c5f143 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even5/round-half-to-even5.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round-half-to-even5/round-half-to-even5.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round-half-to-even@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round-half-to-even@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,21 +13,21 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round-half-to-even@1[
+    FunctionCall asterix.round-half-to-even@1[
       - LiteralExpr [DOUBLE] [1.5]
     ]
   )
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round-half-to-even@1[
+    FunctionCall asterix.round-half-to-even@1[
       LiteralExpr [DOUBLE] [12.5]
     ]
   )
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round-half-to-even@1[
+    FunctionCall asterix.round-half-to-even@1[
       LiteralExpr [DOUBLE] [1.5]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round0/round0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round0/round0.3.ast
index f41a151..9a5ddb2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round0/round0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round0/round0.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-0]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [0]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round1/round1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round1/round1.3.ast
index ae7b4ce..7d0a2b8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round1/round1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round1/round1.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [-23]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [-29]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-21]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [20]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int16@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [22]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int32@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [23]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [f7]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int64@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [27]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round2/round2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round2/round2.3.ast
index c6fd56d..b2966af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round2/round2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round2/round2.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [f4]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [f5]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [f6]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.float@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round3/round3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round3/round3.3.ast
index 6abd653..83b6831c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round3/round3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round3/round3.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [d0]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [20.1]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [d1]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-20.56e-30]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [d2]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [NaN]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [d3]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [INF]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [d4]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-INF]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [d5]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-0.0]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [d6]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.double@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [0.0]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round4/round4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round4/round4.3.ast
index e446715..8dd3e3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round4/round4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/round4/round4.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [f0]
     :
-    FunctionCall test.round@1[
-      FunctionCall test.int8@1[
+    FunctionCall asterix.round@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [-20]
       ]
     ]
@@ -13,21 +13,21 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.round@1[
+    FunctionCall asterix.round@1[
       - LiteralExpr [DOUBLE] [1.11]
     ]
   )
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.round@1[
+    FunctionCall asterix.round@1[
       LiteralExpr [DOUBLE] [12.9]
     ]
   )
   (
     LiteralExpr [STRING] [f3]
     :
-    FunctionCall test.round@1[
+    FunctionCall asterix.round@1[
       LiteralExpr [DOUBLE] [1.11]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_double/subtract_double.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_double/subtract_double.1.ast
index b6a0800..b15d3b9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_double/subtract_double.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_double/subtract_double.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_float/subtract_float.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_float/subtract_float.1.ast
index 607e329..425174b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_float/subtract_float.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_float/subtract_float.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int16/subtract_int16.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int16/subtract_int16.1.ast
index a82b04c..4d3157a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int16/subtract_int16.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int16/subtract_int16.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int32/subtract_int32.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int32/subtract_int32.1.ast
index 1d60412..7e8789b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int32/subtract_int32.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int32/subtract_int32.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int64/subtract_int64.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int64/subtract_int64.1.ast
index 91964c1..9d8a11f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int64/subtract_int64.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int64/subtract_int64.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int8/subtract_int8.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int8/subtract_int8.1.ast
index dd072ac..f6c2f81b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int8/subtract_int8.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/subtract_int8/subtract_int8.1.ast
@@ -4,11 +4,11 @@
     LiteralExpr [STRING] [result1]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
     ]
@@ -17,11 +17,11 @@
     LiteralExpr [STRING] [result2]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.int16@1[
+      FunctionCall asterix.int16@1[
         LiteralExpr [STRING] [2]
       ]
     ]
@@ -30,11 +30,11 @@
     LiteralExpr [STRING] [result3]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.int32@1[
+      FunctionCall asterix.int32@1[
         LiteralExpr [STRING] [+3]
       ]
     ]
@@ -43,11 +43,11 @@
     LiteralExpr [STRING] [result4]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.int64@1[
+      FunctionCall asterix.int64@1[
         LiteralExpr [STRING] [-4]
       ]
     ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [result5]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.float@1[
+      FunctionCall asterix.float@1[
         LiteralExpr [STRING] [-5.5f]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [result6]
     :
     OperatorExpr [
-      FunctionCall null.int8@1[
+      FunctionCall asterix.int8@1[
         LiteralExpr [STRING] [+1]
       ]
       -
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
     ]
@@ -82,7 +82,7 @@
     LiteralExpr [STRING] [result7]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
@@ -93,7 +93,7 @@
     LiteralExpr [STRING] [result8]
     :
     OperatorExpr [
-      FunctionCall null.double@1[
+      FunctionCall asterix.double@1[
         LiteralExpr [STRING] [-6.5d]
       ]
       -
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_double_02/unary-minus_double_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_double_02/unary-minus_double_02.3.ast
index c74b17a..8c13b77 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_double_02/unary-minus_double_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_double_02/unary-minus_double_02.3.ast
@@ -4,28 +4,28 @@
   (
     LiteralExpr [STRING] [double1]
     :
-    - FunctionCall test.double@1[
+    - FunctionCall asterix.double@1[
   LiteralExpr [STRING] [-20.56e-30]
 ]
   )
   (
     LiteralExpr [STRING] [double2]
     :
-    - FunctionCall test.double@1[
+    - FunctionCall asterix.double@1[
   LiteralExpr [STRING] [NaN]
 ]
   )
   (
     LiteralExpr [STRING] [double3]
     :
-    - FunctionCall test.double@1[
+    - FunctionCall asterix.double@1[
   LiteralExpr [STRING] [INF]
 ]
   )
   (
     LiteralExpr [STRING] [double4]
     :
-    - FunctionCall test.double@1[
+    - FunctionCall asterix.double@1[
   LiteralExpr [STRING] [-INF]
 ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_float_02/unary-minus_float_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_float_02/unary-minus_float_02.3.ast
index cd38a0c..6cf7762 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_float_02/unary-minus_float_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_float_02/unary-minus_float_02.3.ast
@@ -4,28 +4,28 @@
   (
     LiteralExpr [STRING] [float1]
     :
-    - FunctionCall test.float@1[
+    - FunctionCall asterix.float@1[
   LiteralExpr [STRING] [-80.20f]
 ]
   )
   (
     LiteralExpr [STRING] [float2]
     :
-    - FunctionCall test.float@1[
+    - FunctionCall asterix.float@1[
   LiteralExpr [STRING] [NaN]
 ]
   )
   (
     LiteralExpr [STRING] [float3]
     :
-    - FunctionCall test.float@1[
+    - FunctionCall asterix.float@1[
   LiteralExpr [STRING] [INF]
 ]
   )
   (
     LiteralExpr [STRING] [float4]
     :
-    - FunctionCall test.float@1[
+    - FunctionCall asterix.float@1[
   LiteralExpr [STRING] [-INF]
 ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_int_02/unary-minus_int_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_int_02/unary-minus_int_02.3.ast
index b37a097..4469767 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_int_02/unary-minus_int_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/numeric/unary-minus_int_02/unary-minus_int_02.3.ast
@@ -4,28 +4,28 @@
   (
     LiteralExpr [STRING] [int8]
     :
-    - FunctionCall test.int8@1[
+    - FunctionCall asterix.int8@1[
   LiteralExpr [STRING] [+80]
 ]
   )
   (
     LiteralExpr [STRING] [int16]
     :
-    - FunctionCall test.int16@1[
+    - FunctionCall asterix.int16@1[
   LiteralExpr [STRING] [160]
 ]
   )
   (
     LiteralExpr [STRING] [int32]
     :
-    - FunctionCall test.int32@1[
+    - FunctionCall asterix.int32@1[
   LiteralExpr [STRING] [+320]
 ]
   )
   (
     LiteralExpr [STRING] [int64]
     :
-    - FunctionCall test.int64@1[
+    - FunctionCall asterix.int64@1[
   LiteralExpr [STRING] [-640]
 ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_01/closed-record-constructor_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_01/closed-record-constructor_01.3.ast
index a24813d..bfe64db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_01/closed-record-constructor_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_01/closed-record-constructor_01.3.ast
@@ -2,7 +2,7 @@
 Set import-private-functions=true
 Query:
 SELECT ELEMENT [
-FunctionCall test.closed-object-constructor@8[
+FunctionCall asterix.closed-object-constructor[
   LiteralExpr [STRING] [foo1]
   LiteralExpr [LONG] [10]
   LiteralExpr [STRING] [bar1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_02/closed-record-constructor_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_02/closed-record-constructor_02.3.ast
index 0fd5e43..d158af6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_02/closed-record-constructor_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/closed-object-constructor_02/closed-record-constructor_02.3.ast
@@ -2,11 +2,11 @@
 Set import-private-functions=true
 Query:
 SELECT ELEMENT [
-FunctionCall test.closed-object-constructor@8[
+FunctionCall asterix.closed-object-constructor[
   LiteralExpr [STRING] [foo1]
   LiteralExpr [LONG] [10]
   LiteralExpr [STRING] [bar1]
-  FunctionCall test.closed-object-constructor@12[
+  FunctionCall asterix.closed-object-constructor[
     LiteralExpr [STRING] [bar1.1]
     LiteralExpr [LONG] [10]
     LiteralExpr [STRING] [bar1.2]
@@ -14,7 +14,7 @@
     LiteralExpr [STRING] [bar1.3]
     LiteralExpr [LONG] [30]
     LiteralExpr [STRING] [bar1.4]
-    FunctionCall test.closed-object-constructor@8[
+    FunctionCall asterix.closed-object-constructor[
       LiteralExpr [STRING] [bar1.4.1]
       LiteralExpr [LONG] [10]
       LiteralExpr [STRING] [bar1.4.2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/field-access-by-index_01/field-access-by-index_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/field-access-by-index_01/field-access-by-index_01.3.ast
index 9d46669..b42dcbe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/field-access-by-index_01/field-access-by-index_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/field-access-by-index_01/field-access-by-index_01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Set import-private-functions=true
 Query:
-FunctionCall test.field-access-by-index@2[
+FunctionCall asterix.field-access-by-index@2[
   RecordConstructor [
     (
       LiteralExpr [STRING] [foo1]
@@ -24,7 +24,7 @@
       LiteralExpr [LONG] [40]
     )
   ]
-  FunctionCall test.int32@1[
+  FunctionCall asterix.int32@1[
     LiteralExpr [STRING] [2]
   ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.1.ast
index 288ed48..c6f1ae8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.1.ast
@@ -1,5 +1,5 @@
 Query:
-FunctionCall null.get-object-field-value@2[
+FunctionCall asterix.get-object-field-value@2[
   RecordConstructor [
     (
       LiteralExpr [STRING] [id]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.2.ast
index b95a864..5f98520 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.2.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.2.ast
@@ -1,5 +1,5 @@
 Query:
-FunctionCall null.get-object-field-value@2[
+FunctionCall asterix.get-object-field-value@2[
   RecordConstructor [
     (
       LiteralExpr [STRING] [id]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.3.ast
index 8f5b139..597ce85 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/documentation-example/documentation-example.3.ast
@@ -1,5 +1,5 @@
 Query:
-FunctionCall null.get-object-field-value@2[
+FunctionCall asterix.get-object-field-value@2[
   RecordConstructor [
     (
       LiteralExpr [STRING] [id]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-closed/highly-nested-open.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-closed/highly-nested-open.3.ast
index da3d608..19c9bbf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-closed/highly-nested-open.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-closed/highly-nested-open.3.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$result ]
   :=
-  FunctionCall test.get-object-field-value@2[
+  FunctionCall asterix.get-object-field-value@2[
     Variable [ Name=$test ]
     LiteralExpr [STRING] [class]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-mixed/highly-nested-mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-mixed/highly-nested-mixed.3.ast
index da3d608..19c9bbf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-mixed/highly-nested-mixed.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-mixed/highly-nested-mixed.3.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$result ]
   :=
-  FunctionCall test.get-object-field-value@2[
+  FunctionCall asterix.get-object-field-value@2[
     Variable [ Name=$test ]
     LiteralExpr [STRING] [class]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-open/highly-nested-open.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-open/highly-nested-open.3.ast
index da3d608..19c9bbf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-open/highly-nested-open.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-open/highly-nested-open.3.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$result ]
   :=
-  FunctionCall test.get-object-field-value@2[
+  FunctionCall asterix.get-object-field-value@2[
     Variable [ Name=$test ]
     LiteralExpr [STRING] [class]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.ast
index 094696a..7104620 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.ast
@@ -8,14 +8,14 @@
   ]
   AS Variable [ Name=$r ]
 ,
-  FunctionCall TinySocial.get-object-fields@1[
+  FunctionCall asterix.get-object-fields@1[
     Variable [ Name=$r ]
   ]
   AS Variable [ Name=$f ]
 ]
 Let Variable [ Name=$result ]
   :=
-  FunctionCall TinySocial.get-object-field-value@2[
+  FunctionCall asterix.get-object-field-value@2[
     Variable [ Name=$r ]
     FieldAccessor [
       Variable [ Name=$f ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.5.ast
index 6b1c326..8bc07a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.5.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-field-value@2[
+FunctionCall asterix.get-object-field-value@2[
   FieldAccessor [
     Variable [ Name=$m ]
     Field=user
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/documentation-example/documentation-example.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/documentation-example/documentation-example.1.ast
index f5041fd..4f04f52 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/documentation-example/documentation-example.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/documentation-example/documentation-example.1.ast
@@ -1,5 +1,5 @@
 Query:
-FunctionCall null.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   RecordConstructor [
     (
       LiteralExpr [STRING] [id]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.ast
index 5187e59..14f1b1a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$user ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.ast
index fda0f22..1ad68f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.ast
index 422509b..a7401d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.ast
index a15e713..e19db54 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.ast
index acd08a9..e007565 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.ast
index fadda54..5b62b89 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.ast
@@ -24,7 +24,7 @@
   ]
   AS Variable [ Name=$r ]
 ,
-  FunctionCall TinySocial.get-object-fields@1[
+  FunctionCall asterix.get-object-fields@1[
     Variable [ Name=$r ]
   ]
   AS Variable [ Name=$f ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.ast
index 5187e59..14f1b1a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$user ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.ast
index fda0f22..1ad68f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.ast
index 422509b..a7401d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.ast
index a15e713..e19db54 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.ast
index acd08a9..e007565 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.ast
index fadda54..5b62b89 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.ast
@@ -24,7 +24,7 @@
   ]
   AS Variable [ Name=$r ]
 ,
-  FunctionCall TinySocial.get-object-fields@1[
+  FunctionCall asterix.get-object-fields@1[
     Variable [ Name=$r ]
   ]
   AS Variable [ Name=$f ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.10.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.10.ast
index e6b376b..849fd69 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.10.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.10.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   FieldAccessor [
     Variable [ Name=$message ]
     Field=user
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.ast
index 5187e59..14f1b1a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$user ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.ast
index fda0f22..1ad68f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.ast
index 422509b..a7401d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.ast
index a15e713..e19db54 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.ast
index acd08a9..e007565 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.ast
@@ -1,7 +1,7 @@
 DataverseUse TinySocial
 Query:
 SELECT ELEMENT [
-FunctionCall TinySocial.get-object-fields@1[
+FunctionCall asterix.get-object-fields@1[
   Variable [ Name=$r ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.ast
index fadda54..5b62b89 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.ast
@@ -24,7 +24,7 @@
   ]
   AS Variable [ Name=$r ]
 ,
-  FunctionCall TinySocial.get-object-fields@1[
+  FunctionCall asterix.get-object-fields@1[
     Variable [ Name=$r ]
   ]
   AS Variable [ Name=$f ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.ast
index 4cd24d8..5fbcee8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.ast
@@ -11,7 +11,7 @@
     LiteralExpr [STRING] [smith]
   )
   (
-    FunctionCall test.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [NAME]
     ]
     :
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_01/open-record-constructor_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_01/open-record-constructor_01.3.ast
index 508889a..6dbabcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_01/open-record-constructor_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_01/open-record-constructor_01.3.ast
@@ -2,7 +2,7 @@
 Set import-private-functions=true
 Query:
 SELECT ELEMENT [
-FunctionCall test.open-object-constructor@8[
+FunctionCall asterix.open-object-constructor[
   LiteralExpr [STRING] [foo1]
   LiteralExpr [LONG] [10]
   LiteralExpr [STRING] [bar1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_02/open-record-constructor_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_02/open-record-constructor_02.3.ast
index 98594db..c30e88f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_02/open-record-constructor_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-object-constructor_02/open-record-constructor_02.3.ast
@@ -2,11 +2,11 @@
 Set import-private-functions=true
 Query:
 SELECT ELEMENT [
-FunctionCall test.open-object-constructor@8[
+FunctionCall asterix.open-object-constructor[
   LiteralExpr [STRING] [foo1]
   LiteralExpr [LONG] [10]
   LiteralExpr [STRING] [bar1]
-  FunctionCall test.closed-object-constructor@12[
+  FunctionCall asterix.closed-object-constructor[
     LiteralExpr [STRING] [bar1.1]
     LiteralExpr [LONG] [10]
     LiteralExpr [STRING] [bar1.2]
@@ -14,7 +14,7 @@
     LiteralExpr [STRING] [bar1.3]
     LiteralExpr [LONG] [30]
     LiteralExpr [STRING] [bar1.4]
-    FunctionCall test.closed-object-constructor@8[
+    FunctionCall asterix.closed-object-constructor[
       LiteralExpr [STRING] [bar1.4.1]
       LiteralExpr [LONG] [10]
       LiteralExpr [STRING] [bar1.4.2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-issue208/query-issue208.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-issue208/query-issue208.3.ast
index 4a0cf5b..e34ad23 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-issue208/query-issue208.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-issue208/query-issue208.3.ast
@@ -39,7 +39,7 @@
         Field=send-time
       ]
       >=
-      FunctionCall OpenSocialNetworkData.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2005-04-13T17:17:22]
       ]
     ]
@@ -50,7 +50,7 @@
         Field=send-time
       ]
       <=
-      FunctionCall OpenSocialNetworkData.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-04-13T17:18:22]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal/query-proposal.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal/query-proposal.3.ast
index 599d473..85f03ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal/query-proposal.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal/query-proposal.3.ast
@@ -57,7 +57,7 @@
           ]
         ]
         Satifies [
-          FunctionCall test.contains@2[
+          FunctionCall asterix.contains@2[
             Variable [ Name=$topic ]
             LiteralExpr [STRING] [verizon]
           ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal02/query-proposal02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal02/query-proposal02.3.ast
index b005051..9815371 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal02/query-proposal02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-closed/query-proposal02/query-proposal02.3.ast
@@ -47,7 +47,7 @@
       ]
     ]
     Satifies [
-      FunctionCall test.contains@2[
+      FunctionCall asterix.contains@2[
         Variable [ Name=$reftopic ]
         LiteralExpr [STRING] [verizon]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
index 5d4c69d..8dfee3d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin-rtree/leftouterjoin-rtree.3.ast
@@ -48,7 +48,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -73,7 +73,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -87,7 +87,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin/leftouterjoin.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin/leftouterjoin.3.ast
index caf47d3..204a6a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin/leftouterjoin.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/leftouterjoin/leftouterjoin.3.ast
@@ -82,7 +82,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/rtree-index/rtree-index.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/rtree-index/rtree-index.3.ast
index 2f985dc..0345c25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/rtree-index/rtree-index.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/external-indexing/rtree-index/rtree-index.3.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
index de125c4..402da91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance-inline/ngram-edit-distance-inline.4.ast
@@ -31,7 +31,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance@2[
+  FunctionCall asterix.edit-distance@2[
     FieldAccessor [
       Variable [ Name=$a ]
       Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance/ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
index ad5215b..dbbd917 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-edit-distance/ngram-edit-distance.4.ast
@@ -27,7 +27,7 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.edit-distance@2[
+      FunctionCall asterix.edit-distance@2[
         FieldAccessor [
           Variable [ Name=$a ]
           Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
index b5e2450..7860328 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard-inline/ngram-jaccard-inline.4.ast
@@ -32,8 +32,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
@@ -41,7 +41,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard/ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard/ngram-jaccard.4.ast
index 09fc922..110370a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard/ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/ngram-jaccard/ngram-jaccard.4.ast
@@ -28,8 +28,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.gram-tokens@3[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
@@ -37,7 +37,7 @@
           LiteralExpr [LONG] [3]
           LiteralExpr [FALSE]
         ]
-        FunctionCall test.gram-tokens@3[
+        FunctionCall asterix.gram-tokens@3[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
index 939c13a..676c6d9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/rtree-spatial-intersect-point/rtree-spatial-intersect-point.4.ast
@@ -48,7 +48,7 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard-inline/word-jaccard-inline.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
index 3f3db25..2c08c13 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard-inline/word-jaccard-inline.4.ast
@@ -31,14 +31,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard@2[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard@2[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$b ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard/word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard/word-jaccard.4.ast
index 9689853..009bbdd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard/word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-join/word-jaccard/word-jaccard.4.ast
@@ -27,14 +27,14 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall test.similarity-jaccard@2[
-        FunctionCall test.word-tokens@1[
+      FunctionCall asterix.similarity-jaccard@2[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$a ]
             Field=title
           ]
         ]
-        FunctionCall test.word-tokens@1[
+        FunctionCall asterix.word-tokens@1[
           FieldAccessor [
             Variable [ Name=$b ]
             Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
index caf47d3..204a6a4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx1/probe-pidx-with-join-btree-sidx1.3.ast
@@ -82,7 +82,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
index 63d8847..eab57b4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-btree-sidx2/probe-pidx-with-join-btree-sidx2.3.ast
@@ -96,7 +96,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
index 67155b4..d4bad51 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-invidx-sidx2/probe-pidx-with-join-invidx-sidx2.3.ast
@@ -55,7 +55,7 @@
       ]
       Let Variable [ Name=$sim ]
         :=
-        FunctionCall test.edit-distance-check@3[
+        FunctionCall asterix.edit-distance-check@3[
           FieldAccessor [
             Variable [ Name=$t1 ]
             Field=message-text
@@ -108,7 +108,7 @@
       Field=tweetid
     ]
     >
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [240]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
index 5d4c69d..8dfee3d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx1/probe-pidx-with-join-rtree-sidx1.3.ast
@@ -48,7 +48,7 @@
         AS Variable [ Name=$t2 ]
       ]
       Where
-        FunctionCall test.spatial-intersect@2[
+        FunctionCall asterix.spatial-intersect@2[
           FieldAccessor [
             Variable [ Name=$t2 ]
             Field=sender-location
@@ -73,7 +73,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -87,7 +87,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
index e88a804..1563d4c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-leftouterjoin/probe-pidx-with-join-rtree-sidx2/probe-pidx-with-join-rtree-sidx2.3.ast
@@ -49,7 +49,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall test.spatial-intersect@2[
+          FunctionCall asterix.spatial-intersect@2[
             FieldAccessor [
               Variable [ Name=$t2 ]
               Field=sender-location
@@ -87,7 +87,7 @@
 ]
 Let Variable [ Name=$n ]
   :=
-  FunctionCall test.create-circle@2[
+  FunctionCall asterix.create-circle@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=sender-location
@@ -101,7 +101,7 @@
       Field=tweetid
     ]
     <
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [10]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
index 8c4e3f1..6035e94 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-contains/inverted-index-ngram-contains.4.ast
@@ -50,7 +50,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
index 0f93d91..6d19d11 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-contains/inverted-index-ngram-edit-distance-contains.4.ast
@@ -27,7 +27,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-contains@3[
+    FunctionCall asterix.edit-distance-contains@3[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
index adc3eb8..b49f0bb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-panic/inverted-index-ngram-edit-distance-panic.4.ast
@@ -51,7 +51,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
index 204b85c..6dd3c31 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.4.ast
@@ -25,7 +25,7 @@
   ]
   AS Variable [ Name=$paper ]
 ,
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -35,7 +35,7 @@
 ]
 Where
   IndexAccessor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$word ]
       LiteralExpr [STRING] [Multmedia]
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
index b63ea47..2622dc7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-edit-distance/inverted-index-ngram-edit-distance.4.ast
@@ -51,7 +51,7 @@
 ]
 Let Variable [ Name=$ed ]
   :=
-  FunctionCall test.edit-distance-check@3[
+  FunctionCall asterix.edit-distance-check@3[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=authors
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
index 5f71699..ef34f46 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-ngram-jaccard/inverted-index-ngram-jaccard.4.ast
@@ -52,8 +52,8 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.gram-tokens@3[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
@@ -61,7 +61,7 @@
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.gram-tokens@3[
+    FunctionCall asterix.gram-tokens@3[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
index 8c4e3f1..6035e94 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-contains/inverted-index-word-contains.4.ast
@@ -50,7 +50,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=title
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
index 9dfa690..df58c21 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/inverted-index-word-jaccard/inverted-index-word-jaccard.4.ast
@@ -51,14 +51,14 @@
 ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
-    FunctionCall test.word-tokens@1[
+  FunctionCall asterix.similarity-jaccard-check@3[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$o ]
         Field=title
       ]
     ]
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
index 74ea6fe4..5f460d8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/open-index-enforced/index-selection/rtree-secondary-index/rtree-secondary-index.4.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-polygon@1[
+    FunctionCall asterix.create-polygon@1[
       OrderedListConstructor [
         LiteralExpr [DOUBLE] [4.0]
         LiteralExpr [DOUBLE] [1.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_ints/edit-distance-check_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_ints/edit-distance-check_ints.3.ast
index b8c478a..3e66c49 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_ints/edit-distance-check_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_ints/edit-distance-check_ints.3.ast
@@ -24,22 +24,22 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [2]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_strings/edit-distance-check_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_strings/edit-distance-check_strings.3.ast
index febad20..7bdabbe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_strings/edit-distance-check_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_strings/edit-distance-check_strings.3.ast
@@ -9,22 +9,22 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [2]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_unicode/edit-distance-check_unicode.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_unicode/edit-distance-check_unicode.3.ast
index dcf6a2d..7768118 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_unicode/edit-distance-check_unicode.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-check_unicode/edit-distance-check_unicode.3.ast
@@ -12,22 +12,22 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [1]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [LONG] [1]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$c ]
       LiteralExpr [LONG] [1]
     ]
-    FunctionCall test.edit-distance-check@3[
+    FunctionCall asterix.edit-distance-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$b ]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.ast
index ead9c7c..d9dd240 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-list-is-filterable/edit-distance-list-is-filterable.3.ast
@@ -22,27 +22,27 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [0]
     ]
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [0]
     ]
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [3]
     ]
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [8]
     ]
-    FunctionCall test.edit-distance-list-is-filterable@2[
+    FunctionCall asterix.edit-distance-list-is-filterable@2[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [11]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.ast
index bbac9fd..7d4fe2b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance-string-is-filterable/edit-distance-string-is-filterable.3.ast
@@ -10,121 +10,121 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$a ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [4]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [5]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [5]
       LiteralExpr [LONG] [2]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [6]
       LiteralExpr [LONG] [2]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [3]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [3]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [2]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [3]
       LiteralExpr [LONG] [3]
       LiteralExpr [TRUE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [3]
       LiteralExpr [LONG] [3]
       LiteralExpr [FALSE]
     ]
-    FunctionCall test.edit-distance-string-is-filterable@4[
+    FunctionCall asterix.edit-distance-string-is-filterable@4[
       Variable [ Name=$b ]
       LiteralExpr [LONG] [4]
       LiteralExpr [LONG] [3]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_ints/edit-distance_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_ints/edit-distance_ints.3.ast
index 26aedbf..09318cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_ints/edit-distance_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_ints/edit-distance_ints.3.ast
@@ -24,11 +24,11 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_strings/edit-distance_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_strings/edit-distance_strings.3.ast
index c47f7fa..48b6baf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_strings/edit-distance_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/edit-distance_strings/edit-distance_strings.3.ast
@@ -9,11 +9,11 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.edit-distance@2[
+    FunctionCall asterix.edit-distance@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.ast
index 640a665..f0ccd53 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/fuzzyeq-similarity-jaccard/fuzzyeq-similarity-jaccard.3.ast
@@ -12,14 +12,14 @@
 ]
 Where
   OperatorExpr [
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       FieldAccessor [
         Variable [ Name=$paper ]
         Field=title
       ]
     ]
     ~=
-    FunctionCall test.word-tokens@1[
+    FunctionCall asterix.word-tokens@1[
       LiteralExpr [STRING] [Transactions for Cooperative Environments]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/prefix-len-jaccard/prefix-len-jaccard.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/prefix-len-jaccard/prefix-len-jaccard.3.ast
index 40c2b99..a3ccf8c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/prefix-len-jaccard/prefix-len-jaccard.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/prefix-len-jaccard/prefix-len-jaccard.3.ast
@@ -3,27 +3,27 @@
 Query:
 SELECT ELEMENT [
 OrderedListConstructor [
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [5]
     LiteralExpr [FLOAT] [0.8]
   ]
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [5]
     LiteralExpr [FLOAT] [0.9]
   ]
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [10]
     LiteralExpr [FLOAT] [0.8]
   ]
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [10]
     LiteralExpr [FLOAT] [0.9]
   ]
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [15]
     LiteralExpr [FLOAT] [0.8]
   ]
-  FunctionCall test.prefix-len-jaccard@2[
+  FunctionCall asterix.prefix-len-jaccard@2[
     LiteralExpr [LONG] [15]
     LiteralExpr [FLOAT] [0.9]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.ast
index fd29ffd..847d235 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_ints/similarity-jaccard-check_ints.3.ast
@@ -70,62 +70,62 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.05]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.05]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.ast
index 465525c..dfc3031 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_query/similarity-jaccard-check_query.3.ast
@@ -10,7 +10,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -18,12 +18,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Environments for Cooperative Transactions]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-check@3[
+  FunctionCall asterix.similarity-jaccard-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.ast
index ce37445..83d4ab5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings/similarity-jaccard-check_strings.3.ast
@@ -95,82 +95,82 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$g ]
       Variable [ Name=$h ]
       LiteralExpr [FLOAT] [0.05]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$h ]
       Variable [ Name=$g ]
       LiteralExpr [FLOAT] [0.05]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$g ]
       Variable [ Name=$h ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$h ]
       Variable [ Name=$g ]
       LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings_issue628/similarity-jaccard-check_strings_issue628.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings_issue628/similarity-jaccard-check_strings_issue628.3.ast
index a552729..6be3a31 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings_issue628/similarity-jaccard-check_strings_issue628.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-check_strings_issue628/similarity-jaccard-check_strings_issue628.3.ast
@@ -56,17 +56,17 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$v1 ]
       Variable [ Name=$v2 ]
       LiteralExpr [FLOAT] [0.5]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$v1 ]
       Variable [ Name=$v3 ]
       LiteralExpr [FLOAT] [0.5]
     ]
-    FunctionCall test.similarity-jaccard-check@3[
+    FunctionCall asterix.similarity-jaccard-check@3[
       Variable [ Name=$v4 ]
       Variable [ Name=$v5 ]
       LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.ast
index fc78deb..090fc42 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix-check/similarity-jaccard-prefix-check.3.ast
@@ -3,7 +3,7 @@
 Query:
 SELECT ELEMENT [
 OrderedListConstructor [
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -19,7 +19,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [1.0]
   ]
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -35,7 +35,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -51,7 +51,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.6]
   ]
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -67,7 +67,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [4]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -83,7 +83,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix-check@6[
+  FunctionCall asterix.similarity-jaccard-prefix-check@6[
     LiteralExpr [LONG] [4]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.ast
index 4267e4a..fc4806b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-prefix/similarity-jaccard-prefix.3.ast
@@ -3,7 +3,7 @@
 Query:
 SELECT ELEMENT [
 OrderedListConstructor [
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -19,7 +19,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [1.0]
   ]
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -35,7 +35,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -51,7 +51,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.6]
   ]
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [3]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -67,7 +67,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [4]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
@@ -83,7 +83,7 @@
     LiteralExpr [LONG] [1]
     LiteralExpr [FLOAT] [0.5]
   ]
-  FunctionCall test.similarity-jaccard-prefix@6[
+  FunctionCall asterix.similarity-jaccard-prefix@6[
     LiteralExpr [LONG] [4]
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.ast
index f8ff3ee..2380b01 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_ints/similarity-jaccard-sorted-check_ints.3.ast
@@ -42,42 +42,42 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.ast
index df3273d..de0b41c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_query/similarity-jaccard-sorted-check_query.3.ast
@@ -11,7 +11,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -19,12 +19,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Cooperative Transactions for Environments]
   ]
 Let Variable [ Name=$jacc ]
   :=
-  FunctionCall test.similarity-jaccard-sorted-check@3[
+  FunctionCall asterix.similarity-jaccard-sorted-check@3[
     Variable [ Name=$paper_tokens ]
     Variable [ Name=$query_tokens ]
     LiteralExpr [FLOAT] [0.5]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.ast
index c4a3047..220888c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted-check_strings/similarity-jaccard-sorted-check_strings.3.ast
@@ -67,62 +67,62 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.0]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
       LiteralExpr [FLOAT] [0.1]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.6]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
       LiteralExpr [FLOAT] [0.8]
     ]
-    FunctionCall test.similarity-jaccard-sorted-check@3[
+    FunctionCall asterix.similarity-jaccard-sorted-check@3[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
       LiteralExpr [FLOAT] [0.8]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.ast
index 76b8506..f79b1d9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_ints/similarity-jaccard-sorted_ints.3.ast
@@ -42,19 +42,19 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.ast
index 9a2a37d..5f730b3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_query/similarity-jaccard-sorted_query.3.ast
@@ -11,7 +11,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -19,12 +19,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Cooperative Transactions for Environments]
   ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$paper_tokens ]
       Variable [ Name=$query_tokens ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.ast
index e346514..1efc13b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard-sorted_strings/similarity-jaccard-sorted_strings.3.ast
@@ -67,27 +67,27 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
     ]
-    FunctionCall test.similarity-jaccard-sorted@2[
+    FunctionCall asterix.similarity-jaccard-sorted@2[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.ast
index 1684619..0bc8058 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_ints/similarity-jaccard_ints.3.ast
@@ -67,27 +67,27 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.3.ast
index 01d099d..66162f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_query/similarity-jaccard_query.3.ast
@@ -11,7 +11,7 @@
 ]
 Let Variable [ Name=$paper_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     FieldAccessor [
       Variable [ Name=$paper ]
       Field=title
@@ -19,12 +19,12 @@
   ]
 Let Variable [ Name=$query_tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     LiteralExpr [STRING] [Transactions for Cooperative Environments]
   ]
 Where
   OperatorExpr [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$paper_tokens ]
       Variable [ Name=$query_tokens ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.ast
index 7bb6897..050651f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/similarity/similarity-jaccard_strings/similarity-jaccard_strings.3.ast
@@ -92,35 +92,35 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$g ]
       Variable [ Name=$h ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$h ]
       Variable [ Name=$g ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.ast
index 1e51fca..e6f48db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation-with-filtering/cell-aggregation-with-filtering.3.ast
@@ -24,7 +24,7 @@
   LiteralExpr [STRING] [Allergies]
 Let Variable [ Name=$region ]
   :=
-  FunctionCall test.polygon@1[
+  FunctionCall asterix.polygon@1[
     LiteralExpr [STRING] [
 	33.80503407287759,-126.41235263538363
 	44.9090773200516,-126.41235263538363
@@ -33,7 +33,7 @@
   ]
 Where
   OperatorExpr [
-    FunctionCall test.spatial-intersect@2[
+    FunctionCall asterix.spatial-intersect@2[
       FieldAccessor [
         Variable [ Name=$t ]
         Field=loc
@@ -47,7 +47,7 @@
         Field=time
       ]
       >
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-05-15T00:00:00Z]
       ]
     ]
@@ -58,12 +58,12 @@
         Field=time
       ]
       <
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2011-05-16T23:59:59Z]
       ]
     ]
     and
-    FunctionCall test.contains@2[
+    FunctionCall asterix.contains@2[
       FieldAccessor [
         Variable [ Name=$t ]
         Field=text
@@ -74,12 +74,12 @@
 Groupby
   Variable [ Name=$c ]
   :=
-  FunctionCall test.spatial-cell@4[
+  FunctionCall asterix.spatial-cell@4[
     FieldAccessor [
       Variable [ Name=$t ]
       Field=loc
     ]
-    FunctionCall test.create-point@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [24.5]
       - LiteralExpr [DOUBLE] [125.5]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation/cell-aggregation.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation/cell-aggregation.3.ast
index ddd9e25..cf043bf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation/cell-aggregation.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/cell-aggregation/cell-aggregation.3.ast
@@ -25,12 +25,12 @@
     Groupby
       Variable [ Name=$c ]
       :=
-      FunctionCall test.spatial-cell@4[
+      FunctionCall asterix.spatial-cell@4[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=loc
         ]
-        FunctionCall test.create-point@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [0.0]
           LiteralExpr [DOUBLE] [0.0]
         ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle-intersect-circle/circle-intersect-circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle-intersect-circle/circle-intersect-circle.3.ast
index 576e12e..93ed41b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle-intersect-circle/circle-intersect-circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle-intersect-circle/circle-intersect-circle.3.ast
@@ -18,9 +18,9 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+  FunctionCall asterix.spatial-intersect@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [0.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle_accessor/circle_accessor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle_accessor/circle_accessor.3.ast
index 7a462d1..3d6a650 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle_accessor/circle_accessor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/circle_accessor/circle_accessor.3.ast
@@ -4,9 +4,9 @@
   (
     LiteralExpr [STRING] [circle-radius]
     :
-    FunctionCall test.get-radius@1[
-      FunctionCall test.create-circle@2[
-        FunctionCall test.create-point@2[
+    FunctionCall asterix.get-radius@1[
+      FunctionCall asterix.create-circle@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [6.0]
           LiteralExpr [DOUBLE] [3.0]
         ]
@@ -17,9 +17,9 @@
   (
     LiteralExpr [STRING] [circle-center]
     :
-    FunctionCall test.get-center@1[
-      FunctionCall test.create-circle@2[
-        FunctionCall test.create-point@2[
+    FunctionCall asterix.get-center@1[
+      FunctionCall asterix.create-circle@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [6.0]
           LiteralExpr [DOUBLE] [3.0]
         ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/distance-between-points/distance-between-points.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/distance-between-points/distance-between-points.3.ast
index 806c6d3..45f82af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/distance-between-points/distance-between-points.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/distance-between-points/distance-between-points.3.ast
@@ -24,12 +24,12 @@
 ]
 Let Variable [ Name=$distance ]
   :=
-  FunctionCall test.spatial-distance@2[
+  FunctionCall asterix.spatial-distance@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-point@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [0.0]
       LiteralExpr [DOUBLE] [0.0]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-circle/line-intersect-circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-circle/line-intersect-circle.3.ast
index 4c5531f..5a39f3f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-circle/line-intersect-circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-circle/line-intersect-circle.3.ast
@@ -18,13 +18,13 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=line1
     ]
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [0.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-line/line-intersect-line.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-line/line-intersect-line.3.ast
index c81ec44..10c36a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-line/line-intersect-line.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-line/line-intersect-line.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=line1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-polygon/line-intersect-polygon.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-polygon/line-intersect-polygon.3.ast
index 7e39b21..1a019cb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-polygon/line-intersect-polygon.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-polygon/line-intersect-polygon.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=line1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-rectangle/line-intersect-rectangle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-rectangle/line-intersect-rectangle.3.ast
index a5c81e2..d6feab2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-rectangle/line-intersect-rectangle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line-intersect-rectangle/line-intersect-rectangle.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=line1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line_accessor/line_accessor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line_accessor/line_accessor.3.ast
index 44be116..a438d85 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line_accessor/line_accessor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/line_accessor/line_accessor.3.ast
@@ -2,19 +2,19 @@
 Query:
 Let Variable [ Name=$line ]
   :=
-  FunctionCall test.create-line@2[
-    FunctionCall test.create-point@2[
+  FunctionCall asterix.create-line@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [100.6]
       LiteralExpr [DOUBLE] [999.4]
     ]
-    FunctionCall test.create-point@2[
+    FunctionCall asterix.create-point@2[
       - LiteralExpr [DOUBLE] [872.0]
       - LiteralExpr [DOUBLE] [876.9]
     ]
   ]
 Let Variable [ Name=$line_list ]
   :=
-  FunctionCall test.get-points@1[
+  FunctionCall asterix.get-points@1[
     Variable [ Name=$line ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-equals-point/point-equals-point.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-equals-point/point-equals-point.3.ast
index aaf9a36..d4b7021 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-equals-point/point-equals-point.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-equals-point/point-equals-point.3.ast
@@ -18,12 +18,12 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-point@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [5.0]
       LiteralExpr [DOUBLE] [1.0]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-circle/point-in-circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-circle/point-in-circle.3.ast
index ae6469b..b7ccc5a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-circle/point-in-circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-circle/point-in-circle.3.ast
@@ -18,13 +18,13 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
     ]
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [0.0]
         LiteralExpr [DOUBLE] [0.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-polygon/point-in-polygon.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-polygon/point-in-polygon.3.ast
index f614085..b6fbb36 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-polygon/point-in-polygon.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-polygon/point-in-polygon.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-rectangle/point-in-rectangle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-rectangle/point-in-rectangle.3.ast
index 75c6087..f7f8923 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-rectangle/point-in-rectangle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-in-rectangle/point-in-rectangle.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-on-line/point-on-line.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-on-line/point-on-line.3.ast
index a47745c..2e0dbf6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-on-line/point-on-line.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point-on-line/point-on-line.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=point
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point_accessor/point_accessor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point_accessor/point_accessor.3.ast
index 6d5fe7e..e15bbf9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point_accessor/point_accessor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/point_accessor/point_accessor.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [x-coordinate]
     :
-    FunctionCall test.get-x@1[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.get-x@1[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [2.3]
         LiteralExpr [DOUBLE] [5.0]
       ]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [y-coordinate]
     :
-    FunctionCall test.get-y@1[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.get-y@1[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [2.3]
         LiteralExpr [DOUBLE] [5.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-circle/polygon-intersect-circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-circle/polygon-intersect-circle.3.ast
index 783c331..e0dc871 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-circle/polygon-intersect-circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-circle/polygon-intersect-circle.3.ast
@@ -18,13 +18,13 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=poly1
     ]
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [6.0]
         LiteralExpr [DOUBLE] [3.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.ast
index 65f6dea..e908a58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-polygon/polygon-intersect-polygon.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=poly1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.ast
index 87b6006..7f39534 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon-intersect-rectangle/polygon-intersect-rectangle.3.ast
@@ -18,7 +18,7 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=poly1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon_accessor/polygon_accessor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon_accessor/polygon_accessor.3.ast
index 437f047..dafc1ba 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon_accessor/polygon_accessor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/polygon_accessor/polygon_accessor.3.ast
@@ -2,7 +2,7 @@
 Query:
 Let Variable [ Name=$polygon ]
   :=
-  FunctionCall test.create-polygon@1[
+  FunctionCall asterix.create-polygon@1[
     OrderedListConstructor [
       LiteralExpr [DOUBLE] [1.0]
       LiteralExpr [DOUBLE] [1.0]
@@ -16,7 +16,7 @@
   ]
 Let Variable [ Name=$polygon_list ]
   :=
-  FunctionCall test.get-points@1[
+  FunctionCall asterix.get-points@1[
     Variable [ Name=$polygon ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.ast
index 0c3d894..aa6a274 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-circle/rectangle-intersect-circle.3.ast
@@ -18,13 +18,13 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=rec
     ]
-    FunctionCall test.create-circle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-circle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [4.1]
         LiteralExpr [DOUBLE] [4.1]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.ast
index 33c7191..cd0775b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle-intersect-rectangle/rectangle-intersect-rectangle.3.ast
@@ -18,17 +18,17 @@
   AS Variable [ Name=$o ]
 ]
 Where
-  FunctionCall test.spatial-intersect@2[
+  FunctionCall asterix.spatial-intersect@2[
     FieldAccessor [
       Variable [ Name=$o ]
       Field=rec
     ]
-    FunctionCall test.create-rectangle@2[
-      FunctionCall test.create-point@2[
+    FunctionCall asterix.create-rectangle@2[
+      FunctionCall asterix.create-point@2[
         LiteralExpr [DOUBLE] [4.5]
         LiteralExpr [DOUBLE] [9.0]
       ]
-      FunctionCall test.create-point@2[
+      FunctionCall asterix.create-point@2[
         - LiteralExpr [DOUBLE] [1.0]
         LiteralExpr [DOUBLE] [5.0]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle_accessor/rectangle_accessor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle_accessor/rectangle_accessor.3.ast
index 84032c7..b4bf03b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle_accessor/rectangle_accessor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/rectangle_accessor/rectangle_accessor.3.ast
@@ -2,19 +2,19 @@
 Query:
 Let Variable [ Name=$rectangle ]
   :=
-  FunctionCall test.create-rectangle@2[
-    FunctionCall test.create-point@2[
+  FunctionCall asterix.create-rectangle@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [9.2]
       LiteralExpr [DOUBLE] [49.0]
     ]
-    FunctionCall test.create-point@2[
+    FunctionCall asterix.create-point@2[
       LiteralExpr [DOUBLE] [77.8]
       LiteralExpr [DOUBLE] [111.1]
     ]
   ]
 Let Variable [ Name=$rectangle_list ]
   :=
-  FunctionCall test.get-points@1[
+  FunctionCall asterix.get-points@1[
     Variable [ Name=$rectangle ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/spatial-area/spatial-area.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/spatial-area/spatial-area.3.ast
index 72d824e..9001e68 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/spatial-area/spatial-area.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/spatial/spatial-area/spatial-area.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [polygonArea]
     :
-    FunctionCall test.spatial-area@1[
-      FunctionCall test.create-polygon@1[
+    FunctionCall asterix.spatial-area@1[
+      FunctionCall asterix.create-polygon@1[
         OrderedListConstructor [
           LiteralExpr [DOUBLE] [1.0]
           LiteralExpr [DOUBLE] [1.0]
@@ -22,9 +22,9 @@
   (
     LiteralExpr [STRING] [circleArea]
     :
-    FunctionCall test.spatial-area@1[
-      FunctionCall test.create-circle@2[
-        FunctionCall test.create-point@2[
+    FunctionCall asterix.spatial-area@1[
+      FunctionCall asterix.create-circle@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [0.0]
           LiteralExpr [DOUBLE] [0.0]
         ]
@@ -35,13 +35,13 @@
   (
     LiteralExpr [STRING] [rectangleArea]
     :
-    FunctionCall test.spatial-area@1[
-      FunctionCall test.create-rectangle@2[
-        FunctionCall test.create-point@2[
+    FunctionCall asterix.spatial-area@1[
+      FunctionCall asterix.create-rectangle@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [0.0]
           LiteralExpr [DOUBLE] [5.0]
         ]
-        FunctionCall test.create-point@2[
+        FunctionCall asterix.create-point@2[
           LiteralExpr [DOUBLE] [8.0]
           LiteralExpr [DOUBLE] [8.0]
         ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string1/codepoint-to-string1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string1/codepoint-to-string1.3.ast
index fefd6cf..43cd371 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string1/codepoint-to-string1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string1/codepoint-to-string1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
         LiteralExpr [LONG] [20013]
         LiteralExpr [LONG] [25991]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string2/codepoint-to-string2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string2/codepoint-to-string2.3.ast
index 84548d0..f7b74d5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string2/codepoint-to-string2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/codepoint-to-string2/codepoint-to-string2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [f1]
     :
-    FunctionCall test.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
       ]
     ]
@@ -12,7 +12,7 @@
   (
     LiteralExpr [STRING] [f2]
     :
-    FunctionCall test.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
         LiteralExpr [LONG] [97]
         LiteralExpr [LONG] [98]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_01/concat_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_01/concat_01.3.ast
index e1831a8..80d8355 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_01/concat_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_01/concat_01.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [STRING] [aa]
         LiteralExpr [STRING] [25991]
@@ -16,7 +16,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_02/concat_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_02/concat_02.3.ast
index 00fcae6..8b341dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_02/concat_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_02/concat_02.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [a]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [NULL]
       ]
@@ -13,7 +13,7 @@
   (
     LiteralExpr [STRING] [b]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [NULL]
         LiteralExpr [STRING] [foo]
@@ -23,7 +23,7 @@
   (
     LiteralExpr [STRING] [c]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [STRING] [foo]
         LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_03/concat_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_03/concat_03.3.ast
index 79028fc..57c8a39 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_03/concat_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/concat_03/concat_03.3.ast
@@ -39,7 +39,7 @@
     ]
   ]
 SELECT ELEMENT [
-FunctionCall test.string-concat@1[
+FunctionCall asterix.string-concat@1[
   OrderedListConstructor [
     FieldAccessor [
       Variable [ Name=$x ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/constructor/constructor.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/constructor/constructor.3.ast
index e2f0522..8bf8f04 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/constructor/constructor.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/constructor/constructor.3.ast
@@ -17,7 +17,7 @@
     Variable [ Name=$c ]
   ]
 SELECT ELEMENT [
-FunctionCall test.string@1[
+FunctionCall asterix.string@1[
   Variable [ Name=$x ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/contains_01/contains_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/contains_01/contains_01.3.ast
index 103b8b9..71faef0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/contains_01/contains_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/contains_01/contains_01.3.ast
@@ -2,11 +2,11 @@
 Query:
 SELECT ELEMENT [
 OrderedListConstructor [
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     Variable [ Name=$x ]
     LiteralExpr [STRING] [ofo]
   ]
-  FunctionCall test.contains@2[
+  FunctionCall asterix.contains@2[
     Variable [ Name=$y ]
     LiteralExpr [STRING] [ofo]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr01/cpttostr01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr01/cpttostr01.3.ast
index 67695cc..8475722 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr01/cpttostr01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr01/cpttostr01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.codepoint-to-string@1[
+FunctionCall asterix.codepoint-to-string@1[
   FieldAccessor [
     Variable [ Name=$l ]
     Field=cpt
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr02/cpttostr02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr02/cpttostr02.3.ast
index 2304c31..c6b48ae 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr02/cpttostr02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr02/cpttostr02.3.ast
@@ -3,7 +3,7 @@
   (
     LiteralExpr [STRING] [c1]
     :
-    FunctionCall null.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
         LiteralExpr [LONG] [65]
         LiteralExpr [LONG] [66]
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [c2]
     :
-    FunctionCall null.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
         LiteralExpr [LONG] [97]
         LiteralExpr [LONG] [98]
@@ -71,7 +71,7 @@
   (
     LiteralExpr [STRING] [c3]
     :
-    FunctionCall null.codepoint-to-string@1[
+    FunctionCall asterix.codepoint-to-string@1[
       OrderedListConstructor [
         LiteralExpr [LONG] [33]
         LiteralExpr [LONG] [34]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr04/cpttostr04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr04/cpttostr04.3.ast
index 5da3631..3df90e7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr04/cpttostr04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/cpttostr04/cpttostr04.3.ast
@@ -3,8 +3,8 @@
   (
     LiteralExpr [STRING] [c1]
     :
-    FunctionCall null.codepoint-to-string@1[
-      FunctionCall null.string-to-codepoint@1[
+    FunctionCall asterix.codepoint-to-string@1[
+      FunctionCall asterix.string-to-codepoint@1[
         LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/escapes01/escapes01.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/escapes01/escapes01.1.ast
index 0d7c3bc..d5038bc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/escapes01/escapes01.1.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/escapes01/escapes01.1.ast
@@ -1,9 +1,10 @@
 Query:
 SELECT ELEMENT [
-FunctionCall null.string-concat@1[
+FunctionCall asterix.string-concat@1[
   OrderedListConstructor [
     LiteralExpr [STRING] [12
-3	4567"8]
+3	4
+567"8]
     LiteralExpr [STRING] ['9]
   ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_01/length_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_01/length_01.3.ast
index 375ab2a..a01e7ae 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_01/length_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_01/length_01.3.ast
@@ -4,21 +4,21 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [hellow]
     ]
   )
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] []
     ]
   )
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_02/length_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_02/length_02.3.ast
index e8efac8..59d2029 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_02/length_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/length_02/length_02.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.string-length@1[
+FunctionCall asterix.string-length@1[
   Variable [ Name=$x ]
 ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/lowercase/lowercase.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/lowercase/lowercase.3.ast
index 03c38a1..75aea5c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/lowercase/lowercase.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/lowercase/lowercase.3.ast
@@ -4,21 +4,21 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [HEllow]
     ]
   )
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] []
     ]
   )
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches02/matches02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches02/matches02.3.ast
index cd2490b..cdfa13f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches02/matches02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches02/matches02.3.ast
@@ -3,7 +3,7 @@
   (
     LiteralExpr [STRING] [c3]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Hello World]
       LiteralExpr [STRING] [Hello World]
     ]
@@ -11,7 +11,7 @@
   (
     LiteralExpr [STRING] [c4]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Asterix for Dummies]
       LiteralExpr [STRING] [Asterix for Dummies]
     ]
@@ -19,9 +19,9 @@
   (
     LiteralExpr [STRING] [c5]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [semistructured data]
-      FunctionCall null.lowercase@1[
+      FunctionCall asterix.lowercase@1[
         LiteralExpr [STRING] [SEMISTRUCTURED DATA]
       ]
     ]
@@ -29,7 +29,7 @@
   (
     LiteralExpr [STRING] [c6]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Mega Living!]
       LiteralExpr [STRING] [Mega]
     ]
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [c7]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Mega Living!]
       LiteralExpr [STRING] [ving!]
     ]
@@ -45,7 +45,7 @@
   (
     LiteralExpr [STRING] [c8]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Mega Living!]
       LiteralExpr [STRING] [ ]
     ]
@@ -53,7 +53,7 @@
   (
     LiteralExpr [STRING] [c9]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Mega Living!]
       LiteralExpr [STRING] [a l]
     ]
@@ -61,7 +61,7 @@
   (
     LiteralExpr [STRING] [c10]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Mega Living!]
       LiteralExpr [STRING] []
     ]
@@ -69,7 +69,7 @@
   (
     LiteralExpr [STRING] [c11]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [ ]
       LiteralExpr [STRING] [ ]
     ]
@@ -77,7 +77,7 @@
   (
     LiteralExpr [STRING] [c12]
     :
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [aaaa]
       LiteralExpr [STRING] [aaaaa]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches03/matches03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches03/matches03.3.ast
index f20037b..d239b54 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches03/matches03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches03/matches03.3.ast
@@ -3,55 +3,55 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [1234567890]
       LiteralExpr [STRING] [[^a-z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [1234567890]
       LiteralExpr [STRING] [[^a-zA-Z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghABCDEFGH]
       LiteralExpr [STRING] [[^a-zA-Z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[^a-zA-Z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[^A-Z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[^a-z]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[^0-9]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[0-9]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [adefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[a-z&&[^bc]]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
       LiteralExpr [STRING] [[a-z&&[^bc]]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [bc]
       LiteralExpr [STRING] [[a-z&&[^bc]]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [mnop]
       LiteralExpr [STRING] [[a-z&&[^m-p]]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdmnop]
       LiteralExpr [STRING] [[a-z&&[^m-p]]]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches04/matches04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches04/matches04.3.ast
index af20adf..0210f96 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches04/matches04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches04/matches04.3.ast
@@ -3,31 +3,31 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [UCI UCI UCI UCI UCI UCI]
       LiteralExpr [STRING] [[UCI{6}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [UCI UCI UCI UCI UCI UCI]
       LiteralExpr [STRING] [[UCI{3,6}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [UCI UCI UCI UCI UCI UCI]
       LiteralExpr [STRING] [[UCI{7}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [UCI UCI UCI UCI UCI UCI]
       LiteralExpr [STRING] [[UCI{1}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [UCI UCI UCI]
       LiteralExpr [STRING] [[UCI+]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [false]
       LiteralExpr [STRING] [[true|false]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [YX]
       LiteralExpr [STRING] [[XY]]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches05/matches05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches05/matches05.3.ast
index 9a81914..c584f4a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches05/matches05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches05/matches05.3.ast
@@ -9,7 +9,7 @@
   AS Variable [ Name=$l ]
 ]
 Where
-  FunctionCall test.matches@2[
+  FunctionCall asterix.matches@2[
     FieldAccessor [
       Variable [ Name=$l ]
       Field=fname
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches06/matches06.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches06/matches06.3.ast
index 416f6d6..87be025 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches06/matches06.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches06/matches06.3.ast
@@ -3,64 +3,64 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [mnop]
       LiteralExpr [STRING] [.]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefABCDEF]
       LiteralExpr [STRING] [/d]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [12345]
       LiteralExpr [STRING] [\d]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefGHIJK]
       LiteralExpr [STRING] [\D]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [       ]
       LiteralExpr [STRING] [\s]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [       ]
       LiteralExpr [STRING] [\S]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [Welcome to pattern matching!]
       LiteralExpr [STRING] [[a-zA-Z_0-9]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [!@#$%^&*()]
       LiteralExpr [STRING] [[a-zA-Z_0-9]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [!@#$%^&*()]
       LiteralExpr [STRING] [[^\W]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [!@#$%^&*]
       LiteralExpr [STRING] [[^\w]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [0xffff]
       LiteralExpr [STRING] [[\p{XDigit}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [FFFFFFFF]
       LiteralExpr [STRING] [[\p{XDigit}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abcdefgh]
       LiteralExpr [STRING] [[\p{javaLowerCase}]]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [ABCDEF]
       LiteralExpr [STRING] [[\p{javaLowerCase}]]
     ]
-    FunctionCall null.matches@2[
-      FunctionCall null.codepoint-to-string@1[
+    FunctionCall asterix.matches@2[
+      FunctionCall asterix.codepoint-to-string@1[
         OrderedListConstructor [
           LiteralExpr [LONG] [163]
         ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches1/matches1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches1/matches1.3.ast
index 083dc03..eeab1d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches1/matches1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches1/matches1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [bra]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches11/matches11.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches11/matches11.3.ast
index f2630ec..4680ab8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches11/matches11.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches11/matches11.3.ast
@@ -4,23 +4,23 @@
 ]
 FROM [  OrderedListConstructor [
     LiteralExpr [NULL]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [hello]
       LiteralExpr [NULL]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [hello]
       LiteralExpr [STRING] [helllo]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [hello]
       LiteralExpr [STRING] [ ]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [NULL]
       LiteralExpr [STRING] [hello]
     ]
-    FunctionCall null.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [hello]
       LiteralExpr [STRING] [[^a-z]]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches2/matches2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches2/matches2.3.ast
index 5bc68c9..0793e9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches2/matches2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches2/matches2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [^a.*a$]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches21/matches21.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches21/matches21.3.ast
index bca016e..4b29841 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches21/matches21.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches21/matches21.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [STRING] []
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches22/matches22.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches22/matches22.3.ast
index 29cd657..bc1237d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches22/matches22.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches22/matches22.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [STRING] [i]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches23/matches23.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches23/matches23.3.ast
index 2510066..12aea05 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches23/matches23.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches23/matches23.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [STRING] [helloworld]
       LiteralExpr [STRING] [hello world]
       LiteralExpr [STRING] [x]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches3/matches3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches3/matches3.3.ast
index 198de67..ccf4560 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches3/matches3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matches3/matches3.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [^bra]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matchesnull/matchesnull.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matchesnull/matchesnull.3.ast
index f719453..c8eb15c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matchesnull/matchesnull.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/matchesnull/matchesnull.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] [helloworld]
       LiteralExpr [NULL]
     ]
@@ -12,7 +12,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
     ]
@@ -20,7 +20,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.matches@2[
+    FunctionCall asterix.matches@2[
       LiteralExpr [NULL]
       LiteralExpr [NULL]
     ]
@@ -28,7 +28,7 @@
   (
     LiteralExpr [STRING] [result4]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [STRING] [helloworld]
       LiteralExpr [NULL]
       LiteralExpr [STRING] []
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [result5]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
       LiteralExpr [STRING] [i]
@@ -46,7 +46,7 @@
   (
     LiteralExpr [STRING] [result6]
     :
-    FunctionCall test.matches@3[
+    FunctionCall asterix.matches@3[
       LiteralExpr [NULL]
       LiteralExpr [NULL]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace1/replace1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace1/replace1.3.ast
index 1f92865..63df779 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace1/replace1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace1/replace1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.replace@3[
+    FunctionCall asterix.replace@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [a]
       LiteralExpr [STRING] []
@@ -13,7 +13,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.replace@3[
+    FunctionCall asterix.replace@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [a(.)]
       LiteralExpr [STRING] [a$1$1]
@@ -22,7 +22,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.replace@3[
+    FunctionCall asterix.replace@3[
       LiteralExpr [STRING] [darted]
       LiteralExpr [STRING] [^(.*?)d(.*)$]
       LiteralExpr [STRING] [$1c$2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace2/replace2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace2/replace2.3.ast
index 48dd866..1b63c8a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace2/replace2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace2/replace2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.replace@3[
+    FunctionCall asterix.replace@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [bra]
       LiteralExpr [STRING] [*]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace21/replace21.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace21/replace21.3.ast
index c162e62..6987e20 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace21/replace21.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace21/replace21.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [STRING] [kkk]
@@ -14,7 +14,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [STRING] [kkk]
@@ -24,7 +24,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [helloworld]
       LiteralExpr [STRING] [hello world]
       LiteralExpr [STRING] [kkk]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace22/replace22.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace22/replace22.3.ast
index 7469d43..88c6dc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace22/replace22.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace22/replace22.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
@@ -14,7 +14,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [bra]
       LiteralExpr [STRING] [XXX]
@@ -24,7 +24,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [NULL]
       LiteralExpr [STRING] [hello world]
       LiteralExpr [STRING] [XxXx]
@@ -34,7 +34,7 @@
   (
     LiteralExpr [STRING] [result4]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [bra]
       LiteralExpr [STRING] [XXX]
@@ -44,7 +44,7 @@
   (
     LiteralExpr [STRING] [result5]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [NULL]
       LiteralExpr [STRING] [XXX]
@@ -54,7 +54,7 @@
   (
     LiteralExpr [STRING] [result6]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [NULL]
@@ -64,7 +64,7 @@
   (
     LiteralExpr [STRING] [result7]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [Bra]
       LiteralExpr [STRING] []
@@ -74,7 +74,7 @@
   (
     LiteralExpr [STRING] [result8]
     :
-    FunctionCall test.replace@4[
+    FunctionCall asterix.replace@4[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] []
       LiteralExpr [STRING] [XXX]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace3/replace3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace3/replace3.3.ast
index d9f2c0f..dd34592 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace3/replace3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/replace3/replace3.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.replace@3[
+    FunctionCall asterix.replace@3[
       LiteralExpr [STRING] [abracadabra]
       LiteralExpr [STRING] [a.*a]
       LiteralExpr [STRING] [*]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat01/strconcat01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat01/strconcat01.3.ast
index edb4853..c2a9a7a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat01/strconcat01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat01/strconcat01.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [Full Name]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         FieldAccessor [
           Variable [ Name=$l ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat02/strconcat02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat02/strconcat02.3.ast
index 15439f2..ed56e21 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat02/strconcat02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strconcat02/strconcat02.3.ast
@@ -3,26 +3,26 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
-        FunctionCall null.codepoint-to-string@1[
-          FunctionCall null.string-to-codepoint@1[
+        FunctionCall asterix.codepoint-to-string@1[
+          FunctionCall asterix.string-to-codepoint@1[
             LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]
           ]
         ]
-        FunctionCall null.codepoint-to-string@1[
-          FunctionCall null.string-to-codepoint@1[
+        FunctionCall asterix.codepoint-to-string@1[
+          FunctionCall asterix.string-to-codepoint@1[
             LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]
           ]
         ]
-        FunctionCall null.codepoint-to-string@1[
-          FunctionCall null.string-to-codepoint@1[
+        FunctionCall asterix.codepoint-to-string@1[
+          FunctionCall asterix.string-to-codepoint@1[
             LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]
           ]
         ]
       ]
     ]
-    FunctionCall null.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [STRING] [ ]
         LiteralExpr [STRING] [a]
@@ -42,7 +42,7 @@
         LiteralExpr [STRING] [ ]
       ]
     ]
-    FunctionCall null.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [STRING] [This is a test]
         LiteralExpr [STRING] [and all tests must pass]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-concat1/string-concat1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-concat1/string-concat1.3.ast
index 7584bf9..4995015 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-concat1/string-concat1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-concat1/string-concat1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-concat@1[
+    FunctionCall asterix.string-concat@1[
       OrderedListConstructor [
         LiteralExpr [STRING] [aa]
         LiteralExpr [STRING] [25991]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal1/string-equal1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal1/string-equal1.3.ast
index 1377e83..427e08c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal1/string-equal1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal1/string-equal1.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [STRING] [test]
       LiteralExpr [STRING] [tess]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal2/string-equal2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal2/string-equal2.3.ast
index ecb7764..02d45fc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal2/string-equal2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal2/string-equal2.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [STRING] [test]
       LiteralExpr [STRING] [test]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal3/string-equal3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal3/string-equal3.3.ast
index 87c8327..041918a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal3/string-equal3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal3/string-equal3.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [STRING] [test11]
       LiteralExpr [STRING] [test]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal4/string-equal4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal4/string-equal4.3.ast
index 5eafec6..c6221c8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal4/string-equal4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-equal4/string-equal4.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [STRING] []
       LiteralExpr [STRING] []
     ]
@@ -13,7 +13,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [NULL]
       LiteralExpr [STRING] []
     ]
@@ -21,7 +21,7 @@
   (
     LiteralExpr [STRING] [result4]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
     ]
@@ -29,7 +29,7 @@
   (
     LiteralExpr [STRING] [result5]
     :
-    FunctionCall test.string-equal@2[
+    FunctionCall asterix.string-equal@2[
       LiteralExpr [NULL]
       LiteralExpr [NULL]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-join1/string-join1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-join1/string-join1.3.ast
index e8946c8..330d993 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-join1/string-join1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-join1/string-join1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result0]
     :
-    FunctionCall test.string-join@2[
+    FunctionCall asterix.string-join@2[
       OrderedListConstructor [
         LiteralExpr [STRING] [aa]
         LiteralExpr [STRING] [25991]
@@ -17,7 +17,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-join@2[
+    FunctionCall asterix.string-join@2[
       OrderedListConstructor [
         LiteralExpr [STRING] [aa]
         LiteralExpr [STRING] [25991]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint/string-to-codepoint.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint/string-to-codepoint.3.ast
index 35813f4..6908bf5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint/string-to-codepoint.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint/string-to-codepoint.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-to-codepoint@1[
+    FunctionCall asterix.string-to-codepoint@1[
       LiteralExpr [STRING] [abcd]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint1/string-to-codepoint1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint1/string-to-codepoint1.3.ast
index f702769..e2d9b35 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint1/string-to-codepoint1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint1/string-to-codepoint1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-to-codepoint@1[
+    FunctionCall asterix.string-to-codepoint@1[
       LiteralExpr [STRING] []
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint2/string-to-codepoint2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint2/string-to-codepoint2.3.ast
index 28d357a..a57b54ef 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint2/string-to-codepoint2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/string-to-codepoint2/string-to-codepoint2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.string-to-codepoint@1[
+    FunctionCall asterix.string-to-codepoint@1[
       LiteralExpr [STRING] [欢迎]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen02/strlen02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen02/strlen02.3.ast
index 540956a..148afbe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen02/strlen02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen02/strlen02.3.ast
@@ -3,22 +3,22 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [abcdefghijklmnopqrstu]
     ]
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTU]
     ]
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [abcdEFGHijklMNOPqrstu]
     ]
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [abcd EFGH ijkl MNOP qrstu]
     ]
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [   Hello World    !!!!....:-)]
     ]
-    FunctionCall null.string-length@1[
+    FunctionCall asterix.string-length@1[
       LiteralExpr [STRING] [~!@#$%^&*()_+{}:?<>/.,';`][\]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen03/strlen03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen03/strlen03.3.ast
index f25307f..91e17a8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen03/strlen03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strlen03/strlen03.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.string-length@1[
+FunctionCall asterix.string-length@1[
   FieldAccessor [
     Variable [ Name=$l ]
     Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt01/strtocpt01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt01/strtocpt01.3.ast
index 1792f53..d2443e2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt01/strtocpt01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt01/strtocpt01.3.ast
@@ -1,4 +1,4 @@
 Query:
-FunctionCall null.string-to-codepoint@1[
+FunctionCall asterix.string-to-codepoint@1[
   LiteralExpr [STRING] [ABCDEFGHIJKLMNOPQRSTUVWXYZ-01234567890]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt02/strtocpt02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt02/strtocpt02.3.ast
index b152b24..f424d6d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt02/strtocpt02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt02/strtocpt02.3.ast
@@ -1,4 +1,4 @@
 Query:
-FunctionCall null.string-to-codepoint@1[
+FunctionCall asterix.string-to-codepoint@1[
   LiteralExpr [STRING] ["'-=_+|\,./<>?:;~`]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt03/strtocpt03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt03/strtocpt03.3.ast
index ab3df0f..996499b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt03/strtocpt03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/strtocpt03/strtocpt03.3.ast
@@ -1,4 +1,4 @@
 Query:
-FunctionCall null.string-to-codepoint@1[
+FunctionCall asterix.string-to-codepoint@1[
   LiteralExpr [STRING] [!@#$%^&*()]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr01/offset0/substring/substring.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr01/offset0/substring/substring.3.ast
index 31a6a19..5fd0b65 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr01/offset0/substring/substring.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr01/offset0/substring/substring.3.ast
@@ -3,7 +3,7 @@
   (
     LiteralExpr [STRING] [str2]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [Hello World]
       LiteralExpr [LONG] [9]
     ]
@@ -11,7 +11,7 @@
   (
     LiteralExpr [STRING] [str4]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [This is a test string]
       LiteralExpr [LONG] [20]
     ]
@@ -19,7 +19,7 @@
   (
     LiteralExpr [STRING] [str6]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [This is a test string]
       LiteralExpr [LONG] [21]
     ]
@@ -27,7 +27,7 @@
   (
     LiteralExpr [STRING] [str8]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [This is a test string]
       LiteralExpr [LONG] [0]
     ]
@@ -35,7 +35,7 @@
   (
     LiteralExpr [STRING] [str10]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [This is a test string]
       - LiteralExpr [LONG] [6]
     ]
@@ -43,8 +43,8 @@
   (
     LiteralExpr [STRING] [str13]
     :
-    FunctionCall null.substring@2[
-      FunctionCall null.string-concat@1[
+    FunctionCall asterix.substring@2[
+      FunctionCall asterix.string-concat@1[
         OrderedListConstructor [
           LiteralExpr [STRING] [This is a test string]
           LiteralExpr [STRING] [This is a another test string]
@@ -56,11 +56,11 @@
   (
     LiteralExpr [STRING] [str14]
     :
-    FunctionCall null.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [UC Irvine]
       OperatorExpr [
         OperatorExpr [
-          FunctionCall null.string-length@1[
+          FunctionCall asterix.string-length@1[
             LiteralExpr [STRING] [UC Irvine]
           ]
           div
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr04/substr04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr04/substr04.3.ast
index 1727ec1..8ae064e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr04/substr04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr04/substr04.3.ast
@@ -3,70 +3,70 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [hello world]
       LiteralExpr [LONG] [6]
       LiteralExpr [LONG] [5]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [hello world]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [11]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [hello world]
       LiteralExpr [LONG] [2]
       LiteralExpr [LONG] [9]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [ABCD]
       LiteralExpr [LONG] [2]
       LiteralExpr [LONG] [2]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [ABCD]
       LiteralExpr [LONG] [0]
       LiteralExpr [LONG] [4]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [UC Irvine]
       LiteralExpr [LONG] [3]
       OperatorExpr [
-        FunctionCall null.string-length@1[
+        FunctionCall asterix.string-length@1[
           LiteralExpr [STRING] [UC Irvine]
         ]
         -
         LiteralExpr [LONG] [3]
       ]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [UC Irvine]
       LiteralExpr [LONG] [0]
-      FunctionCall null.string-length@1[
+      FunctionCall asterix.string-length@1[
         LiteralExpr [STRING] [UC Irvine]
       ]
     ]
-    FunctionCall null.substring@3[
-      FunctionCall null.substring@2[
+    FunctionCall asterix.substring@3[
+      FunctionCall asterix.substring@2[
         LiteralExpr [STRING] [UC Irvine]
         LiteralExpr [LONG] [3]
       ]
       LiteralExpr [LONG] [0]
-      FunctionCall null.string-length@1[
+      FunctionCall asterix.string-length@1[
         LiteralExpr [STRING] [Irvine]
       ]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [ABCD]
       - LiteralExpr [LONG] [3]
       LiteralExpr [LONG] [2]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [ABCD]
       - LiteralExpr [LONG] [10]
       LiteralExpr [LONG] [1]
     ]
-    FunctionCall null.substring@3[
+    FunctionCall asterix.substring@3[
       LiteralExpr [STRING] [ABCD]
       LiteralExpr [LONG] [1]
       - LiteralExpr [LONG] [1]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr05/substr05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr05/substr05.3.ast
index 685a3b4..ee1908e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr05/substr05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr05/substr05.3.ast
@@ -1,14 +1,14 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.substring@3[
+FunctionCall asterix.substring@3[
   FieldAccessor [
     Variable [ Name=$a ]
     Field=name
   ]
   LiteralExpr [LONG] [3]
   OperatorExpr [
-    FunctionCall test.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$a ]
         Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr06/substr06.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr06/substr06.3.ast
index f27bf4d..dfa5d77 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr06/substr06.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substr06/substr06.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.substring@2[
+FunctionCall asterix.substring@2[
   FieldAccessor [
     Variable [ Name=$a ]
     Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-1/substring-after-1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-1/substring-after-1.3.ast
index b149866..acf0541 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-1/substring-after-1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-1/substring-after-1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] [El]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-2/substring-after-2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-2/substring-after-2.3.ast
index af388f6..5253d46 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-2/substring-after-2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-2/substring-after-2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] [1]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-3/substring-after-3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-3/substring-after-3.3.ast
index f0a9069..5815af2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-3/substring-after-3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-3/substring-after-3.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] [HEllow]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-4/substring-after-4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-4/substring-after-4.3.ast
index 7447595..2331e1a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-4/substring-after-4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-after-4/substring-after-4.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] []
     ]
@@ -12,7 +12,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [NULL]
     ]
@@ -20,7 +20,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
     ]
@@ -28,7 +28,7 @@
   (
     LiteralExpr [STRING] [result4]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [STRING] []
       LiteralExpr [STRING] []
     ]
@@ -36,7 +36,7 @@
   (
     LiteralExpr [STRING] [result5]
     :
-    FunctionCall test.substring-after@2[
+    FunctionCall asterix.substring-after@2[
       LiteralExpr [NULL]
       LiteralExpr [NULL]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-1/substring-before-1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-1/substring-before-1.3.ast
index de9d58f..ce36cde 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-1/substring-before-1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-1/substring-before-1.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] [ll]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-2/substring-before-2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-2/substring-before-2.3.ast
index 76acb5b..8d1184e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-2/substring-before-2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-2/substring-before-2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] [HEllow]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-3/substring-before-3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-3/substring-before-3.3.ast
index 8025a14..60ff493 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-3/substring-before-3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring-before-3/substring-before-3.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [STRING] []
     ]
@@ -12,7 +12,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [NULL]
     ]
@@ -20,7 +20,7 @@
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] []
       LiteralExpr [NULL]
     ]
@@ -28,7 +28,7 @@
   (
     LiteralExpr [STRING] [result4]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [STRING] []
       LiteralExpr [STRING] []
     ]
@@ -36,7 +36,7 @@
   (
     LiteralExpr [STRING] [result5]
     :
-    FunctionCall test.substring-before@2[
+    FunctionCall asterix.substring-before@2[
       LiteralExpr [NULL]
       LiteralExpr [NULL]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-1/offset0/substring/substring.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-1/offset0/substring/substring.3.ast
index f0f9f15..3a2fc01 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-1/offset0/substring/substring.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-1/offset0/substring/substring.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [LONG] [1]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-2/substring2-2.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-2/substring2-2.3.ast
index fe4a308a..504cb01 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-2/substring2-2.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-2/substring2-2.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [LONG] [0]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-3/substring2-3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-3/substring2-3.3.ast
index 358d135..4a5dbf6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-3/substring2-3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-3/substring2-3.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [HEllow]
       LiteralExpr [LONG] [9]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-4/substring2-4.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-4/substring2-4.3.ast
index eb5857e..3514635 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-4/substring2-4.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring2-4/substring2-4.3.ast
@@ -4,7 +4,7 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [HEllow]
       - LiteralExpr [LONG] [3]
     ]
@@ -12,7 +12,7 @@
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.substring@2[
+    FunctionCall asterix.substring@2[
       LiteralExpr [STRING] [HEllow]
       - LiteralExpr [LONG] [7]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring_01/substring_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring_01/substring_01.3.ast
index d24c5b8..85330a7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring_01/substring_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/substring_01/substring_01.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.substring@3[
+FunctionCall asterix.substring@3[
   Variable [ Name=$x ]
   LiteralExpr [LONG] [1]
   LiteralExpr [LONG] [3]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase02/toLowerCase02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase02/toLowerCase02.3.ast
index f5e983d..643c582 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase02/toLowerCase02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase02/toLowerCase02.3.ast
@@ -3,43 +3,43 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [a   b  c  d  e  f  g]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [abcdefghij KLMNOP qrstu VWXYZ]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [abcdefghijklmnopqrstuvwxyz]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [this is a test string]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [smaller string]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [ABCD]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [AbCdEfGhIjKlMnOpQrStUvWxYz]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [abcdefghijkABCDEFGHIJK]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [HIJKLMNOPQRhijklmnopqr]
     ]
-    FunctionCall null.lowercase@1[
-      FunctionCall null.substring@2[
+    FunctionCall asterix.lowercase@1[
+      FunctionCall asterix.substring@2[
         LiteralExpr [STRING] [ABCDEFghIJKLMnopQRSTuvwxYZ01234]
         LiteralExpr [LONG] [0]
       ]
     ]
-    FunctionCall null.lowercase@1[
+    FunctionCall asterix.lowercase@1[
       LiteralExpr [STRING] [A33B2CD1EF78GHijk123LMNopqrstUVW3x2y01035Z]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase03/toLowerCase03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase03/toLowerCase03.3.ast
index a9aed30..564551b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase03/toLowerCase03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase03/toLowerCase03.3.ast
@@ -1,7 +1,7 @@
 DataverseUse test
 Query:
 SELECT ELEMENT [
-FunctionCall test.lowercase@1[
+FunctionCall asterix.lowercase@1[
   FieldAccessor [
     Variable [ Name=$l ]
     Field=name
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase04/toLowerCase04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase04/toLowerCase04.3.ast
index 99a277a..0701467 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase04/toLowerCase04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/toLowerCase04/toLowerCase04.3.ast
@@ -3,8 +3,8 @@
 Variable [ Name=$a ]
 ]
 FROM [  OrderedListConstructor [
-    FunctionCall null.lowercase@1[
-      FunctionCall null.codepoint-to-string@1[
+    FunctionCall asterix.lowercase@1[
+      FunctionCall asterix.codepoint-to-string@1[
         OrderedListConstructor [
           LiteralExpr [LONG] [65]
           LiteralExpr [LONG] [66]
@@ -35,8 +35,8 @@
         ]
       ]
     ]
-    FunctionCall null.lowercase@1[
-      FunctionCall null.string-concat@1[
+    FunctionCall asterix.lowercase@1[
+      FunctionCall asterix.string-concat@1[
         OrderedListConstructor [
           LiteralExpr [STRING] [ABCDEFGHIJKLMNOP]
           LiteralExpr [STRING] [QRSTUVWXYZ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/uppercase/uppercase.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/uppercase/uppercase.3.ast
index a9c5578..de31602 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/uppercase/uppercase.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/uppercase/uppercase.3.ast
@@ -4,21 +4,21 @@
   (
     LiteralExpr [STRING] [result1]
     :
-    FunctionCall test.uppercase@1[
+    FunctionCall asterix.uppercase@1[
       LiteralExpr [STRING] [Hellow]
     ]
   )
   (
     LiteralExpr [STRING] [result2]
     :
-    FunctionCall test.uppercase@1[
+    FunctionCall asterix.uppercase@1[
       LiteralExpr [STRING] []
     ]
   )
   (
     LiteralExpr [STRING] [result3]
     :
-    FunctionCall test.uppercase@1[
+    FunctionCall asterix.uppercase@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/01/01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/01/01.3.ast
index 353dcf8..5b5d3ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/01/01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/01/01.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/02/02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/02/02.3.ast
index 4099fe1..53ed8cc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/02/02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/02/02.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/03/03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/03/03.3.ast
index e09633a..65796a9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/03/03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/03/03.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/05/05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/05/05.3.ast
index 20a4908..fc441b9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/05/05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/05/05.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [STRING] [a]
       LiteralExpr [STRING] [b]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/06/06.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/06/06.3.ast
index c2bff51..844a405 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/06/06.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/06/06.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/07/07.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/07/07.3.ast
index 277e478..d602534 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/07/07.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/subset-collection/07/07.3.ast
@@ -4,7 +4,7 @@
 SELECT ELEMENT [
 Variable [ Name=$l ]
 ]
-FROM [  FunctionCall test.subset-collection@3[
+FROM [  FunctionCall asterix.subset-collection@3[
     OrderedListConstructor [
       LiteralExpr [LONG] [1]
       LiteralExpr [LONG] [2]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors/accessors.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors/accessors.3.ast
index 05dcf98..5a452be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors/accessors.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors/accessors.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [year1]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [year2]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [year3]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1987-11-19]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [year4]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [09280329]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [year5]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -49,8 +49,8 @@
   (
     LiteralExpr [STRING] [year6]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.string@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.string@1[
         LiteralExpr [STRING] [-0003-01-09T23:12:12.39-07:00]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [year7]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -67,8 +67,8 @@
   (
     LiteralExpr [STRING] [year8]
     :
-    FunctionCall test.get-year@1[
-      FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.get-year@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P8Y12M]
       ]
     ]
@@ -76,15 +76,15 @@
   (
     LiteralExpr [STRING] [year-null]
     :
-    FunctionCall test.get-year@1[
+    FunctionCall asterix.get-year@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [month1]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
     ]
@@ -92,8 +92,8 @@
   (
     LiteralExpr [STRING] [month2]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -101,8 +101,8 @@
   (
     LiteralExpr [STRING] [month3]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1987-11-19]
       ]
     ]
@@ -110,8 +110,8 @@
   (
     LiteralExpr [STRING] [month4]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [09280329]
       ]
     ]
@@ -119,8 +119,8 @@
   (
     LiteralExpr [STRING] [month5]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -128,8 +128,8 @@
   (
     LiteralExpr [STRING] [month6]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -137,8 +137,8 @@
   (
     LiteralExpr [STRING] [month7]
     :
-    FunctionCall test.get-month@1[
-      FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.get-month@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P8Y12M]
       ]
     ]
@@ -146,15 +146,15 @@
   (
     LiteralExpr [STRING] [month-null]
     :
-    FunctionCall test.get-month@1[
+    FunctionCall asterix.get-month@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [day1]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
     ]
@@ -162,8 +162,8 @@
   (
     LiteralExpr [STRING] [day2]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -171,8 +171,8 @@
   (
     LiteralExpr [STRING] [day3]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1987-11-19]
       ]
     ]
@@ -180,8 +180,8 @@
   (
     LiteralExpr [STRING] [day4]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [09280329]
       ]
     ]
@@ -189,8 +189,8 @@
   (
     LiteralExpr [STRING] [day5]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -198,8 +198,8 @@
   (
     LiteralExpr [STRING] [day6]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -207,8 +207,8 @@
   (
     LiteralExpr [STRING] [day7]
     :
-    FunctionCall test.get-day@1[
-      FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.get-day@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P32DT49H743M3948.94S]
       ]
     ]
@@ -216,15 +216,15 @@
   (
     LiteralExpr [STRING] [day-null]
     :
-    FunctionCall test.get-day@1[
+    FunctionCall asterix.get-day@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [hour1]
     :
-    FunctionCall test.get-hour@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-hour@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -232,8 +232,8 @@
   (
     LiteralExpr [STRING] [hour2]
     :
-    FunctionCall test.get-hour@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-hour@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -241,8 +241,8 @@
   (
     LiteralExpr [STRING] [hour3]
     :
-    FunctionCall test.get-hour@1[
-      FunctionCall test.time@1[
+    FunctionCall asterix.get-hour@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:23:34.930+07:00]
       ]
     ]
@@ -250,8 +250,8 @@
   (
     LiteralExpr [STRING] [hour4]
     :
-    FunctionCall test.get-hour@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-hour@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -259,8 +259,8 @@
   (
     LiteralExpr [STRING] [hour5]
     :
-    FunctionCall test.get-hour@1[
-      FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.get-hour@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P32DT49H743M3948.94S]
       ]
     ]
@@ -268,15 +268,15 @@
   (
     LiteralExpr [STRING] [hour-null]
     :
-    FunctionCall test.get-hour@1[
+    FunctionCall asterix.get-hour@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [min1]
     :
-    FunctionCall test.get-minute@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-minute@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -284,8 +284,8 @@
   (
     LiteralExpr [STRING] [min2]
     :
-    FunctionCall test.get-minute@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-minute@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -293,8 +293,8 @@
   (
     LiteralExpr [STRING] [min3]
     :
-    FunctionCall test.get-minute@1[
-      FunctionCall test.time@1[
+    FunctionCall asterix.get-minute@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:23:34.930+07:00]
       ]
     ]
@@ -302,8 +302,8 @@
   (
     LiteralExpr [STRING] [min4]
     :
-    FunctionCall test.get-minute@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-minute@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -311,8 +311,8 @@
   (
     LiteralExpr [STRING] [min5]
     :
-    FunctionCall test.get-minute@1[
-      FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.get-minute@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P32DT49H743M3948.94S]
       ]
     ]
@@ -320,15 +320,15 @@
   (
     LiteralExpr [STRING] [min-null]
     :
-    FunctionCall test.get-minute@1[
+    FunctionCall asterix.get-minute@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [second1]
     :
-    FunctionCall test.get-second@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-second@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -336,8 +336,8 @@
   (
     LiteralExpr [STRING] [second2]
     :
-    FunctionCall test.get-second@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-second@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -345,8 +345,8 @@
   (
     LiteralExpr [STRING] [second3]
     :
-    FunctionCall test.get-second@1[
-      FunctionCall test.time@1[
+    FunctionCall asterix.get-second@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:23:34.930+07:00]
       ]
     ]
@@ -354,8 +354,8 @@
   (
     LiteralExpr [STRING] [second4]
     :
-    FunctionCall test.get-second@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-second@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -363,8 +363,8 @@
   (
     LiteralExpr [STRING] [second5]
     :
-    FunctionCall test.get-second@1[
-      FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.get-second@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P32DT49H743M3948.94S]
       ]
     ]
@@ -372,15 +372,15 @@
   (
     LiteralExpr [STRING] [second-null]
     :
-    FunctionCall test.get-second@1[
+    FunctionCall asterix.get-second@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [ms1]
     :
-    FunctionCall test.get-millisecond@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-millisecond@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
     ]
@@ -388,8 +388,8 @@
   (
     LiteralExpr [STRING] [ms2]
     :
-    FunctionCall test.get-millisecond@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-millisecond@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [19371229T20030628]
       ]
     ]
@@ -397,8 +397,8 @@
   (
     LiteralExpr [STRING] [ms3]
     :
-    FunctionCall test.get-millisecond@1[
-      FunctionCall test.time@1[
+    FunctionCall asterix.get-millisecond@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:23:34.930+07:00]
       ]
     ]
@@ -406,8 +406,8 @@
   (
     LiteralExpr [STRING] [ms4]
     :
-    FunctionCall test.get-millisecond@1[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.get-millisecond@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P3Y73M632DT49H743M3948.94S]
       ]
     ]
@@ -415,8 +415,8 @@
   (
     LiteralExpr [STRING] [ms5]
     :
-    FunctionCall test.get-millisecond@1[
-      FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.get-millisecond@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [P32DT49H743M3948.94S]
       ]
     ]
@@ -424,7 +424,7 @@
   (
     LiteralExpr [STRING] [ms-null]
     :
-    FunctionCall test.get-millisecond@1[
+    FunctionCall asterix.get-millisecond@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval/accessors_interval.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval/accessors_interval.3.ast
index d915dd8..b19c8e8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval/accessors_interval.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval/accessors_interval.3.ast
@@ -4,12 +4,12 @@
   (
     LiteralExpr [STRING] [start1]
     :
-    FunctionCall test.get-interval-start@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.date@1[
+    FunctionCall asterix.get-interval-start@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2010-10-30]
         ]
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-04-01]
         ]
       ]
@@ -18,12 +18,12 @@
   (
     LiteralExpr [STRING] [end1]
     :
-    FunctionCall test.get-interval-end@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.date@1[
+    FunctionCall asterix.get-interval-end@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2010-10-30]
         ]
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-04-01]
         ]
       ]
@@ -32,12 +32,12 @@
   (
     LiteralExpr [STRING] [start2]
     :
-    FunctionCall test.get-interval-start@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.time@1[
+    FunctionCall asterix.get-interval-start@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [08:09:10.234Z]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [203040567+0800]
         ]
       ]
@@ -46,12 +46,12 @@
   (
     LiteralExpr [STRING] [end2]
     :
-    FunctionCall test.get-interval-end@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.time@1[
+    FunctionCall asterix.get-interval-end@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [08:09:10.234Z]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [203040567+0800]
         ]
       ]
@@ -60,16 +60,16 @@
   (
     LiteralExpr [STRING] [start3]
     :
-    FunctionCall test.get-interval-start@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.datetime@1[
+    FunctionCall asterix.get-interval-start@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2009-09-01T00:00:00.000+08:00]
         ]
-        FunctionCall test.datetime-from-date-time@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.datetime-from-date-time@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [2013-04-04]
           ]
-          FunctionCall test.time@1[
+          FunctionCall asterix.time@1[
             LiteralExpr [STRING] [00:00:00.000+08:00]
           ]
         ]
@@ -79,16 +79,16 @@
   (
     LiteralExpr [STRING] [end3]
     :
-    FunctionCall test.get-interval-end@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.datetime@1[
+    FunctionCall asterix.get-interval-end@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2009-09-01T00:00:00.000+08:00]
         ]
-        FunctionCall test.datetime-from-date-time@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.datetime-from-date-time@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [2013-04-04]
           ]
-          FunctionCall test.time@1[
+          FunctionCall asterix.time@1[
             LiteralExpr [STRING] [00:00:00.000+08:00]
           ]
         ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval_null/accessors_interval_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval_null/accessors_interval_null.3.ast
index 133a0f7..d1dcace 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval_null/accessors_interval_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/accessors_interval_null/accessors_interval_null.3.ast
@@ -5,14 +5,14 @@
   (
     LiteralExpr [STRING] [start-null-interval]
     :
-    FunctionCall test.get-interval-start@1[
+    FunctionCall asterix.get-interval-start@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [end-null-interval]
     :
-    FunctionCall test.get-interval-end@1[
+    FunctionCall asterix.get-interval-end@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/adjust_timezone/adjust_timezone.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/adjust_timezone/adjust_timezone.3.ast
index 9906449..93175fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/adjust_timezone/adjust_timezone.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/adjust_timezone/adjust_timezone.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [time]
     :
-    FunctionCall test.adjust-time-for-timezone@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.adjust-time-for-timezone@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [20:15:10.327]
       ]
       LiteralExpr [STRING] [+0800]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [datetime]
     :
-    FunctionCall test.adjust-datetime-for-timezone@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.adjust-datetime-for-timezone@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2010-10-23T01:12:13.329Z]
       ]
       LiteralExpr [STRING] [-0615]
@@ -24,7 +24,7 @@
   (
     LiteralExpr [STRING] [null1]
     :
-    FunctionCall test.adjust-time-for-timezone@2[
+    FunctionCall asterix.adjust-time-for-timezone@2[
       LiteralExpr [NULL]
       LiteralExpr [STRING] [+0800]
     ]
@@ -32,8 +32,8 @@
   (
     LiteralExpr [STRING] [null2]
     :
-    FunctionCall test.adjust-time-for-timezone@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.adjust-time-for-timezone@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [20:15:10.327]
       ]
       LiteralExpr [NULL]
@@ -42,7 +42,7 @@
   (
     LiteralExpr [STRING] [null3]
     :
-    FunctionCall test.adjust-datetime-for-timezone@2[
+    FunctionCall asterix.adjust-datetime-for-timezone@2[
       LiteralExpr [NULL]
       LiteralExpr [STRING] [-0800]
     ]
@@ -50,8 +50,8 @@
   (
     LiteralExpr [STRING] [null4]
     :
-    FunctionCall test.adjust-datetime-for-timezone@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.adjust-datetime-for-timezone@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2010-10-23T01:12:13.329Z]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/calendar_duration/calendar_duration.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/calendar_duration/calendar_duration.3.ast
index a36868f..159146f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/calendar_duration/calendar_duration.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/calendar_duration/calendar_duration.3.ast
@@ -5,11 +5,11 @@
   (
     LiteralExpr [STRING] [cduration1]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P7382DT39283M3921.329S]
       ]
     ]
@@ -19,25 +19,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P7382DT39283M3921.329S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.calendar-duration-from-datetime@2[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.calendar-duration-from-datetime@2[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1987-11-19T23:49:23.938]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [P7382DT39283M3921.329S]
           ]
         ]
@@ -47,11 +47,11 @@
   (
     LiteralExpr [STRING] [cduration2]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-PT63H398212M3219.328S]
       ]
     ]
@@ -61,25 +61,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [-PT63H398212M3219.328S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.calendar-duration-from-datetime@2[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.calendar-duration-from-datetime@2[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1987-11-19T23:49:23.938]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [-PT63H398212M3219.328S]
           ]
         ]
@@ -89,11 +89,11 @@
   (
     LiteralExpr [STRING] [cduration3]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1Y90M]
       ]
     ]
@@ -103,25 +103,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P1Y90M]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.calendar-duration-from-datetime@2[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.calendar-duration-from-datetime@2[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1987-11-19T23:49:23.938]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [P1Y90M]
           ]
         ]
@@ -131,11 +131,11 @@
   (
     LiteralExpr [STRING] [cduration4]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
       ]
     ]
@@ -145,25 +145,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1987-11-19T23:49:23.938]
         ]
         +
-        FunctionCall test.calendar-duration-from-datetime@2[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.calendar-duration-from-datetime@2[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1987-11-19T23:49:23.938]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
           ]
         ]
@@ -173,11 +173,11 @@
   (
     LiteralExpr [STRING] [cduration5]
     :
-    FunctionCall test.calendar-duration-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.calendar-duration-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1328-10-23]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P7382DT39283M3921.329S]
       ]
     ]
@@ -187,25 +187,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P7382DT39283M3921.329S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.calendar-duration-from-date@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.calendar-duration-from-date@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [-1328-10-23]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [P7382DT39283M3921.329S]
           ]
         ]
@@ -215,11 +215,11 @@
   (
     LiteralExpr [STRING] [cduration6]
     :
-    FunctionCall test.calendar-duration-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.calendar-duration-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1328-10-23]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-PT63H398212M3219.328S]
       ]
     ]
@@ -229,25 +229,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [-PT63H398212M3219.328S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.calendar-duration-from-date@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.calendar-duration-from-date@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [-1328-10-23]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [-PT63H398212M3219.328S]
           ]
         ]
@@ -257,11 +257,11 @@
   (
     LiteralExpr [STRING] [cduration7]
     :
-    FunctionCall test.calendar-duration-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.calendar-duration-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1328-10-23]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1Y90M]
       ]
     ]
@@ -271,25 +271,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P1Y90M]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.calendar-duration-from-date@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.calendar-duration-from-date@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [-1328-10-23]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [P1Y90M]
           ]
         ]
@@ -299,11 +299,11 @@
   (
     LiteralExpr [STRING] [cduration8]
     :
-    FunctionCall test.calendar-duration-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.calendar-duration-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1328-10-23]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
       ]
     ]
@@ -313,25 +313,25 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
         ]
       ]
       =
       OperatorExpr [
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [-1328-10-23]
         ]
         +
-        FunctionCall test.calendar-duration-from-date@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.calendar-duration-from-date@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [-1328-10-23]
           ]
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [-P3Y89M4089DT47382.983S]
           ]
         ]
@@ -341,9 +341,9 @@
   (
     LiteralExpr [STRING] [cduration-null-1]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
       LiteralExpr [NULL]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P7382DT39283M3921.329S]
       ]
     ]
@@ -351,8 +351,8 @@
   (
     LiteralExpr [STRING] [cduration-null-2]
     :
-    FunctionCall test.calendar-duration-from-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.calendar-duration-from-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1987-11-19T23:49:23.938]
       ]
       LiteralExpr [NULL]
@@ -361,9 +361,9 @@
   (
     LiteralExpr [STRING] [cduration-null-3]
     :
-    FunctionCall test.calendar-duration-from-date@2[
+    FunctionCall asterix.calendar-duration-from-date@2[
       LiteralExpr [NULL]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P7382DT39283M3921.329S]
       ]
     ]
@@ -371,8 +371,8 @@
   (
     LiteralExpr [STRING] [cduration-null-4]
     :
-    FunctionCall test.calendar-duration-from-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.calendar-duration-from-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1328-10-23]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
index 63dc7a6..674377e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
@@ -5,15 +5,15 @@
   (
     LiteralExpr [STRING] [date1]
     :
-    FunctionCall test.date-from-unix-time-in-days@1[
+    FunctionCall asterix.date-from-unix-time-in-days@1[
       LiteralExpr [LONG] [15600]
     ]
   )
   (
     LiteralExpr [STRING] [date2]
     :
-    FunctionCall test.get-date-from-datetime@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-date-from-datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
       ]
     ]
@@ -21,8 +21,8 @@
   (
     LiteralExpr [STRING] [date3]
     :
-    FunctionCall test.get-date-from-datetime@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-date-from-datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-10-11T02:30:23+03:00]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [date4]
     :
     OperatorExpr [
-      FunctionCall test.date-from-unix-time-in-days@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
         LiteralExpr [LONG] [15600]
       ]
       +
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P2Y1M90DT30H]
       ]
     ]
@@ -44,13 +44,13 @@
     LiteralExpr [STRING] [date5]
     :
     OperatorExpr [
-      FunctionCall test.get-date-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-date-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
       +
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P300Y900MT360000M]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [unix1]
     :
-    FunctionCall test.unix-time-from-date-in-days@1[
-      FunctionCall test.date-from-unix-time-in-days@1[
+    FunctionCall asterix.unix-time-from-date-in-days@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
         LiteralExpr [LONG] [15600]
       ]
     ]
@@ -69,19 +69,19 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.get-date-from-datetime@1[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.get-date-from-datetime@1[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
           ]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P300Y900MT360000M]
         ]
       ]
       -
-      FunctionCall test.get-date-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-date-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
@@ -92,16 +92,16 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.date-from-unix-time-in-days@1[
+        FunctionCall asterix.date-from-unix-time-in-days@1[
           LiteralExpr [LONG] [15600]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [-P2Y1M90DT30H]
         ]
       ]
       -
-      FunctionCall test.date-from-unix-time-in-days@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
         LiteralExpr [LONG] [15600]
       ]
     ]
@@ -110,32 +110,32 @@
     LiteralExpr [STRING] [c1]
     :
     OperatorExpr [
-      FunctionCall test.date-from-unix-time-in-days@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
         LiteralExpr [LONG] [15600]
       ]
       =
       OperatorExpr [
         OperatorExpr [
-          FunctionCall test.date-from-unix-time-in-days@1[
+          FunctionCall asterix.date-from-unix-time-in-days@1[
             LiteralExpr [LONG] [15600]
           ]
           +
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [-P2Y1M90DT30H]
           ]
         ]
         +
         OperatorExpr [
-          FunctionCall test.date-from-unix-time-in-days@1[
+          FunctionCall asterix.date-from-unix-time-in-days@1[
             LiteralExpr [LONG] [15600]
           ]
           -
           OperatorExpr [
-            FunctionCall test.date-from-unix-time-in-days@1[
+            FunctionCall asterix.date-from-unix-time-in-days@1[
               LiteralExpr [LONG] [15600]
             ]
             +
-            FunctionCall test.duration@1[
+            FunctionCall asterix.duration@1[
               LiteralExpr [STRING] [-P2Y1M90DT30H]
             ]
           ]
@@ -147,40 +147,40 @@
     LiteralExpr [STRING] [c2]
     :
     OperatorExpr [
-      FunctionCall test.get-date-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-date-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
       =
       OperatorExpr [
         OperatorExpr [
-          FunctionCall test.get-date-from-datetime@1[
-            FunctionCall test.datetime@1[
+          FunctionCall asterix.get-date-from-datetime@1[
+            FunctionCall asterix.datetime@1[
               LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
             ]
           ]
           +
-          FunctionCall test.duration@1[
+          FunctionCall asterix.duration@1[
             LiteralExpr [STRING] [P300Y900MT360000M]
           ]
         ]
         +
         OperatorExpr [
-          FunctionCall test.get-date-from-datetime@1[
-            FunctionCall test.datetime@1[
+          FunctionCall asterix.get-date-from-datetime@1[
+            FunctionCall asterix.datetime@1[
               LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
             ]
           ]
           -
           OperatorExpr [
-            FunctionCall test.get-date-from-datetime@1[
-              FunctionCall test.datetime@1[
+            FunctionCall asterix.get-date-from-datetime@1[
+              FunctionCall asterix.datetime@1[
                 LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
               ]
             ]
             +
-            FunctionCall test.duration@1[
+            FunctionCall asterix.duration@1[
               LiteralExpr [STRING] [P300Y900MT360000M]
             ]
           ]
@@ -191,21 +191,21 @@
   (
     LiteralExpr [STRING] [null1]
     :
-    FunctionCall test.date-from-unix-time-in-days@1[
+    FunctionCall asterix.date-from-unix-time-in-days@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [nullunix1]
     :
-    FunctionCall test.unix-time-from-date-in-days@1[
+    FunctionCall asterix.unix-time-from-date-in-days@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [null2]
     :
-    FunctionCall test.get-date-from-datetime@1[
+    FunctionCall asterix.get-date-from-datetime@1[
       LiteralExpr [NULL]
     ]
   )
@@ -215,7 +215,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       +
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P2Y1M90DT30H]
       ]
     ]
@@ -224,7 +224,7 @@
     LiteralExpr [STRING] [null4]
     :
     OperatorExpr [
-      FunctionCall test.date-from-unix-time-in-days@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
         LiteralExpr [LONG] [15600]
       ]
       +
@@ -237,8 +237,8 @@
     OperatorExpr [
       LiteralExpr [NULL]
       -
-      FunctionCall test.get-date-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-date-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
@@ -249,13 +249,13 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.get-date-from-datetime@1[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.get-date-from-datetime@1[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
           ]
         ]
         +
-        FunctionCall test.duration@1[
+        FunctionCall asterix.duration@1[
           LiteralExpr [STRING] [P300Y900MT360000M]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/datetime_functions/datetime_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/datetime_functions/datetime_functions.3.ast
index c9d1ded..2a45a26 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/datetime_functions/datetime_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/datetime_functions/datetime_functions.3.ast
@@ -5,25 +5,25 @@
   (
     LiteralExpr [STRING] [datetime1]
     :
-    FunctionCall test.datetime-from-unix-time-in-ms@1[
+    FunctionCall asterix.datetime-from-unix-time-in-ms@1[
       LiteralExpr [LONG] [956007429]
     ]
   )
   (
     LiteralExpr [STRING] [datetime1secs]
     :
-    FunctionCall test.datetime-from-unix-time-in-secs@1[
+    FunctionCall asterix.datetime-from-unix-time-in-secs@1[
       LiteralExpr [LONG] [1356048000]
     ]
   )
   (
     LiteralExpr [STRING] [datetime2]
     :
-    FunctionCall test.datetime-from-date-time@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.datetime-from-date-time@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [1327-12-02]
       ]
-      FunctionCall test.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [15:35:49.938-0800]
       ]
     ]
@@ -32,21 +32,21 @@
     LiteralExpr [STRING] [datetime3]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
       +
       OperatorExpr [
-        FunctionCall test.datetime-from-date-time@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.datetime-from-date-time@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [1327-12-02]
           ]
-          FunctionCall test.time@1[
+          FunctionCall asterix.time@1[
             LiteralExpr [STRING] [15:35:49.938-0800]
           ]
         ]
         -
-        FunctionCall test.datetime-from-unix-time-in-ms@1[
+        FunctionCall asterix.datetime-from-unix-time-in-ms@1[
           LiteralExpr [LONG] [956007429]
         ]
       ]
@@ -56,11 +56,11 @@
     LiteralExpr [STRING] [datetime4]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
       -
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1MT1S]
       ]
     ]
@@ -69,11 +69,11 @@
     LiteralExpr [STRING] [datetime5]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
       +
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1MT1S]
       ]
     ]
@@ -81,8 +81,8 @@
   (
     LiteralExpr [STRING] [unixms1]
     :
-    FunctionCall test.unix-time-from-datetime-in-ms@1[
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+    FunctionCall asterix.unix-time-from-datetime-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
     ]
@@ -90,8 +90,8 @@
   (
     LiteralExpr [STRING] [unixsecs1]
     :
-    FunctionCall test.unix-time-from-datetime-in-secs@1[
-      FunctionCall test.datetime-from-unix-time-in-secs@1[
+    FunctionCall asterix.unix-time-from-datetime-in-secs@1[
+      FunctionCall asterix.datetime-from-unix-time-in-secs@1[
         LiteralExpr [LONG] [1356048000]
       ]
     ]
@@ -100,16 +100,16 @@
     LiteralExpr [STRING] [duration1]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-date-time@2[
-        FunctionCall test.date@1[
+      FunctionCall asterix.datetime-from-date-time@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1327-12-02]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [15:35:49.938-0800]
         ]
       ]
       -
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
     ]
@@ -118,32 +118,32 @@
     LiteralExpr [STRING] [c1]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
       =
       OperatorExpr [
         OperatorExpr [
-          FunctionCall test.datetime-from-unix-time-in-ms@1[
+          FunctionCall asterix.datetime-from-unix-time-in-ms@1[
             LiteralExpr [LONG] [956007429]
           ]
           -
           OperatorExpr [
-            FunctionCall test.datetime-from-unix-time-in-ms@1[
+            FunctionCall asterix.datetime-from-unix-time-in-ms@1[
               LiteralExpr [LONG] [956007429]
             ]
             +
             OperatorExpr [
-              FunctionCall test.datetime-from-date-time@2[
-                FunctionCall test.date@1[
+              FunctionCall asterix.datetime-from-date-time@2[
+                FunctionCall asterix.date@1[
                   LiteralExpr [STRING] [1327-12-02]
                 ]
-                FunctionCall test.time@1[
+                FunctionCall asterix.time@1[
                   LiteralExpr [STRING] [15:35:49.938-0800]
                 ]
               ]
               -
-              FunctionCall test.datetime-from-unix-time-in-ms@1[
+              FunctionCall asterix.datetime-from-unix-time-in-ms@1[
                 LiteralExpr [LONG] [956007429]
               ]
             ]
@@ -151,21 +151,21 @@
         ]
         +
         OperatorExpr [
-          FunctionCall test.datetime-from-unix-time-in-ms@1[
+          FunctionCall asterix.datetime-from-unix-time-in-ms@1[
             LiteralExpr [LONG] [956007429]
           ]
           +
           OperatorExpr [
-            FunctionCall test.datetime-from-date-time@2[
-              FunctionCall test.date@1[
+            FunctionCall asterix.datetime-from-date-time@2[
+              FunctionCall asterix.date@1[
                 LiteralExpr [STRING] [1327-12-02]
               ]
-              FunctionCall test.time@1[
+              FunctionCall asterix.time@1[
                 LiteralExpr [STRING] [15:35:49.938-0800]
               ]
             ]
             -
-            FunctionCall test.datetime-from-unix-time-in-ms@1[
+            FunctionCall asterix.datetime-from-unix-time-in-ms@1[
               LiteralExpr [LONG] [956007429]
             ]
           ]
@@ -176,37 +176,37 @@
   (
     LiteralExpr [STRING] [null1]
     :
-    FunctionCall test.datetime-from-unix-time-in-ms@1[
+    FunctionCall asterix.datetime-from-unix-time-in-ms@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [null1secs]
     :
-    FunctionCall test.datetime-from-unix-time-in-secs@1[
+    FunctionCall asterix.datetime-from-unix-time-in-secs@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [nullunixms1]
     :
-    FunctionCall test.unix-time-from-datetime-in-ms@1[
+    FunctionCall asterix.unix-time-from-datetime-in-ms@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [nullunixsecs1]
     :
-    FunctionCall test.unix-time-from-datetime-in-secs@1[
+    FunctionCall asterix.unix-time-from-datetime-in-secs@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [null2]
     :
-    FunctionCall test.datetime-from-date-time@2[
+    FunctionCall asterix.datetime-from-date-time@2[
       LiteralExpr [NULL]
-      FunctionCall test.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [15:35:49.938-0800]
       ]
     ]
@@ -214,8 +214,8 @@
   (
     LiteralExpr [STRING] [null3]
     :
-    FunctionCall test.datetime-from-date-time@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.datetime-from-date-time@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [1327-12-02]
       ]
       LiteralExpr [NULL]
@@ -227,7 +227,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       -
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
     ]
@@ -236,11 +236,11 @@
     LiteralExpr [STRING] [null5]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-date-time@2[
-        FunctionCall test.date@1[
+      FunctionCall asterix.datetime-from-date-time@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1327-12-02]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [15:35:49.938-0800]
         ]
       ]
@@ -255,16 +255,16 @@
       LiteralExpr [NULL]
       +
       OperatorExpr [
-        FunctionCall test.datetime-from-date-time@2[
-          FunctionCall test.date@1[
+        FunctionCall asterix.datetime-from-date-time@2[
+          FunctionCall asterix.date@1[
             LiteralExpr [STRING] [1327-12-02]
           ]
-          FunctionCall test.time@1[
+          FunctionCall asterix.time@1[
             LiteralExpr [STRING] [15:35:49.938-0800]
           ]
         ]
         -
-        FunctionCall test.datetime-from-unix-time-in-ms@1[
+        FunctionCall asterix.datetime-from-unix-time-in-ms@1[
           LiteralExpr [LONG] [956007429]
         ]
       ]
@@ -274,7 +274,7 @@
     LiteralExpr [STRING] [null7]
     :
     OperatorExpr [
-      FunctionCall test.datetime-from-unix-time-in-ms@1[
+      FunctionCall asterix.datetime-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [956007429]
       ]
       +
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/day_of_week_01/day_of_week_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/day_of_week_01/day_of_week_01.3.ast
index f549357..3f525c1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/day_of_week_01/day_of_week_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/day_of_week_01/day_of_week_01.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [1970-01-01]
     :
-    FunctionCall test.day-of-week@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.day-of-week@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [1970-01-01]
       ]
     ]
@@ -13,8 +13,8 @@
   (
     LiteralExpr [STRING] [2013-08-06]
     :
-    FunctionCall test.day-of-week@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.day-of-week@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2013-08-06]
       ]
     ]
@@ -22,8 +22,8 @@
   (
     LiteralExpr [STRING] [-2013-08-06]
     :
-    FunctionCall test.day-of-week@1[
-      FunctionCall test.date@1[
+    FunctionCall asterix.day-of-week@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-2013-08-06]
       ]
     ]
@@ -31,8 +31,8 @@
   (
     LiteralExpr [STRING] [1913-08-06T15:53:28Z]
     :
-    FunctionCall test.day-of-week@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.day-of-week@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1913-08-06T15:53:28Z]
       ]
     ]
@@ -40,8 +40,8 @@
   (
     LiteralExpr [STRING] [-1913-08-10T15:53:28Z]
     :
-    FunctionCall test.day-of-week@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.day-of-week@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1913-08-10T15:53:28Z]
       ]
     ]
@@ -49,7 +49,7 @@
   (
     LiteralExpr [STRING] [null]
     :
-    FunctionCall test.day-of-week@1[
+    FunctionCall asterix.day-of-week@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_comps/duration_comps.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_comps/duration_comps.3.ast
index e6485e5..45b9b97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_comps/duration_comps.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_comps/duration_comps.3.ast
@@ -5,11 +5,11 @@
   (
     LiteralExpr [STRING] [yearMonthGreaterComp]
     :
-    FunctionCall test.year-month-duration-greater-than@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.year-month-duration-greater-than@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P13M]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1Y]
       ]
     ]
@@ -17,11 +17,11 @@
   (
     LiteralExpr [STRING] [dayTimeGreaterComp]
     :
-    FunctionCall test.day-time-duration-greater-than@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.day-time-duration-greater-than@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1D]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3D]
       ]
     ]
@@ -29,11 +29,11 @@
   (
     LiteralExpr [STRING] [yearMonthLessComp]
     :
-    FunctionCall test.year-month-duration-less-than@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.year-month-duration-less-than@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P13M]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1Y]
       ]
     ]
@@ -41,11 +41,11 @@
   (
     LiteralExpr [STRING] [dayTimeLessComp]
     :
-    FunctionCall test.day-time-duration-less-than@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.day-time-duration-less-than@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1D]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3D]
       ]
     ]
@@ -53,11 +53,11 @@
   (
     LiteralExpr [STRING] [equal1]
     :
-    FunctionCall test.duration-equal@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.duration-equal@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1D]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [PT24H]
       ]
     ]
@@ -65,11 +65,11 @@
   (
     LiteralExpr [STRING] [equal2]
     :
-    FunctionCall test.duration-equal@2[
-      FunctionCall test.duration@1[
+    FunctionCall asterix.duration-equal@2[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3D]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [PT24H]
       ]
     ]
@@ -77,17 +77,17 @@
   (
     LiteralExpr [STRING] [equal3]
     :
-    FunctionCall test.duration-equal@2[
-      FunctionCall test.duration-from-months@1[
-        FunctionCall test.months-from-year-month-duration@1[
-          FunctionCall test.get-year-month-duration@1[
-            FunctionCall test.duration@1[
+    FunctionCall asterix.duration-equal@2[
+      FunctionCall asterix.duration-from-months@1[
+        FunctionCall asterix.months-from-year-month-duration@1[
+          FunctionCall asterix.get-year-month-duration@1[
+            FunctionCall asterix.duration@1[
               LiteralExpr [STRING] [P1Y]
             ]
           ]
         ]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [P1Y]
       ]
     ]
@@ -95,17 +95,17 @@
   (
     LiteralExpr [STRING] [equal4]
     :
-    FunctionCall test.duration-equal@2[
-      FunctionCall test.duration-from-ms@1[
-        FunctionCall test.ms-from-day-time-duration@1[
-          FunctionCall test.get-day-time-duration@1[
-            FunctionCall test.duration@1[
+    FunctionCall asterix.duration-equal@2[
+      FunctionCall asterix.duration-from-ms@1[
+        FunctionCall asterix.ms-from-day-time-duration@1[
+          FunctionCall asterix.get-day-time-duration@1[
+            FunctionCall asterix.duration@1[
               LiteralExpr [STRING] [-P3D]
             ]
           ]
         ]
       ]
-      FunctionCall test.duration@1[
+      FunctionCall asterix.duration@1[
         LiteralExpr [STRING] [-P3D]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_functions/duration_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_functions/duration_functions.3.ast
index 79baffb..2e34252 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_functions/duration_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/duration_functions/duration_functions.3.ast
@@ -4,12 +4,12 @@
   (
     LiteralExpr [STRING] [dr1]
     :
-    FunctionCall test.duration-from-interval@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.date@1[
+    FunctionCall asterix.duration-from-interval@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2010-10-30]
         ]
-        FunctionCall test.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2010-12-21]
         ]
       ]
@@ -18,12 +18,12 @@
   (
     LiteralExpr [STRING] [dr2]
     :
-    FunctionCall test.duration-from-interval@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.datetime@1[
+    FunctionCall asterix.duration-from-interval@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2012-06-26T01:01:01.111]
         ]
-        FunctionCall test.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2012-07-27T02:02:02.222]
         ]
       ]
@@ -32,12 +32,12 @@
   (
     LiteralExpr [STRING] [dr3]
     :
-    FunctionCall test.duration-from-interval@1[
-      FunctionCall test.interval@2[
-        FunctionCall test.time@1[
+    FunctionCall asterix.duration-from-interval@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [12:32:38]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [20:29:20]
         ]
       ]
@@ -46,7 +46,7 @@
   (
     LiteralExpr [STRING] [dr4]
     :
-    FunctionCall test.duration-from-interval@1[
+    FunctionCall asterix.duration-from-interval@1[
       LiteralExpr [NULL]
     ]
   )
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/get_overlapping_interval/get_overlapping_interval.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/get_overlapping_interval/get_overlapping_interval.3.ast
index 28fcb19..b0ebd65 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/get_overlapping_interval/get_overlapping_interval.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/get_overlapping_interval/get_overlapping_interval.3.ast
@@ -4,20 +4,20 @@
   (
     LiteralExpr [STRING] [overlap1]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.time@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [11:23:39]
         ]
-        FunctionCall null.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [18:27:19]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.time@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [12:23:39]
         ]
-        FunctionCall null.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [23:18:00]
         ]
       ]
@@ -26,20 +26,20 @@
   (
     LiteralExpr [STRING] [overlap2]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.time@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [12:23:39]
         ]
-        FunctionCall null.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [18:27:19]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.time@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [07:19:39]
         ]
-        FunctionCall null.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [09:18:00]
         ]
       ]
@@ -48,20 +48,20 @@
   (
     LiteralExpr [STRING] [overlap3]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.date@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1980-11-30]
         ]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1999-09-09]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.date@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2014-01-01]
         ]
       ]
@@ -70,20 +70,20 @@
   (
     LiteralExpr [STRING] [overlap4]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.date@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1980-11-30]
         ]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2099-09-09]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.date@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-01-01]
         ]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2014-01-01]
         ]
       ]
@@ -92,20 +92,20 @@
   (
     LiteralExpr [STRING] [overlap5]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1844-03-03T11:19:39]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-10-30T18:27:19]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1989-03-04T12:23:39]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2009-10-10T23:18:00]
         ]
       ]
@@ -114,20 +114,20 @@
   (
     LiteralExpr [STRING] [overlap6]
     :
-    FunctionCall null.get-overlapping-interval@2[
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+    FunctionCall asterix.get-overlapping-interval@2[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1989-03-04T12:23:39]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2000-10-30T18:27:19]
         ]
       ]
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1844-03-03T11:19:39]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1888-10-10T23:18:00]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin/interval_bin.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin/interval_bin.3.ast
index 90be652..45098ba 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin/interval_bin.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin/interval_bin.3.ast
@@ -4,14 +4,14 @@
   (
     LiteralExpr [STRING] [bin1]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [1990-01-01]
       ]
-      FunctionCall test.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P1Y]
       ]
     ]
@@ -19,14 +19,14 @@
   (
     LiteralExpr [STRING] [bin2]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-1990-01-01]
       ]
-      FunctionCall test.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P1Y]
       ]
     ]
@@ -34,14 +34,14 @@
   (
     LiteralExpr [STRING] [bin3]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1990-01-01T00:00:00.000Z]
       ]
-      FunctionCall test.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P6M]
       ]
     ]
@@ -49,14 +49,14 @@
   (
     LiteralExpr [STRING] [bin4]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1987-11-19T23:49:23.938]
       ]
-      FunctionCall test.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [-1990-01-01T00:00:00.000Z]
       ]
-      FunctionCall test.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [PT12H]
       ]
     ]
@@ -64,14 +64,14 @@
   (
     LiteralExpr [STRING] [bin5]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.time@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:23:34.930+07:00]
       ]
-      FunctionCall test.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [12:00:00]
       ]
-      FunctionCall test.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [PT2H]
       ]
     ]
@@ -79,12 +79,12 @@
   (
     LiteralExpr [STRING] [bin6]
     :
-    FunctionCall test.interval-bin@3[
+    FunctionCall asterix.interval-bin@3[
       LiteralExpr [NULL]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-0023-01-01]
       ]
-      FunctionCall test.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P6M]
       ]
     ]
@@ -92,12 +92,12 @@
   (
     LiteralExpr [STRING] [bin7]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
       LiteralExpr [NULL]
-      FunctionCall test.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P6M]
       ]
     ]
@@ -105,11 +105,11 @@
   (
     LiteralExpr [STRING] [bin8]
     :
-    FunctionCall test.interval-bin@3[
-      FunctionCall test.date@1[
+    FunctionCall asterix.interval-bin@3[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [2010-10-30]
       ]
-      FunctionCall test.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-0023-01-01]
       ]
       LiteralExpr [NULL]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_0/interval_bin_gby_0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_0/interval_bin_gby_0.3.ast
index 4819073..915780c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_0/interval_bin_gby_0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_0/interval_bin_gby_0.3.ast
@@ -34,15 +34,15 @@
 Groupby
   Variable [ Name=$d ]
   :=
-  FunctionCall test.interval-bin@3[
+  FunctionCall asterix.interval-bin@3[
     FieldAccessor [
       Variable [ Name=$i ]
       Field=timestamp
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [1990-01-01T00:00:00.000Z]
     ]
-    FunctionCall test.year-month-duration@1[
+    FunctionCall asterix.year-month-duration@1[
       LiteralExpr [STRING] [P20Y]
     ]
   ]
@@ -52,7 +52,7 @@
   )
 
 Orderby
-  FunctionCall test.get-interval-start@1[
+  FunctionCall asterix.get-interval-start@1[
     Variable [ Name=$d ]
   ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_1/interval_bin_gby_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_1/interval_bin_gby_1.3.ast
index 10467b9..cfbea3d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_1/interval_bin_gby_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_bin_gby_1/interval_bin_gby_1.3.ast
@@ -34,17 +34,17 @@
 Groupby
   Variable [ Name=$d ]
   :=
-  FunctionCall test.interval-bin@3[
-    FunctionCall test.get-time-from-datetime@1[
+  FunctionCall asterix.interval-bin@3[
+    FunctionCall asterix.get-time-from-datetime@1[
       FieldAccessor [
         Variable [ Name=$i ]
         Field=timestamp
       ]
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [00:00:00.000Z]
     ]
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT10M]
     ]
   ]
@@ -54,7 +54,7 @@
   )
 
 Orderby
-  FunctionCall test.get-interval-start@1[
+  FunctionCall asterix.get-interval-start@1[
     Variable [ Name=$d ]
   ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_functions/interval_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_functions/interval_functions.3.ast
index c6dd653..0aaf594 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_functions/interval_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/interval_functions/interval_functions.3.ast
@@ -2,315 +2,315 @@
 Query:
 Let Variable [ Name=$itv1 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.date@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-10-30]
     ]
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-12-21]
     ]
   ]
 Let Variable [ Name=$itv2 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.date@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2011-10-30]
     ]
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2012-10-21]
     ]
   ]
 Let Variable [ Name=$itv3 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.date@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-12-21]
     ]
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2013-01-01]
     ]
   ]
 Let Variable [ Name=$blnBefore1 ]
   :=
-  FunctionCall test.interval-before@2[
+  FunctionCall asterix.interval-before@2[
     Variable [ Name=$itv1 ]
     Variable [ Name=$itv2 ]
   ]
 Let Variable [ Name=$blnAfter1 ]
   :=
-  FunctionCall test.interval-after@2[
+  FunctionCall asterix.interval-after@2[
     Variable [ Name=$itv2 ]
     Variable [ Name=$itv1 ]
   ]
 Let Variable [ Name=$blnBefore2 ]
   :=
-  FunctionCall test.interval-before@2[
+  FunctionCall asterix.interval-before@2[
     Variable [ Name=$itv1 ]
     Variable [ Name=$itv3 ]
   ]
 Let Variable [ Name=$blnAfter2 ]
   :=
-  FunctionCall test.interval-after@2[
+  FunctionCall asterix.interval-after@2[
     Variable [ Name=$itv3 ]
     Variable [ Name=$itv1 ]
   ]
 Let Variable [ Name=$itv4 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2012-06-26T01:01:01.111]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2012-07-27T02:02:02.222]
     ]
   ]
 Let Variable [ Name=$itv5 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [20120727T020202222]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2013-08-08T03:03:03.333]
     ]
   ]
 Let Variable [ Name=$itv6 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [19000707T020202222]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2013-08-07T03:03:03.333]
     ]
   ]
 Let Variable [ Name=$blnMeet1 ]
   :=
-  FunctionCall test.interval-meets@2[
+  FunctionCall asterix.interval-meets@2[
     Variable [ Name=$itv4 ]
     Variable [ Name=$itv5 ]
   ]
 Let Variable [ Name=$blnMetBy1 ]
   :=
-  FunctionCall test.interval-met-by@2[
+  FunctionCall asterix.interval-met-by@2[
     Variable [ Name=$itv5 ]
     Variable [ Name=$itv4 ]
   ]
 Let Variable [ Name=$blnMeet2 ]
   :=
-  FunctionCall test.interval-meets@2[
+  FunctionCall asterix.interval-meets@2[
     Variable [ Name=$itv6 ]
     Variable [ Name=$itv4 ]
   ]
 Let Variable [ Name=$blnMetBy2 ]
   :=
-  FunctionCall test.interval-met-by@2[
+  FunctionCall asterix.interval-met-by@2[
     Variable [ Name=$itv6 ]
     Variable [ Name=$itv4 ]
   ]
 Let Variable [ Name=$itv7 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.time@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [12:32:38]
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [20:29:20]
     ]
   ]
 Let Variable [ Name=$itv8 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.time@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [17:48:19]
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [22:19:49]
     ]
   ]
 Let Variable [ Name=$itv9 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.time@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [01:32:49]
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [17:48:19]
     ]
   ]
 Let Variable [ Name=$blnOverlaps1 ]
   :=
-  FunctionCall test.interval-overlaps@2[
+  FunctionCall asterix.interval-overlaps@2[
     Variable [ Name=$itv7 ]
     Variable [ Name=$itv8 ]
   ]
 Let Variable [ Name=$blnOverlapped1 ]
   :=
-  FunctionCall test.interval-overlapped-by@2[
+  FunctionCall asterix.interval-overlapped-by@2[
     Variable [ Name=$itv8 ]
     Variable [ Name=$itv7 ]
   ]
 Let Variable [ Name=$blnOverlaps2 ]
   :=
-  FunctionCall test.interval-overlaps@2[
+  FunctionCall asterix.interval-overlaps@2[
     Variable [ Name=$itv9 ]
     Variable [ Name=$itv8 ]
   ]
 Let Variable [ Name=$blnOverlapped2 ]
   :=
-  FunctionCall test.interval-overlapped-by@2[
+  FunctionCall asterix.interval-overlapped-by@2[
     Variable [ Name=$itv8 ]
     Variable [ Name=$itv9 ]
   ]
 Let Variable [ Name=$blnOverlap1 ]
   :=
-  FunctionCall test.interval-overlapping@2[
+  FunctionCall asterix.interval-overlapping@2[
     Variable [ Name=$itv9 ]
     Variable [ Name=$itv7 ]
   ]
 Let Variable [ Name=$blnOverlap2 ]
   :=
-  FunctionCall test.interval-overlapping@2[
+  FunctionCall asterix.interval-overlapping@2[
     Variable [ Name=$itv9 ]
     Variable [ Name=$itv8 ]
   ]
 Let Variable [ Name=$itv10 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.date@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-10-30]
     ]
-    FunctionCall test.date@1[
+    FunctionCall asterix.date@1[
       LiteralExpr [STRING] [2010-11-30]
     ]
   ]
 Let Variable [ Name=$blnStarts1 ]
   :=
-  FunctionCall test.interval-starts@2[
+  FunctionCall asterix.interval-starts@2[
     Variable [ Name=$itv10 ]
     Variable [ Name=$itv1 ]
   ]
 Let Variable [ Name=$blnStarts2 ]
   :=
-  FunctionCall test.interval-starts@2[
+  FunctionCall asterix.interval-starts@2[
     Variable [ Name=$itv10 ]
     Variable [ Name=$itv2 ]
   ]
 Let Variable [ Name=$blnStartedBy1 ]
   :=
-  FunctionCall test.interval-started-by@2[
+  FunctionCall asterix.interval-started-by@2[
     Variable [ Name=$itv1 ]
     Variable [ Name=$itv10 ]
   ]
 Let Variable [ Name=$blnStartedBy2 ]
   :=
-  FunctionCall test.interval-started-by@2[
+  FunctionCall asterix.interval-started-by@2[
     Variable [ Name=$itv10 ]
     Variable [ Name=$itv2 ]
   ]
 Let Variable [ Name=$itv10 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [19000707T020202222]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2013-08-07T03:03:03.333]
     ]
   ]
 Let Variable [ Name=$itv11 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [19990707T020202222]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2013-08-07T03:03:03.333]
     ]
   ]
 Let Variable [ Name=$itv12 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.datetime@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [-19990707T020202222]
     ]
-    FunctionCall test.datetime@1[
+    FunctionCall asterix.datetime@1[
       LiteralExpr [STRING] [2013-08-07T03:03:03.333]
     ]
   ]
 Let Variable [ Name=$blnCovers1 ]
   :=
-  FunctionCall test.interval-covers@2[
+  FunctionCall asterix.interval-covers@2[
     Variable [ Name=$itv10 ]
     Variable [ Name=$itv11 ]
   ]
 Let Variable [ Name=$blnCovers2 ]
   :=
-  FunctionCall test.interval-covers@2[
+  FunctionCall asterix.interval-covers@2[
     Variable [ Name=$itv10 ]
     Variable [ Name=$itv12 ]
   ]
 Let Variable [ Name=$blnCoveredBy1 ]
   :=
-  FunctionCall test.interval-covered-by@2[
+  FunctionCall asterix.interval-covered-by@2[
     Variable [ Name=$itv11 ]
     Variable [ Name=$itv10 ]
   ]
 Let Variable [ Name=$blnCoveredBy2 ]
   :=
-  FunctionCall test.interval-covered-by@2[
+  FunctionCall asterix.interval-covered-by@2[
     Variable [ Name=$itv12 ]
     Variable [ Name=$itv10 ]
   ]
 Let Variable [ Name=$itv11 ]
   :=
-  FunctionCall test.interval@2[
-    FunctionCall test.time@1[
+  FunctionCall asterix.interval@2[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [19:00:00.009]
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [20:29:20.000]
     ]
   ]
 Let Variable [ Name=$blnEnds1 ]
   :=
-  FunctionCall test.interval-ends@2[
+  FunctionCall asterix.interval-ends@2[
     Variable [ Name=$itv11 ]
     Variable [ Name=$itv7 ]
   ]
 Let Variable [ Name=$blnEnds2 ]
   :=
-  FunctionCall test.interval-ends@2[
+  FunctionCall asterix.interval-ends@2[
     Variable [ Name=$itv11 ]
     Variable [ Name=$itv8 ]
   ]
 Let Variable [ Name=$blnEndedBy1 ]
   :=
-  FunctionCall test.interval-ended-by@2[
+  FunctionCall asterix.interval-ended-by@2[
     Variable [ Name=$itv7 ]
     Variable [ Name=$itv11 ]
   ]
 Let Variable [ Name=$blnEndedBy2 ]
   :=
-  FunctionCall test.interval-ended-by@2[
+  FunctionCall asterix.interval-ended-by@2[
     Variable [ Name=$itv8 ]
     Variable [ Name=$itv11 ]
   ]
 Let Variable [ Name=$null1 ]
   :=
-  FunctionCall test.interval-before@2[
+  FunctionCall asterix.interval-before@2[
     LiteralExpr [NULL]
     Variable [ Name=$itv2 ]
   ]
 Let Variable [ Name=$null2 ]
   :=
-  FunctionCall test.interval-covered-by@2[
+  FunctionCall asterix.interval-covered-by@2[
     Variable [ Name=$itv11 ]
     LiteralExpr [NULL]
   ]
 Let Variable [ Name=$null3 ]
   :=
-  FunctionCall test.interval-overlapping@2[
+  FunctionCall asterix.interval-overlapping@2[
     LiteralExpr [NULL]
     LiteralExpr [NULL]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins/overlap_bins.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins/overlap_bins.3.ast
index 01cd805..53a760a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins/overlap_bins.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins/overlap_bins.3.ast
@@ -3,19 +3,19 @@
   (
     LiteralExpr [STRING] [timebins]
     :
-    FunctionCall null.overlap-bins@3[
-      FunctionCall null.interval@2[
-        FunctionCall null.time@1[
+    FunctionCall asterix.overlap-bins@3[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [17:23:37]
         ]
-        FunctionCall null.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [18:30:21]
         ]
       ]
-      FunctionCall null.time@1[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [00:00:00]
       ]
-      FunctionCall null.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [PT30M]
       ]
     ]
@@ -23,19 +23,19 @@
   (
     LiteralExpr [STRING] [datebins]
     :
-    FunctionCall null.overlap-bins@3[
-      FunctionCall null.interval@2[
-        FunctionCall null.date@1[
+    FunctionCall asterix.overlap-bins@3[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [1984-03-17]
         ]
-        FunctionCall null.date@1[
+        FunctionCall asterix.date@1[
           LiteralExpr [STRING] [2013-08-22]
         ]
       ]
-      FunctionCall null.date@1[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [1990-01-01]
       ]
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P10Y]
       ]
     ]
@@ -43,19 +43,19 @@
   (
     LiteralExpr [STRING] [datetimebins]
     :
-    FunctionCall null.overlap-bins@3[
-      FunctionCall null.interval@2[
-        FunctionCall null.datetime@1[
+    FunctionCall asterix.overlap-bins@3[
+      FunctionCall asterix.interval@2[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1800-01-01T23:59:48.938]
         ]
-        FunctionCall null.datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [2015-07-26T13:28:30.218]
         ]
       ]
-      FunctionCall null.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1900-01-01T00:00:00.000]
       ]
-      FunctionCall null.year-month-duration@1[
+      FunctionCall asterix.year-month-duration@1[
         LiteralExpr [STRING] [P100Y]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_0/overlap_bins_gby_0.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_0/overlap_bins_gby_0.3.ast
index ea0f18c..52ee3be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_0/overlap_bins_gby_0.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_0/overlap_bins_gby_0.3.ast
@@ -18,7 +18,7 @@
   (
     LiteralExpr [STRING] [overlap]
     :
-    FunctionCall test.get-overlapping-interval@2[
+    FunctionCall asterix.get-overlapping-interval@2[
       FieldAccessor [
         Variable [ Name=$gen0 ]
         Field=bin
@@ -72,8 +72,8 @@
       )
       AS Variable [ Name=$i ]
 ,
-      FunctionCall test.overlap-bins@3[
-        FunctionCall test.interval-start-from-time@2[
+      FunctionCall asterix.overlap-bins@3[
+        FunctionCall asterix.interval-start-from-time@2[
           FieldAccessor [
             Variable [ Name=$i ]
             Field=time
@@ -83,10 +83,10 @@
             Field=duration
           ]
         ]
-        FunctionCall test.time@1[
+        FunctionCall asterix.time@1[
           LiteralExpr [STRING] [00:00:00]
         ]
-        FunctionCall test.day-time-duration@1[
+        FunctionCall asterix.day-time-duration@1[
           LiteralExpr [STRING] [PT1H30M]
         ]
       ]
@@ -103,7 +103,7 @@
       )
 
     Orderby
-      FunctionCall test.get-interval-start@1[
+      FunctionCall asterix.get-interval-start@1[
         Variable [ Name=$bin ]
       ]
       ASC
@@ -119,7 +119,7 @@
 ]
 Let Variable [ Name=$itv ]
   :=
-  FunctionCall test.interval-start-from-time@2[
+  FunctionCall asterix.interval-start-from-time@2[
     FieldAccessor [
       Variable [ Name=$x ]
       Field=time
@@ -130,7 +130,7 @@
     ]
   ]
 Orderby
-  FunctionCall test.get-interval-start@1[
+  FunctionCall asterix.get-interval-start@1[
     FieldAccessor [
       Variable [ Name=$gen0 ]
       Field=bin
@@ -139,7 +139,7 @@
   ASC
   Variable [ Name=$itv ]
   ASC
-  FunctionCall test.get-overlapping-interval@2[
+  FunctionCall asterix.get-overlapping-interval@2[
     FieldAccessor [
       Variable [ Name=$gen0 ]
       Field=bin
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_1/overlap_bins_gby_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_1/overlap_bins_gby_1.3.ast
index f30c61a..9bab832 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_1/overlap_bins_gby_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_1/overlap_bins_gby_1.3.ast
@@ -27,9 +27,9 @@
     FunctionCall asterix.sum@1[
       (
         SELECT ELEMENT [
-        FunctionCall test.ms-from-day-time-duration@1[
-          FunctionCall test.duration-from-interval@1[
-            FunctionCall test.get-overlapping-interval@2[
+        FunctionCall asterix.ms-from-day-time-duration@1[
+          FunctionCall asterix.duration-from-interval@1[
+            FunctionCall asterix.get-overlapping-interval@2[
               Variable [ Name=$bin ]
               FieldAccessor [
                 FieldAccessor [
@@ -56,7 +56,7 @@
       (
         LiteralExpr [STRING] [interval]
         :
-        FunctionCall test.interval-start-from-time@2[
+        FunctionCall asterix.interval-start-from-time@2[
           FieldAccessor [
             Variable [ Name=$i1 ]
             Field=time
@@ -84,15 +84,15 @@
   )
   AS Variable [ Name=$i2 ]
 ,
-  FunctionCall test.overlap-bins@3[
+  FunctionCall asterix.overlap-bins@3[
     FieldAccessor [
       Variable [ Name=$i2 ]
       Field=interval
     ]
-    FunctionCall test.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [00:00:00]
     ]
-    FunctionCall test.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT1H30M]
     ]
   ]
@@ -109,7 +109,7 @@
   )
 
 Orderby
-  FunctionCall test.get-interval-start@1[
+  FunctionCall asterix.get-interval-start@1[
     Variable [ Name=$bin ]
   ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_3/overlap_bins_gby_3.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_3/overlap_bins_gby_3.3.ast
index 2a3e8f2..e8b8b9e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_3/overlap_bins_gby_3.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/overlap_bins_gby_3/overlap_bins_gby_3.3.ast
@@ -43,14 +43,14 @@
         AS Variable [ Name=$i ]
       ]
       Where
-        FunctionCall multitask.interval-covers@2[
+        FunctionCall asterix.interval-covers@2[
           Variable [ Name=$bin ]
-          FunctionCall multitask.interval-start-from-time@2[
+          FunctionCall asterix.interval-start-from-time@2[
             FieldAccessor [
               Variable [ Name=$i ]
               Field=time
             ]
-            FunctionCall multitask.duration-from-ms@1[
+            FunctionCall asterix.duration-from-ms@1[
               FieldAccessor [
                 Variable [ Name=$i ]
                 Field=duration
@@ -92,8 +92,8 @@
   )
 ]
 ]
-FROM [  FunctionCall multitask.overlap-bins@3[
-    FunctionCall multitask.interval@2[
+FROM [  FunctionCall asterix.overlap-bins@3[
+    FunctionCall asterix.interval@2[
       FunctionCall asterix.min@1[
         (
           SELECT ELEMENT [
@@ -118,7 +118,7 @@
               Field=time
             ]
             +
-            FunctionCall multitask.duration-from-ms@1[
+            FunctionCall asterix.duration-from-ms@1[
               OperatorExpr [
                 FieldAccessor [
                   Variable [ Name=$i ]
@@ -138,17 +138,17 @@
         )
       ]
     ]
-    FunctionCall multitask.time@1[
+    FunctionCall asterix.time@1[
       LiteralExpr [STRING] [00:00:00.000]
     ]
-    FunctionCall multitask.day-time-duration@1[
+    FunctionCall asterix.day-time-duration@1[
       LiteralExpr [STRING] [PT1M]
     ]
   ]
   AS Variable [ Name=$bin ]
 ]
 Orderby
-  FunctionCall multitask.get-interval-start@1[
+  FunctionCall asterix.get-interval-start@1[
     Variable [ Name=$bin ]
   ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_01/parse_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_01/parse_01.3.ast
index 8f307fa..08e0b89 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_01/parse_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_01/parse_01.3.ast
@@ -5,7 +5,7 @@
   (
     LiteralExpr [STRING] [date1]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [2013-8-23]
       LiteralExpr [STRING] [YY-M-D]
     ]
@@ -13,7 +13,7 @@
   (
     LiteralExpr [STRING] [date2]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [Aug 12 -12]
       LiteralExpr [STRING] [MMM D Y]
     ]
@@ -21,7 +21,7 @@
   (
     LiteralExpr [STRING] [date3]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [-1234-01-01]
       LiteralExpr [STRING] [YYYY-MM-DD]
     ]
@@ -29,7 +29,7 @@
   (
     LiteralExpr [STRING] [date4]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [09/11/-1980]
       LiteralExpr [STRING] [D/M/Y]
     ]
@@ -37,7 +37,7 @@
   (
     LiteralExpr [STRING] [date5]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [09/11/-1990]
       LiteralExpr [STRING] [YY-M-D|MMM D Y|D/M/Y]
     ]
@@ -45,7 +45,7 @@
   (
     LiteralExpr [STRING] [date6]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [Mon Aug 19 2013]
       LiteralExpr [STRING] [W MMM D Y]
     ]
@@ -53,7 +53,7 @@
   (
     LiteralExpr [STRING] [data7]
     :
-    FunctionCall test.parse-date@2[
+    FunctionCall asterix.parse-date@2[
       LiteralExpr [STRING] [SKIPMEPLEASE Mon Aug SKIPME1ALSO 19 2013]
       LiteralExpr [STRING] [O W MMM O D Y]
     ]
@@ -61,7 +61,7 @@
   (
     LiteralExpr [STRING] [time1]
     :
-    FunctionCall test.parse-time@2[
+    FunctionCall asterix.parse-time@2[
       LiteralExpr [STRING] [8:23:49]
       LiteralExpr [STRING] [h:m:s]
     ]
@@ -69,7 +69,7 @@
   (
     LiteralExpr [STRING] [time2]
     :
-    FunctionCall test.parse-time@2[
+    FunctionCall asterix.parse-time@2[
       LiteralExpr [STRING] [8.19.23:32]
       LiteralExpr [STRING] [h.m.s:nn]
     ]
@@ -77,7 +77,7 @@
   (
     LiteralExpr [STRING] [time3]
     :
-    FunctionCall test.parse-time@2[
+    FunctionCall asterix.parse-time@2[
       LiteralExpr [STRING] [08.19.23:32 pm]
       LiteralExpr [STRING] [h.m.s:nn a]
     ]
@@ -85,7 +85,7 @@
   (
     LiteralExpr [STRING] [time4]
     :
-    FunctionCall test.parse-time@2[
+    FunctionCall asterix.parse-time@2[
       LiteralExpr [STRING] [6:30:40.948 pm PST]
       LiteralExpr [STRING] [h:mm:ss.nnn a z]
     ]
@@ -93,7 +93,7 @@
   (
     LiteralExpr [STRING] [time5]
     :
-    FunctionCall test.parse-time@2[
+    FunctionCall asterix.parse-time@2[
       LiteralExpr [STRING] [6:30:40.948 pm PST]
       LiteralExpr [STRING] [h:m:s|h.m.s:nn|h.m.s:nn a|h:mm:ss.nnn a z]
     ]
@@ -101,7 +101,7 @@
   (
     LiteralExpr [STRING] [datetime1]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [Dec 30 -1203 3:48:27 PM]
       LiteralExpr [STRING] [MMM DD YYYY h:m:s a]
     ]
@@ -109,7 +109,7 @@
   (
     LiteralExpr [STRING] [datetime2]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [12/30/-1203 03:48:27.392 PM Asia/Shanghai]
       LiteralExpr [STRING] [MM/DD/YYY hh:mm:ss.nnn a z]
     ]
@@ -117,7 +117,7 @@
   (
     LiteralExpr [STRING] [datetime3]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [1723-12-03T23:59:23.392Z]
       LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
     ]
@@ -125,7 +125,7 @@
   (
     LiteralExpr [STRING] [datetime4]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [1723-12-03T23:59:23.392-04:00]
       LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
     ]
@@ -133,7 +133,7 @@
   (
     LiteralExpr [STRING] [datetime5]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [1723-12-03T23:59:23.392-04:00]
       LiteralExpr [STRING] [MMM DD YYYY h:m:s a|MM/DD/YYY hh:mm:ss.nnn a z|YYYY-MM-DDThh:mm:ss.nnnz]
     ]
@@ -141,7 +141,7 @@
   (
     LiteralExpr [STRING] [datetime6]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [1970-01-01 Thu 23:59:23.392-04:00]
       LiteralExpr [STRING] [MMM DD YYYY h:m:s a|MM/DD/YYY hh:mm:ss.nnn a z|YYYY-MM-DD W hh:mm:ss.nnnz]
     ]
@@ -149,7 +149,7 @@
   (
     LiteralExpr [STRING] [datetime7]
     :
-    FunctionCall test.parse-datetime@2[
+    FunctionCall asterix.parse-datetime@2[
       LiteralExpr [STRING] [1723-12-03 What3v3r STRINGHERE 23:59:23.392-04:00]
       LiteralExpr [STRING] [MMM DD YYYY h:m:s a|MM/DD/YYY hh:mm:ss.nnn a z|YYYY-MM-DD O O hh:mm:ss.nnnz]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
index 5ff0efc..ea8c109 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
@@ -4,8 +4,8 @@
   (
     LiteralExpr [STRING] [date-string-1]
     :
-    FunctionCall test.print-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.print-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-0123-01-30]
       ]
       LiteralExpr [STRING] [YY/M/D]
@@ -14,8 +14,8 @@
   (
     LiteralExpr [STRING] [date-string-2]
     :
-    FunctionCall test.print-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.print-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-0123-01-30]
       ]
       LiteralExpr [STRING] [MMM DD, YYYY]
@@ -24,8 +24,8 @@
   (
     LiteralExpr [STRING] [date-string-3]
     :
-    FunctionCall test.print-date@2[
-      FunctionCall test.date@1[
+    FunctionCall asterix.print-date@2[
+      FunctionCall asterix.date@1[
         LiteralExpr [STRING] [-0123-01-30]
       ]
       LiteralExpr [STRING] [YYYY/MM/DD]
@@ -34,8 +34,8 @@
   (
     LiteralExpr [STRING] [time-string-1]
     :
-    FunctionCall test.print-time@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.print-time@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [08:07:29.030Z]
       ]
       LiteralExpr [STRING] [h.m.s.nn a z]
@@ -44,8 +44,8 @@
   (
     LiteralExpr [STRING] [time-string-2]
     :
-    FunctionCall test.print-time@2[
-      FunctionCall test.time@1[
+    FunctionCall asterix.print-time@2[
+      FunctionCall asterix.time@1[
         LiteralExpr [STRING] [08:07:29.030Z]
       ]
       LiteralExpr [STRING] [hh.mm.ss.nnn a z]
@@ -54,8 +54,8 @@
   (
     LiteralExpr [STRING] [datetime-string-1]
     :
-    FunctionCall test.print-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.print-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [0137-12-31T23:59:59.999+08:00]
       ]
       LiteralExpr [STRING] [MMM DD h:m:s.nnn a YY z]
@@ -64,8 +64,8 @@
   (
     LiteralExpr [STRING] [datetime-string-2]
     :
-    FunctionCall test.print-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.print-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [0137-12-31T23:59:59.999+08:00]
       ]
       LiteralExpr [STRING] [YYYY/MMM/DD h:m:s.nnnz a]
@@ -74,8 +74,8 @@
   (
     LiteralExpr [STRING] [datetime-string-3]
     :
-    FunctionCall test.print-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.print-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [0137-12-31T23:59:59.999+08:00]
       ]
       LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
@@ -84,8 +84,8 @@
   (
     LiteralExpr [STRING] [datetime-string-4]
     :
-    FunctionCall test.print-datetime@2[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.print-datetime@2[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1000-10-10T10:10:10.100+00:00]
       ]
       LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/time_functions/time_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/time_functions/time_functions.3.ast
index 2baf9252d..57002df 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/time_functions/time_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/time_functions/time_functions.3.ast
@@ -5,15 +5,15 @@
   (
     LiteralExpr [STRING] [time1]
     :
-    FunctionCall test.time-from-unix-time-in-ms@1[
+    FunctionCall asterix.time-from-unix-time-in-ms@1[
       LiteralExpr [LONG] [1560074]
     ]
   )
   (
     LiteralExpr [STRING] [time2]
     :
-    FunctionCall test.get-time-from-datetime@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-time-from-datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
       ]
     ]
@@ -21,8 +21,8 @@
   (
     LiteralExpr [STRING] [time3]
     :
-    FunctionCall test.get-time-from-datetime@1[
-      FunctionCall test.datetime@1[
+    FunctionCall asterix.get-time-from-datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-10-11T02:30:23+03:00]
       ]
     ]
@@ -31,11 +31,11 @@
     LiteralExpr [STRING] [time4]
     :
     OperatorExpr [
-      FunctionCall test.time-from-unix-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
       +
-      FunctionCall test.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [-PT30H]
       ]
     ]
@@ -44,13 +44,13 @@
     LiteralExpr [STRING] [time5]
     :
     OperatorExpr [
-      FunctionCall test.get-time-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-time-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
       +
-      FunctionCall test.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [PT36M]
       ]
     ]
@@ -58,8 +58,8 @@
   (
     LiteralExpr [STRING] [unix1]
     :
-    FunctionCall test.unix-time-from-time-in-ms@1[
-      FunctionCall test.time-from-unix-time-in-ms@1[
+    FunctionCall asterix.unix-time-from-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
     ]
@@ -69,19 +69,19 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.get-time-from-datetime@1[
-          FunctionCall test.datetime@1[
+        FunctionCall asterix.get-time-from-datetime@1[
+          FunctionCall asterix.datetime@1[
             LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
           ]
         ]
         +
-        FunctionCall test.day-time-duration@1[
+        FunctionCall asterix.day-time-duration@1[
           LiteralExpr [STRING] [PT36M]
         ]
       ]
       -
-      FunctionCall test.get-time-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-time-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
@@ -92,16 +92,16 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.time-from-unix-time-in-ms@1[
+        FunctionCall asterix.time-from-unix-time-in-ms@1[
           LiteralExpr [LONG] [1560074]
         ]
         +
-        FunctionCall test.day-time-duration@1[
+        FunctionCall asterix.day-time-duration@1[
           LiteralExpr [STRING] [-PT30H]
         ]
       ]
       -
-      FunctionCall test.time-from-unix-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
     ]
@@ -110,33 +110,33 @@
     LiteralExpr [STRING] [c1]
     :
     OperatorExpr [
-      FunctionCall test.time-from-unix-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
       =
       OperatorExpr [
         OperatorExpr [
-          FunctionCall test.time-from-unix-time-in-ms@1[
+          FunctionCall asterix.time-from-unix-time-in-ms@1[
             LiteralExpr [LONG] [1560074]
           ]
           -
           OperatorExpr [
-            FunctionCall test.time-from-unix-time-in-ms@1[
+            FunctionCall asterix.time-from-unix-time-in-ms@1[
               LiteralExpr [LONG] [1560074]
             ]
             +
-            FunctionCall test.day-time-duration@1[
+            FunctionCall asterix.day-time-duration@1[
               LiteralExpr [STRING] [-PT30H]
             ]
           ]
         ]
         +
         OperatorExpr [
-          FunctionCall test.time-from-unix-time-in-ms@1[
+          FunctionCall asterix.time-from-unix-time-in-ms@1[
             LiteralExpr [LONG] [1560074]
           ]
           +
-          FunctionCall test.day-time-duration@1[
+          FunctionCall asterix.day-time-duration@1[
             LiteralExpr [STRING] [-PT30H]
           ]
         ]
@@ -147,40 +147,40 @@
     LiteralExpr [STRING] [c2]
     :
     OperatorExpr [
-      FunctionCall test.get-time-from-datetime@1[
-        FunctionCall test.datetime@1[
+      FunctionCall asterix.get-time-from-datetime@1[
+        FunctionCall asterix.datetime@1[
           LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
         ]
       ]
       =
       OperatorExpr [
         OperatorExpr [
-          FunctionCall test.get-time-from-datetime@1[
-            FunctionCall test.datetime@1[
+          FunctionCall asterix.get-time-from-datetime@1[
+            FunctionCall asterix.datetime@1[
               LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
             ]
           ]
           +
-          FunctionCall test.day-time-duration@1[
+          FunctionCall asterix.day-time-duration@1[
             LiteralExpr [STRING] [PT36M]
           ]
         ]
         +
         OperatorExpr [
-          FunctionCall test.get-time-from-datetime@1[
-            FunctionCall test.datetime@1[
+          FunctionCall asterix.get-time-from-datetime@1[
+            FunctionCall asterix.datetime@1[
               LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
             ]
           ]
           -
           OperatorExpr [
-            FunctionCall test.get-time-from-datetime@1[
-              FunctionCall test.datetime@1[
+            FunctionCall asterix.get-time-from-datetime@1[
+              FunctionCall asterix.datetime@1[
                 LiteralExpr [STRING] [1327-12-02T23:35:49.938Z]
               ]
             ]
             +
-            FunctionCall test.day-time-duration@1[
+            FunctionCall asterix.day-time-duration@1[
               LiteralExpr [STRING] [PT36M]
             ]
           ]
@@ -191,21 +191,21 @@
   (
     LiteralExpr [STRING] [null1]
     :
-    FunctionCall test.time-from-unix-time-in-ms@1[
+    FunctionCall asterix.time-from-unix-time-in-ms@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [nullunix1]
     :
-    FunctionCall test.unix-time-from-time-in-ms@1[
+    FunctionCall asterix.unix-time-from-time-in-ms@1[
       LiteralExpr [NULL]
     ]
   )
   (
     LiteralExpr [STRING] [null2]
     :
-    FunctionCall test.get-time-from-datetime@1[
+    FunctionCall asterix.get-time-from-datetime@1[
       LiteralExpr [NULL]
     ]
   )
@@ -215,7 +215,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       +
-      FunctionCall test.day-time-duration@1[
+      FunctionCall asterix.day-time-duration@1[
         LiteralExpr [STRING] [-PT30H]
       ]
     ]
@@ -224,7 +224,7 @@
     LiteralExpr [STRING] [null4]
     :
     OperatorExpr [
-      FunctionCall test.time-from-unix-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
       +
@@ -237,7 +237,7 @@
     OperatorExpr [
       LiteralExpr [NULL]
       -
-      FunctionCall test.time-from-unix-time-in-ms@1[
+      FunctionCall asterix.time-from-unix-time-in-ms@1[
         LiteralExpr [LONG] [1560074]
       ]
     ]
@@ -247,11 +247,11 @@
     :
     OperatorExpr [
       OperatorExpr [
-        FunctionCall test.time-from-unix-time-in-ms@1[
+        FunctionCall asterix.time-from-unix-time-in-ms@1[
           LiteralExpr [LONG] [1560074]
         ]
         +
-        FunctionCall test.day-time-duration@1[
+        FunctionCall asterix.day-time-duration@1[
           LiteralExpr [STRING] [-PT30H]
         ]
       ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.10.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.10.ast
index 212935c..3f12340 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.10.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.10.ast
@@ -33,7 +33,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall TinySocial.spatial-distance@2[
+          FunctionCall asterix.spatial-distance@2[
             FieldAccessor [
               Variable [ Name=$t ]
               Field=sender-location
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.23.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.23.ast
index 32e545b..cb6ebeb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.23.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.23.ast
@@ -36,7 +36,7 @@
   Groupby
     Variable [ Name=$min ]
     :=
-    FunctionCall TinySocial.get-minute@1[
+    FunctionCall asterix.get-minute@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$k ]
@@ -65,7 +65,7 @@
 Groupby
   Variable [ Name=$h ]
   :=
-  FunctionCall TinySocial.get-hour@1[
+  FunctionCall asterix.get-hour@1[
     FieldAccessor [
       Variable [ Name=$t ]
       Field=send-time
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.24.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.24.ast
index 0da93150..15f7143 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.24.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.24.ast
@@ -64,7 +64,7 @@
   ]
 Let Variable [ Name=#3 ]
   :=
-  FunctionCall TinySocial.substring@2[
+  FunctionCall asterix.substring@2[
     FieldAccessor [
       Variable [ Name=$message ]
       Field=message
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.25.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.25.ast
index a1377a6..f130474 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.25.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.25.ast
@@ -4,7 +4,7 @@
 FunctionCall asterix.avg@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$message ]
         Field=message
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.26.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.26.ast
index eb31c41..6e0bcfb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.26.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.26.ast
@@ -6,7 +6,7 @@
 FunctionCall asterix.sql-avg@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.get-year@1[
+    FunctionCall asterix.get-year@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=#2 ]
@@ -42,7 +42,7 @@
 FunctionCall asterix.sql-sum@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.get-year@1[
+    FunctionCall asterix.get-year@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=#4 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.27.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.27.ast
index 7df69ee..ad577cc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.27.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.27.ast
@@ -4,7 +4,7 @@
 FunctionCall asterix.sql-avg@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.get-year@1[
+    FunctionCall asterix.get-year@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=#2 ]
@@ -40,7 +40,7 @@
 FunctionCall asterix.sql-sum@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.get-year@1[
+    FunctionCall asterix.get-year@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=#4 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.6.ast
index 1447bdc..85f493c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite-open/tinysocial-suite.6.ast
@@ -16,7 +16,7 @@
         Field=user-since
       ]
       >=
-      FunctionCall TinySocial.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2010-07-22T00:00:00]
       ]
     ]
@@ -27,7 +27,7 @@
         Field=user-since
       ]
       <=
-      FunctionCall TinySocial.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-07-29T23:59:59]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.10.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.10.ast
index 212935c..3f12340 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.10.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.10.ast
@@ -33,7 +33,7 @@
       ]
       Where
         OperatorExpr [
-          FunctionCall TinySocial.spatial-distance@2[
+          FunctionCall asterix.spatial-distance@2[
             FieldAccessor [
               Variable [ Name=$t ]
               Field=sender-location
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.23.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.23.ast
index 32e545b..cb6ebeb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.23.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.23.ast
@@ -36,7 +36,7 @@
   Groupby
     Variable [ Name=$min ]
     :=
-    FunctionCall TinySocial.get-minute@1[
+    FunctionCall asterix.get-minute@1[
       FieldAccessor [
         FieldAccessor [
           Variable [ Name=$k ]
@@ -65,7 +65,7 @@
 Groupby
   Variable [ Name=$h ]
   :=
-  FunctionCall TinySocial.get-hour@1[
+  FunctionCall asterix.get-hour@1[
     FieldAccessor [
       Variable [ Name=$t ]
       Field=send-time
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.24.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.24.ast
index 0da93150..15f7143 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.24.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.24.ast
@@ -64,7 +64,7 @@
   ]
 Let Variable [ Name=#3 ]
   :=
-  FunctionCall TinySocial.substring@2[
+  FunctionCall asterix.substring@2[
     FieldAccessor [
       Variable [ Name=$message ]
       Field=message
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.25.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.25.ast
index a1377a6..f130474 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.25.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.25.ast
@@ -4,7 +4,7 @@
 FunctionCall asterix.avg@1[
   (
     SELECT ELEMENT [
-    FunctionCall TinySocial.string-length@1[
+    FunctionCall asterix.string-length@1[
       FieldAccessor [
         Variable [ Name=$message ]
         Field=message
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.6.ast
index 1447bdc..85f493c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/tinysocial-suite.6.ast
@@ -16,7 +16,7 @@
         Field=user-since
       ]
       >=
-      FunctionCall TinySocial.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2010-07-22T00:00:00]
       ]
     ]
@@ -27,7 +27,7 @@
         Field=user-since
       ]
       <=
-      FunctionCall TinySocial.datetime@1[
+      FunctionCall asterix.datetime@1[
         LiteralExpr [STRING] [2012-07-29T23:59:59]
       ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.ast
index 1a0f2bfc..d08ba3b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_01/counthashed-gram-tokens_01.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.counthashed-gram-tokens@3[
+  FunctionCall asterix.counthashed-gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.ast
index da0deb1..0e91f28 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-gram-tokens_02/counthashed-gram-tokens_02.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.counthashed-gram-tokens@3[
+  FunctionCall asterix.counthashed-gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [TRUE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.ast
index 3e31997..5f3ff16 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/counthashed-word-tokens_01/counthashed-word-tokens_01.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen.]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.counthashed-word-tokens@1[
+  FunctionCall asterix.counthashed-word-tokens@1[
     Variable [ Name=$txt ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_01/gram-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_01/gram-tokens_01.3.ast
index ffcb3aa..f172403 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_01/gram-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_01/gram-tokens_01.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_02/gram-tokens_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_02/gram-tokens_02.3.ast
index 38fa7a41..f92151c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_02/gram-tokens_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/gram-tokens_02/gram-tokens_02.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.gram-tokens@3[
+  FunctionCall asterix.gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [TRUE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.ast
index 3fe7f85..367ea0a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_01/hashed-gram-tokens_01.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.hashed-gram-tokens@3[
+  FunctionCall asterix.hashed-gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [FALSE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.ast
index 650c19b..155258f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-gram-tokens_02/hashed-gram-tokens_02.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Jürgen S. Generic's Car]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.hashed-gram-tokens@3[
+  FunctionCall asterix.hashed-gram-tokens@3[
     Variable [ Name=$txt ]
     LiteralExpr [LONG] [3]
     LiteralExpr [TRUE]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.ast
index 686b329..858964c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/hashed-word-tokens_01/hashed-word-tokens_01.3.ast
@@ -6,7 +6,7 @@
   LiteralExpr [STRING] [Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen.]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.hashed-word-tokens@1[
+  FunctionCall asterix.hashed-word-tokens@1[
     Variable [ Name=$txt ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_01/word-tokens_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_01/word-tokens_01.3.ast
index 7e5a36d..5e432d6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_01/word-tokens_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_01/word-tokens_01.3.ast
@@ -5,7 +5,7 @@
   LiteralExpr [STRING] [Hello World, I would like to inform you of the importance of Foo Bar. Yes, Foo Bar. Jürgen.]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     Variable [ Name=$txt ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_02/word-tokens_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_02/word-tokens_02.3.ast
index ffc58ee..0a608d5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_02/word-tokens_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tokenizers/word-tokens_02/word-tokens_02.3.ast
@@ -5,7 +5,7 @@
   LiteralExpr [STRING] [ΩΣ]
 Let Variable [ Name=$tokens ]
   :=
-  FunctionCall test.word-tokens@1[
+  FunctionCall asterix.word-tokens@1[
     Variable [ Name=$txt ]
   ]
 SELECT ELEMENT [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
index 162701b..e715133 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
@@ -337,7 +337,7 @@
       (
         LiteralExpr [STRING] [ps_min_supplycost]
         :
-        FunctionCall asterix.min@1[
+        FunctionCall tpch.STRICT_MIN@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q07_volume_shipping/q07_volume_shipping.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q07_volume_shipping/q07_volume_shipping.3.ast
index 4de6f4e..1d4ed44 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q07_volume_shipping/q07_volume_shipping.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q07_volume_shipping/q07_volume_shipping.3.ast
@@ -317,7 +317,7 @@
 ]
 Let Variable [ Name=$l_year0 ]
   :=
-  FunctionCall tpch.get-year@1[
+  FunctionCall asterix.get-year@1[
     FieldAccessor [
       Variable [ Name=$locs ]
       Field=l_shipdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q08_national_market_share/q08_national_market_share.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q08_national_market_share/q08_national_market_share.3.ast
index 148fe1d..30243af 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q08_national_market_share/q08_national_market_share.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q08_national_market_share/q08_national_market_share.3.ast
@@ -450,7 +450,7 @@
     ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$slnrcop ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
index 683f2f2..52159a3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
@@ -344,7 +344,7 @@
         ]
         Where
           OperatorExpr [
-            FunctionCall tpch.contains@2[
+            FunctionCall asterix.contains@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_name
@@ -400,7 +400,7 @@
       ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q15_top_supplier/q15_top_supplier.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q15_top_supplier/q15_top_supplier.3.ast
index 8ae41ce..872bfc4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q15_top_supplier/q15_top_supplier.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q15_top_supplier/q15_top_supplier.3.ast
@@ -11,7 +11,7 @@
       (
         LiteralExpr [STRING] [total_revenue]
         :
-        FunctionCall asterix.sum@1[
+        FunctionCall tpch.STRICT_SUM@1[
           (
             SELECT ELEMENT [
             OperatorExpr [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.ast
index de332e6..61d2e5e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q17_small_quantity_order_revenue/q17_small_quantity_order_revenue.3.ast
@@ -14,7 +14,7 @@
         OperatorExpr [
           LiteralExpr [DOUBLE] [0.2]
           *
-          FunctionCall asterix.avg@1[
+          FunctionCall tpch.strict_avg@1[
             (
               SELECT ELEMENT [
               FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q19_discounted_revenue/q19_discounted_revenue.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q19_discounted_revenue/q19_discounted_revenue.3.ast
index 3314c43..0ceadd4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q19_discounted_revenue/q19_discounted_revenue.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q19_discounted_revenue/q19_discounted_revenue.3.ast
@@ -56,7 +56,7 @@
               LiteralExpr [STRING] [Brand#12]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -100,7 +100,7 @@
               LiteralExpr [LONG] [5]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
@@ -128,7 +128,7 @@
               LiteralExpr [STRING] [Brand#23]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -172,7 +172,7 @@
               LiteralExpr [LONG] [10]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
@@ -200,7 +200,7 @@
               LiteralExpr [STRING] [Brand#34]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -244,7 +244,7 @@
               LiteralExpr [LONG] [15]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
index 4b1fa29..06a76d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
@@ -11,7 +11,7 @@
       (
         LiteralExpr [STRING] [count_suppkey]
         :
-        FunctionCall asterix.count@1[
+        FunctionCall tpch.strict_count@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -38,7 +38,7 @@
       (
         LiteralExpr [STRING] [max_suppkey]
         :
-        FunctionCall asterix.max@1[
+        FunctionCall tpch.strict_max@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -123,7 +123,7 @@
       (
         LiteralExpr [STRING] [count_suppkey]
         :
-        FunctionCall asterix.count@1[
+        FunctionCall tpch.strict_count@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -150,7 +150,7 @@
       (
         LiteralExpr [STRING] [max_suppkey]
         :
-        FunctionCall asterix.max@1[
+        FunctionCall tpch.strict_max@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
index 7474a00..4df5c9e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
@@ -22,7 +22,7 @@
       (
         LiteralExpr [STRING] [cntrycode]
         :
-        FunctionCall tpch.substring@3[
+        FunctionCall tpch.SUBSTR@3[
           FieldAccessor [
             Variable [ Name=$c ]
             Field=c_phone
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/query-issue638/query-issue638.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/query-issue638/query-issue638.3.ast
index 7dd2855..0f2d9c4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/query-issue638/query-issue638.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch-sql-like/query-issue638/query-issue638.3.ast
@@ -344,7 +344,7 @@
         ]
         Where
           OperatorExpr [
-            FunctionCall tpch.contains@2[
+            FunctionCall asterix.contains@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_name
@@ -400,7 +400,7 @@
       ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
index 162701b..e715133 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q02_minimum_cost_supplier/q02_minimum_cost_supplier.3.ast
@@ -337,7 +337,7 @@
       (
         LiteralExpr [STRING] [ps_min_supplycost]
         :
-        FunctionCall asterix.min@1[
+        FunctionCall tpch.STRICT_MIN@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q07_volume_shipping/q07_volume_shipping.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q07_volume_shipping/q07_volume_shipping.3.ast
index 4de6f4e..1d4ed44 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q07_volume_shipping/q07_volume_shipping.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q07_volume_shipping/q07_volume_shipping.3.ast
@@ -317,7 +317,7 @@
 ]
 Let Variable [ Name=$l_year0 ]
   :=
-  FunctionCall tpch.get-year@1[
+  FunctionCall asterix.get-year@1[
     FieldAccessor [
       Variable [ Name=$locs ]
       Field=l_shipdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q08_national_market_share/q08_national_market_share.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q08_national_market_share/q08_national_market_share.3.ast
index 979a913..26016cc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q08_national_market_share/q08_national_market_share.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q08_national_market_share/q08_national_market_share.3.ast
@@ -464,7 +464,7 @@
     ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$slnrcop ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
index 6d23830..a2db84b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q09_product_type_profit_nt/q09_product_type_profit_nt.3.ast
@@ -350,7 +350,7 @@
             AS Variable [ Name=$l2 ]
             ON
             OperatorExpr [
-              FunctionCall tpch.contains@2[
+              FunctionCall asterix.contains@2[
                 FieldAccessor [
                   Variable [ Name=$p ]
                   Field=p_name
@@ -407,7 +407,7 @@
       ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q15_top_supplier/q15_top_supplier.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q15_top_supplier/q15_top_supplier.3.ast
index 8ae41ce..872bfc4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q15_top_supplier/q15_top_supplier.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q15_top_supplier/q15_top_supplier.3.ast
@@ -11,7 +11,7 @@
       (
         LiteralExpr [STRING] [total_revenue]
         :
-        FunctionCall asterix.sum@1[
+        FunctionCall tpch.STRICT_SUM@1[
           (
             SELECT ELEMENT [
             OperatorExpr [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q19_discounted_revenue/q19_discounted_revenue.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q19_discounted_revenue/q19_discounted_revenue.3.ast
index 3314c43..0ceadd4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q19_discounted_revenue/q19_discounted_revenue.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q19_discounted_revenue/q19_discounted_revenue.3.ast
@@ -56,7 +56,7 @@
               LiteralExpr [STRING] [Brand#12]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -100,7 +100,7 @@
               LiteralExpr [LONG] [5]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
@@ -128,7 +128,7 @@
               LiteralExpr [STRING] [Brand#23]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -172,7 +172,7 @@
               LiteralExpr [LONG] [10]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
@@ -200,7 +200,7 @@
               LiteralExpr [STRING] [Brand#34]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_container
@@ -244,7 +244,7 @@
               LiteralExpr [LONG] [15]
             ]
             and
-            FunctionCall tpch.matches@2[
+            FunctionCall asterix.matches@2[
               FieldAccessor [
                 Variable [ Name=$l ]
                 Field=l_shipmode
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
index 4b1fa29..06a76d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q21_suppliers_who_kept_orders_waiting/q21_suppliers_who_kept_orders_waiting.3.ast
@@ -11,7 +11,7 @@
       (
         LiteralExpr [STRING] [count_suppkey]
         :
-        FunctionCall asterix.count@1[
+        FunctionCall tpch.strict_count@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -38,7 +38,7 @@
       (
         LiteralExpr [STRING] [max_suppkey]
         :
-        FunctionCall asterix.max@1[
+        FunctionCall tpch.strict_max@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -123,7 +123,7 @@
       (
         LiteralExpr [STRING] [count_suppkey]
         :
-        FunctionCall asterix.count@1[
+        FunctionCall tpch.strict_count@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
@@ -150,7 +150,7 @@
       (
         LiteralExpr [STRING] [max_suppkey]
         :
-        FunctionCall asterix.max@1[
+        FunctionCall tpch.strict_max@1[
           (
             SELECT ELEMENT [
             FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
index 7474a00..4df5c9e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q22_global_sales_opportunity/q22_global_sales_opportunity.3.ast
@@ -22,7 +22,7 @@
       (
         LiteralExpr [STRING] [cntrycode]
         :
-        FunctionCall tpch.substring@3[
+        FunctionCall tpch.SUBSTR@3[
           FieldAccessor [
             Variable [ Name=$c ]
             Field=c_phone
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue562/query-issue562.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue562/query-issue562.3.ast
index 6dce02e..7fd66dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue562/query-issue562.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue562/query-issue562.3.ast
@@ -104,7 +104,7 @@
       ]
       Let Variable [ Name=$phone_substr ]
         :=
-        FunctionCall tpch.substring@3[
+        FunctionCall asterix.substring@3[
           FieldAccessor [
             Variable [ Name=$c ]
             Field=c_phone
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue638/query-issue638.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue638/query-issue638.3.ast
index 7dd2855..0f2d9c4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue638/query-issue638.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/query-issue638/query-issue638.3.ast
@@ -344,7 +344,7 @@
         ]
         Where
           OperatorExpr [
-            FunctionCall tpch.contains@2[
+            FunctionCall asterix.contains@2[
               FieldAccessor [
                 Variable [ Name=$p ]
                 Field=p_name
@@ -400,7 +400,7 @@
       ]
     Let Variable [ Name=$o_year ]
       :=
-      FunctionCall tpch.get-year@1[
+      FunctionCall asterix.get-year@1[
         FieldAccessor [
           Variable [ Name=$o ]
           Field=o_orderdate
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_01/promotion_closedtype_field_vs_constant_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_01/promotion_closedtype_field_vs_constant_01.3.ast
index fe649d3..6ff3869 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_01/promotion_closedtype_field_vs_constant_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_01/promotion_closedtype_field_vs_constant_01.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_02/promotion_closedtype_field_vs_constant_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_02/promotion_closedtype_field_vs_constant_02.3.ast
index 50c76b7..26b7b66 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_02/promotion_closedtype_field_vs_constant_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_02/promotion_closedtype_field_vs_constant_02.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_03/promotion_closedtype_field_vs_constant_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_03/promotion_closedtype_field_vs_constant_03.3.ast
index eccf7e9..85759ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_03/promotion_closedtype_field_vs_constant_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_03/promotion_closedtype_field_vs_constant_03.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_04/promotion_closedtype_field_vs_constant_04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_04/promotion_closedtype_field_vs_constant_04.3.ast
index 2c542a9..8dcc843 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_04/promotion_closedtype_field_vs_constant_04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_04/promotion_closedtype_field_vs_constant_04.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_05/promotion_closedtype_field_vs_constant_05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_05/promotion_closedtype_field_vs_constant_05.3.ast
index 22095c4..73fa45b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_05/promotion_closedtype_field_vs_constant_05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_05/promotion_closedtype_field_vs_constant_05.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_06/promotion_closedtype_field_vs_constant_06.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_06/promotion_closedtype_field_vs_constant_06.3.ast
index 2c542a9..8dcc843 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_06/promotion_closedtype_field_vs_constant_06.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_06/promotion_closedtype_field_vs_constant_06.3.ast
@@ -32,7 +32,7 @@
       Field=age
     ]
     =
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_07/promotion_closedtype_field_vs_constant_07.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_07/promotion_closedtype_field_vs_constant_07.3.ast
index 8245e3f..8e6b404 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_07/promotion_closedtype_field_vs_constant_07.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_07/promotion_closedtype_field_vs_constant_07.3.ast
@@ -32,7 +32,7 @@
       Field=worksince
     ]
     =
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [2001]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_08/promotion_closedtype_field_vs_constant_08.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_08/promotion_closedtype_field_vs_constant_08.3.ast
index 41f6c6c..47a8bd9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_08/promotion_closedtype_field_vs_constant_08.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_08/promotion_closedtype_field_vs_constant_08.3.ast
@@ -32,7 +32,7 @@
       Field=worksince
     ]
     =
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [2001]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_09/promotion_closedtype_field_vs_constant_09.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_09/promotion_closedtype_field_vs_constant_09.3.ast
index 09dbd79..bef4e53 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_09/promotion_closedtype_field_vs_constant_09.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_09/promotion_closedtype_field_vs_constant_09.3.ast
@@ -32,7 +32,7 @@
       Field=worksince
     ]
     =
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [2001]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_10/promotion_closedtype_field_vs_constant_10.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_10/promotion_closedtype_field_vs_constant_10.3.ast
index 1c1aa07..f4ce0de 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_10/promotion_closedtype_field_vs_constant_10.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_10/promotion_closedtype_field_vs_constant_10.3.ast
@@ -32,7 +32,7 @@
       Field=worksince
     ]
     =
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [2001]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_11/promotion_closedtype_field_vs_constant_11.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_11/promotion_closedtype_field_vs_constant_11.3.ast
index dbbce3a..2c8499a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_11/promotion_closedtype_field_vs_constant_11.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_closedtype_field_vs_constant_11/promotion_closedtype_field_vs_constant_11.3.ast
@@ -32,7 +32,7 @@
       Field=worksince
     ]
     =
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [2001]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_01/promotion_opentype_field_vs_constant_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_01/promotion_opentype_field_vs_constant_01.3.ast
index d3f9a59..4b7c66e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_01/promotion_opentype_field_vs_constant_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_01/promotion_opentype_field_vs_constant_01.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.int8@1[
+    FunctionCall asterix.int8@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_02/promotion_opentype_field_vs_constant_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_02/promotion_opentype_field_vs_constant_02.3.ast
index 02a69df..3612d89 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_02/promotion_opentype_field_vs_constant_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_02/promotion_opentype_field_vs_constant_02.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.int16@1[
+    FunctionCall asterix.int16@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_03/promotion_opentype_field_vs_constant_03.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_03/promotion_opentype_field_vs_constant_03.3.ast
index d2fddef..8a2016e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_03/promotion_opentype_field_vs_constant_03.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_03/promotion_opentype_field_vs_constant_03.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.int32@1[
+    FunctionCall asterix.int32@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_04/promotion_opentype_field_vs_constant_04.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_04/promotion_opentype_field_vs_constant_04.3.ast
index f0a7742..b74cf5c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_04/promotion_opentype_field_vs_constant_04.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_04/promotion_opentype_field_vs_constant_04.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.int64@1[
+    FunctionCall asterix.int64@1[
       LiteralExpr [STRING] [1]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_05/promotion_opentype_field_vs_constant_05.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_05/promotion_opentype_field_vs_constant_05.3.ast
index dfbe5db..9c049be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_05/promotion_opentype_field_vs_constant_05.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_05/promotion_opentype_field_vs_constant_05.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.float@1[
+    FunctionCall asterix.float@1[
       LiteralExpr [STRING] [1.0]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_06/promotion_opentype_field_vs_constant_06.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_06/promotion_opentype_field_vs_constant_06.3.ast
index 38e4915..a616718 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_06/promotion_opentype_field_vs_constant_06.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_06/promotion_opentype_field_vs_constant_06.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.double@1[
+    FunctionCall asterix.double@1[
       LiteralExpr [STRING] [1.0]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_08/promotion_opentype_field_vs_constant_08.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_08/promotion_opentype_field_vs_constant_08.3.ast
index b6ab37e..ddc32ca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_08/promotion_opentype_field_vs_constant_08.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/types/promotion_opentype_field_vs_constant_08/promotion_opentype_field_vs_constant_08.3.ast
@@ -32,7 +32,7 @@
       Field=supvrid
     ]
     =
-    FunctionCall test.point@1[
+    FunctionCall asterix.point@1[
       LiteralExpr [STRING] [80.10d, -10E5]
     ]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/f01/f01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/f01/f01.3.ast
index 0b153e1..9245cca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/f01/f01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/f01/f01.3.ast
@@ -1,4 +1,4 @@
 DataverseUse test
 Query:
-FunctionCall test.tinyint@0[
+FunctionCall asterix.tinyint@0[
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/invoke-private-function/invoke-private-function.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/invoke-private-function/invoke-private-function.3.ast
index 259fce4..3808e5e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/invoke-private-function/invoke-private-function.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/invoke-private-function/invoke-private-function.3.ast
@@ -91,35 +91,35 @@
 Let Variable [ Name=$results ]
   :=
   OrderedListConstructor [
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$a ]
       Variable [ Name=$b ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$b ]
       Variable [ Name=$a ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$c ]
       Variable [ Name=$d ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$d ]
       Variable [ Name=$c ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$e ]
       Variable [ Name=$f ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$f ]
       Variable [ Name=$e ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$g ]
       Variable [ Name=$h ]
     ]
-    FunctionCall test.similarity-jaccard@2[
+    FunctionCall asterix.similarity-jaccard@2[
       Variable [ Name=$h ]
       Variable [ Name=$g ]
     ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue172/query-issue172.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue172/query-issue172.3.ast
index 0246049..0b6182d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue172/query-issue172.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue172/query-issue172.3.ast
@@ -1,6 +1,6 @@
 Query:
-FunctionCall null.string-length@1[
-  FunctionCall null.string-concat@1[
+FunctionCall asterix.string-length@1[
+  FunctionCall asterix.string-concat@1[
     OrderedListConstructor [
       LiteralExpr [STRING] [this is a ]
       LiteralExpr [STRING] [test string]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue201/query-issue201.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue201/query-issue201.3.ast
index 5560bd3..3ab1947 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue201/query-issue201.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/query-issue201/query-issue201.3.ast
@@ -2,7 +2,7 @@
 Query:
 Let Variable [ Name=$x ]
   :=
-  FunctionCall null.range@2[
+  FunctionCall asterix.range@2[
     LiteralExpr [LONG] [1]
     LiteralExpr [LONG] [100]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf16/udf16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf16/udf16.3.ast
index e095df3..61af8ef 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf16/udf16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf16/udf16.3.ast
@@ -1,6 +1,6 @@
 DataverseUse test
 Query:
-FunctionCall test.string-length@1[
+FunctionCall asterix.string-length@1[
   FunctionCall test.fn02@0[
   ]
 ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.3.ast
index 528b379..86cd5b1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.3.ast
@@ -14,12 +14,12 @@
   (
     SELECT ELEMENT [
     FieldAccessor [
-      Variable [ Name=#2 ]
+      Variable [ Name=#4 ]
       Field=rank_result_delta
     ]
     ]
     FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#2 ]
+      AS Variable [ Name=#4 ]
     ]
   )
 ]
@@ -28,12 +28,12 @@
   (
     SELECT ELEMENT [
     FieldAccessor [
-      Variable [ Name=#3 ]
+      Variable [ Name=#5 ]
       Field=rank_result_delta
     ]
     ]
     FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#3 ]
+      AS Variable [ Name=#5 ]
     ]
   )
 ]
@@ -42,12 +42,12 @@
   (
     SELECT ELEMENT [
     FieldAccessor [
-      Variable [ Name=#4 ]
+      Variable [ Name=#6 ]
       Field=percent_rank_result_delta
     ]
     ]
     FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#4 ]
+      AS Variable [ Name=#6 ]
     ]
   )
 ]
@@ -56,12 +56,12 @@
   (
     SELECT ELEMENT [
     FieldAccessor [
-      Variable [ Name=#5 ]
+      Variable [ Name=#7 ]
       Field=percent_rank_result_delta
     ]
     ]
     FROM [      Variable [ Name=#1 ]
-      AS Variable [ Name=#5 ]
+      AS Variable [ Name=#7 ]
     ]
   )
 ]
@@ -72,7 +72,7 @@
   ]
   AS Variable [ Name=$t1 ]
 ,
-  FunctionCall test.range@2[
+  FunctionCall asterix.range@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=one
@@ -81,7 +81,7 @@
   ]
   AS Variable [ Name=$p ]
 ,
-  FunctionCall test.range@2[
+  FunctionCall asterix.range@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=one
@@ -90,7 +90,7 @@
   ]
   AS Variable [ Name=$n ]
 ,
-  FunctionCall test.range@2[
+  FunctionCall asterix.range@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=one
@@ -116,8 +116,16 @@
   ]
 Let Variable [ Name=$rank_result_actual ]
   :=
-  WINDOW test.rank@0[
+  WINDOW asterix.rank-impl[
   ]
+    AS Variable [ Name=#2 ]
+    (
+      t1:=Variable [ Name=$t1 ]
+      p:=Variable [ Name=$p ]
+      n:=Variable [ Name=$n ]
+      d:=Variable [ Name=$d ]
+      rank_result_expected:=Variable [ Name=$rank_result_expected ]
+    )
   OVER (
     PARTITION BY
       FieldAccessor [
@@ -157,8 +165,19 @@
   ]
 Let Variable [ Name=$percent_rank_result_actual ]
   :=
-  WINDOW test.percent_rank@0[
+  WINDOW asterix.percent-rank-impl[
   ]
+    AS Variable [ Name=#3 ]
+    (
+      t1:=Variable [ Name=$t1 ]
+      p:=Variable [ Name=$p ]
+      n:=Variable [ Name=$n ]
+      d:=Variable [ Name=$d ]
+      rank_result_expected:=Variable [ Name=$rank_result_expected ]
+      rank_result_actual:=Variable [ Name=$rank_result_actual ]
+      rank_result_delta:=Variable [ Name=$rank_result_delta ]
+      percent_rank_result_expected:=Variable [ Name=$percent_rank_result_expected ]
+    )
   OVER (
     PARTITION BY
       FieldAccessor [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.4.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.4.ast
index 7330fe9..1bb139c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.4.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.4.ast
@@ -6,8 +6,14 @@
 SELECT [
 Variable [ Name=$p ]
 p
-WINDOW test.row_number@0[
+WINDOW asterix.row-number-impl@0[
 ]
+  AS Variable [ Name=#2 ]
+  (
+    p:=Variable [ Name=$p ]
+    p:=Variable [ Name=$p ]
+    #1:=Variable [ Name=#1 ]
+  )
 OVER (
   ORDER BY
     Variable [ Name=$p ]
@@ -20,7 +26,7 @@
   ]
   AS Variable [ Name=$t1 ]
 ,
-  FunctionCall test.range@2[
+  FunctionCall asterix.range@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=one
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.5.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.5.ast
index cfad0ae..b8a9f3c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.5.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.5.ast
@@ -16,8 +16,12 @@
     Field=c1
   ]
   c1
-  WINDOW test.row_number@0[
+  WINDOW asterix.row-number-impl@0[
   ]
+    AS Variable [ Name=#1 ]
+    (
+      g:=Variable [ Name=$g ]
+    )
   OVER (
     ORDER BY
       FieldAccessor [
@@ -52,7 +56,7 @@
   ]
   AS Variable [ Name=$t1 ]
 ,
-  FunctionCall test.range@2[
+  FunctionCall asterix.range@2[
     FieldAccessor [
       Variable [ Name=$t1 ]
       Field=one
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.6.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.6.ast
index b9f6792..094fbd4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.6.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.6.ast
@@ -6,7 +6,7 @@
   Field=c1
 ]
 c1
-WINDOW test.array_sum@1[
+WINDOW asterix.sql-sum@1[
   (
     SELECT ELEMENT [
     FieldAccessor [
@@ -23,6 +23,9 @@
   )
 ]
   AS Variable [ Name=$w ]
+  (
+    t1:=Variable [ Name=$t1 ]
+  )
 OVER (
   PARTITION BY
     OperatorExpr [
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.7.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.7.ast
index 2271af5..4aed6da 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.7.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.7.ast
@@ -4,13 +4,26 @@
 m
 Variable [ Name=$t ]
 t
-WINDOW null.sum@1[
-  OperatorExpr [
-    Variable [ Name=$t ]
-    mod
-    LiteralExpr [LONG] [4]
-  ]
+WINDOW asterix.sql-sum@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=#5 ]
+      Field=#2
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#5 ]
+    ]
+  )
 ]
+  AS Variable [ Name=#1 ]
+  (
+    t:=Variable [ Name=$t ]
+    m:=Variable [ Name=$m ]
+    #2:=Variable [ Name=#2 ]
+    #4:=Variable [ Name=#4 ]
+  )
 OVER (
   PARTITION BY
     Variable [ Name=$m ]
@@ -20,13 +33,26 @@
   rows between unbounded preceding and current row exclude no others
 )
 sum
-WINDOW null.sum-distinct@1[
-  OperatorExpr [
-    Variable [ Name=$t ]
-    mod
-    LiteralExpr [LONG] [4]
-  ]
+WINDOW asterix.sql-sum-distinct@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=#6 ]
+      Field=#4
+    ]
+    ]
+    FROM [      Variable [ Name=#3 ]
+      AS Variable [ Name=#6 ]
+    ]
+  )
 ]
+  AS Variable [ Name=#3 ]
+  (
+    t:=Variable [ Name=$t ]
+    m:=Variable [ Name=$m ]
+    #2:=Variable [ Name=#2 ]
+    #4:=Variable [ Name=#4 ]
+  )
 OVER (
   PARTITION BY
     Variable [ Name=$m ]
@@ -37,7 +63,7 @@
 )
 sum_distinct
 ]
-FROM [  FunctionCall null.range@2[
+FROM [  FunctionCall asterix.range@2[
     LiteralExpr [LONG] [1]
     LiteralExpr [LONG] [20]
   ]
@@ -50,6 +76,20 @@
     mod
     LiteralExpr [LONG] [4]
   ]
+Let Variable [ Name=#2 ]
+  :=
+  OperatorExpr [
+    Variable [ Name=$t ]
+    mod
+    LiteralExpr [LONG] [4]
+  ]
+Let Variable [ Name=#4 ]
+  :=
+  OperatorExpr [
+    Variable [ Name=$t ]
+    mod
+    LiteralExpr [LONG] [4]
+  ]
 Orderby
   Variable [ Name=$m ]
   ASC
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.8.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.8.ast
index 6204b11..115334b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.8.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.8.ast
@@ -2,19 +2,22 @@
 SELECT [
 Variable [ Name=$x ]
 x
-WINDOW null.array_sum@1[
-  FunctionCall null.to-array@1[
+WINDOW asterix.sql-sum@1[
+  FunctionCall asterix.to-array@1[
     FunctionCall asterix.sql-count@1[
       Variable [ Name=$w ]
     ]
   ]
 ]
   AS Variable [ Name=$w ]
+  (
+    x:=Variable [ Name=$x ]
+  )
 OVER (
 )
 sum
 ]
-FROM [  FunctionCall null.range@2[
+FROM [  FunctionCall asterix.range@2[
     LiteralExpr [LONG] [1]
     LiteralExpr [LONG] [4]
   ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast
index ebedcaa..b3b78f0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast
@@ -2,7 +2,7 @@
 SELECT ELEMENT [
 Variable [ Name=$x ]
 ]
-FROM [  FunctionCall null.range@2[
+FROM [  FunctionCall asterix.range@2[
     LiteralExpr [LONG] [1]
     LiteralExpr [LONG] [10]
   ]
@@ -11,8 +11,8 @@
 Where
   OperatorExpr [
     OperatorExpr [
-      FunctionCall null.to-bigint@1[
-        FunctionCall null.to-double@1[
+      FunctionCall asterix.to-bigint@1[
+        FunctionCall asterix.to-double@1[
           Variable [ Name=$x ]
         ]
       ]
@@ -21,9 +21,23 @@
     ]
     and
     OperatorExpr [
-      WINDOW null.sum@1[
-        Variable [ Name=$x ]
+      WINDOW asterix.sql-sum@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=#3 ]
+            Field=x
+          ]
+          ]
+          FROM [            Variable [ Name=#1 ]
+            AS Variable [ Name=#3 ]
+          ]
+        )
       ]
+        AS Variable [ Name=#1 ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       =
@@ -37,12 +51,26 @@
     ]
     and
     OperatorExpr [
-      WINDOW null.count@1[
-        Variable [ Name=$x ]
+      WINDOW asterix.sql-count@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=#4 ]
+            Field=x
+          ]
+          ]
+          FROM [            Variable [ Name=#2 ]
+            AS Variable [ Name=#4 ]
+          ]
+        )
       ]
+        AS Variable [ Name=#2 ]
+        (
+          x:=Variable [ Name=$x ]
+        )
       OVER (
       )
       =
       LiteralExpr [LONG] [10]
     ]
-  ]
\ No newline at end of file
+  ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
index 924fd37..35afe28 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -464,7 +464,7 @@
     <test-case FilePath="fuzzyjoin">
       <compilation-unit name="dblp-aqlplus_2">
         <output-dir compare="Text">dblp-aqlplus_2</output-dir>
-        <expected-error>Type mismatch: expected value of type array or multiset, but got the value of type string</expected-error>
+        <expected-error>ASX0002: Type mismatch: function similarity-jaccard expects its 1st input parameter to be of type array or multiset, but the actual input type is string</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="fuzzyjoin">
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset.xml
index ad17afe..3a4f03e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset.xml
@@ -232,7 +232,16 @@
     <test-case FilePath="external-dataset">
       <compilation-unit name="aws/s3/include-exclude/include-10">
         <output-dir compare="Text">aws/s3/include-exclude/include-10</output-dir>
-        <expected-error>Invalid pattern *[abc][.*</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="external-dataset">
+      <compilation-unit name="aws/s3/include-exclude/include-11">
+        <output-dir compare="Text">aws/s3/include-exclude/include-11</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="external-dataset">
+      <compilation-unit name="aws/s3/include-exclude/include-12">
+        <output-dir compare="Text">aws/s3/include-exclude/include-12</output-dir>
       </compilation-unit>
     </test-case>
   </test-group>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_python.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_python.xml
index 6d03162..e4669da 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_python.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_python.xml
@@ -22,7 +22,6 @@
              ResultOffsetPath="results"
              QueryOffsetPath="queries_sqlpp"
              QueryFileExtension=".sqlpp">
-
   <test-group name="external-library-python">
     <test-case FilePath="external-library">
       <compilation-unit name="mysentiment">
@@ -32,7 +31,18 @@
     <test-case FilePath="external-library">
       <compilation-unit name="python-fn-escape">
         <output-dir compare="Text">python-fn-escape</output-dir>
-        <expected-error>'NoneType' object is not callable</expected-error>
+        <expected-error>ImportError: Module was not found in library</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="external-library">
+      <compilation-unit name="py_nested_access">
+        <output-dir compare="Clean-JSON">py_nested_access</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="external-library" check-warnings="true">
+      <compilation-unit name="py_function_error">
+        <output-dir compare="Clean-JSON">py_function_error</output-dir>
+        <expected-warn>ASX0201: External UDF returned exception. Returned exception was: ArithmeticError: oof</expected-warn>
       </compilation-unit>
     </test-case>
   </test-group>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_sqlpp.xml
index 156d5a0..ea5d279 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_sqlpp.xml
@@ -24,6 +24,11 @@
 
   <test-group name="external-library">
     <test-case FilePath="external-library">
+      <compilation-unit name="create-or-replace-function-1">
+        <output-dir compare="Text">create-or-replace-function-1</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="external-library">
       <compilation-unit name="type_validation">
         <output-dir compare="Text">type_validation</output-dir>
       </compilation-unit>
@@ -46,7 +51,7 @@
     <test-case FilePath="external-library">
       <compilation-unit name="mysum_dropinuse">
         <output-dir compare="Text">mysum_dropinuse</output-dir>
-        <expected-error>Cannot drop library externallibtest.testlib being used by funciton externallibtest.mysum@2</expected-error>
+        <expected-error>Cannot drop library externallibtest.testlib being used by funciton externallibtest.mysum(2)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="external-library">
@@ -79,11 +84,6 @@
         <output-dir compare="Text">deterministic</output-dir>
       </compilation-unit>
     </test-case>
-    <test-case FilePath="feeds">
-      <compilation-unit name="feed-with-external-function">
-        <output-dir compare="Text">feed-with-external-function</output-dir>
-      </compilation-unit>
-    </test-case>
     <test-case FilePath="external-library">
       <compilation-unit name="return_invalid_type">
         <output-dir compare="Text">getCapital</output-dir>
@@ -107,5 +107,10 @@
         <output-dir compare="Text">feed-with-external-adapter</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="feeds">
+      <compilation-unit name="feed-with-external-adapter-cross-dv">
+        <output-dir compare="Text">feed-with-external-adapter-cross-dv</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
 </test-suite>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 4b2a209..883a9e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -2843,7 +2843,7 @@
     <test-case FilePath="aggregate-sql-sugar">
       <compilation-unit name="array_agg_negative">
         <output-dir compare="Text">array_agg</output-dir>
-        <expected-error>ASX1079: Compilation error: array_agg is a SQL-92 aggregate function. The SQL++ core aggregate function strict_arrayagg could potentially express the intent.</expected-error>
+        <expected-error>ASX1079: Compilation error: arrayagg is a SQL-92 aggregate function. The SQL++ core aggregate function strict_arrayagg could potentially express the intent.</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql-sugar">
@@ -3013,7 +3013,7 @@
     <test-case FilePath="array_fun">
       <compilation-unit name="array_slice/array_slice_exception_result">
         <output-dir compare="Text">array_slice/array_slice_exception_result</output-dir>
-        <expected-error>Compilation error</expected-error>
+        <expected-error>ASX1081: Cannot find function with name TinySocial.array_slice</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="array_fun">
@@ -3967,6 +3967,11 @@
         <expected-error>Syntax error: In line 53 >>create  primary index if exists sec_primary_idx1  on LineItem;&lt;&lt; Encountered "exists" at column 26.</expected-error>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="ddl/create-index">
+      <compilation-unit name="create-inverted-index-with-variable-length-primary-key">
+        <output-dir compare="Text">create-inverted-index-with-variable-length-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
     <test-case FilePath="ddl">
       <compilation-unit name="bad-type-ddl">
         <output-dir compare="Text">none</output-dir>
@@ -4010,6 +4015,11 @@
         <output-dir compare="Text">dataset-and-index-same-dataverse</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="ddl">
+      <compilation-unit name="create_dataset_with_filter_on_meta">
+        <output-dir compare="Text">create_dataset_with_filter_on_meta</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="dml">
     <test-case FilePath="dml">
@@ -4525,6 +4535,12 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-ngram-correlated-secondary-index">
         <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index</output-dir>
       </compilation-unit>
@@ -4535,26 +4551,51 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-word-secondary-index-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-word-correlated-secondary-index">
         <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-word-correlated-secondary-index-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-nullable">
         <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-ngram-correlated-secondary-index-nullable">
         <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-ngram-correlated-secondary-index-nullable-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-ngram-secondary-index-nullable-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-word-secondary-index-nullable">
         <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key">
+        <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-insert-inverted-index-word-correlated-secondary-index-nullable">
         <output-dir compare="Text">scan-insert-inverted-index-word-secondary-index-nullable</output-dir>
       </compilation-unit>
@@ -4565,6 +4606,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="dml">
+      <compilation-unit name="scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key">
+        <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="dml">
       <compilation-unit name="scan-delete-inverted-index-ngram-correlated-secondary-index">
         <output-dir compare="Text">scan-delete-inverted-index-ngram-secondary-index</output-dir>
       </compilation-unit>
@@ -4837,6 +4883,11 @@
         <output-dir compare="Text">basic-1_1_3</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="fuzzyjoin">
+      <compilation-unit name="dblp-string-as-primary-key">
+        <output-dir compare="Text">dblp-string-as-primary-key</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <!--
     <test-group name="flwor">
@@ -5393,7 +5444,7 @@
     <test-case FilePath="global-aggregate">
       <compilation-unit name="q07_error">
         <output-dir compare="Text">q01</output-dir>
-        <expected-error>COUNT is a SQL-92 aggregate function. The SQL++ core aggregate function array_count could potentially express the intent.</expected-error>
+        <expected-error>count is a SQL-92 aggregate function. The SQL++ core aggregate function array_count could potentially express the intent.</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="global-aggregate">
@@ -5602,16 +5653,6 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="group-by">
-      <compilation-unit name="gby-expr-2">
-        <output-dir compare="Text">gby-expr-2</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="group-by">
-      <compilation-unit name="gby-expr-3">
-        <output-dir compare="Text">gby-expr-3</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="group-by">
       <compilation-unit name="grouping-sets-1">
         <output-dir compare="Text">grouping-sets-1</output-dir>
       </compilation-unit>
@@ -5632,6 +5673,7 @@
         <expected-error>ASX1119: Invalid argument to grouping() function</expected-error>
         <expected-error>ASX1119: Invalid argument to grouping() function</expected-error>
         <expected-error>ASX1118: Too many grouping sets in group by clause: 512. Maximum allowed: 128.</expected-error>
+        <expected-error>ASX1129: Cannot compile SELECT variable.* with GROUP BY GROUPING SETS/ROLLUP/CUBE followed by ORDER BY/LIMIT</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="group-by">
@@ -6192,6 +6234,11 @@
         <output-dir compare="Text">hash_join_record</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="join">
+      <compilation-unit name="join-with-empty-dataset">
+        <output-dir compare="Text">join-with-empty-dataset</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="list">
     <test-case FilePath="list">
@@ -6260,6 +6307,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="list">
+      <compilation-unit name="list-star_01">
+        <output-dir compare="Text">list-star_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="list">
       <compilation-unit name="listify_01">
         <output-dir compare="Text">listify_01</output-dir>
       </compilation-unit>
@@ -6766,6 +6818,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="multipart-dataverse">
+      <compilation-unit name="special_chars_2">
+        <output-dir compare="Text">special_chars_2</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="multipart-dataverse">
       <compilation-unit name="udf_1">
         <output-dir compare="Text">udf_1</output-dir>
       </compilation-unit>
@@ -9158,6 +9215,11 @@
   </test-group>
   <test-group name="statement-params">
     <test-case FilePath="statement-params">
+      <compilation-unit name="index_01">
+        <output-dir compare="Text">index_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="statement-params">
       <compilation-unit name="mixed_01">
         <output-dir compare="Text">mixed_01</output-dir>
       </compilation-unit>
@@ -9391,6 +9453,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="length_multi_code_point_01">
+        <output-dir compare="Text">length_multi_code_point_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="like_01">
         <output-dir compare="Text">like_01</output-dir>
       </compilation-unit>
@@ -9418,11 +9485,6 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
-      <compilation-unit name="ltrim">
-        <output-dir compare="Text">ltrim</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="string">
       <compilation-unit name="matches02">
         <output-dir compare="Text">matches02</output-dir>
       </compilation-unit>
@@ -9508,6 +9570,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="position/offset0/pos0_multi_code_point">
+        <output-dir compare="Text">position/offset0/pos0_multi_code_point</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="position/offset1/position1">
         <output-dir compare="Text">position/offset1/position1</output-dir>
       </compilation-unit>
@@ -9518,6 +9585,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="position/offset1/pos1_multi_code_point">
+        <output-dir compare="Text">position/offset1/pos1_multi_code_point</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="regexp_contains/regexp_contains">
         <output-dir compare="Text">regexp_contains/regexp_contains</output-dir>
       </compilation-unit>
@@ -9778,11 +9850,6 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
-      <compilation-unit name="rtrim">
-        <output-dir compare="Text">rtrim</output-dir>
-      </compilation-unit>
-    </test-case>
-    <test-case FilePath="string">
       <compilation-unit name="split">
         <output-dir compare="Text">split</output-dir>
       </compilation-unit>
@@ -9848,6 +9915,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="string_to_codepoint_multi_codepoints_01">
+        <output-dir compare="Text">string_to_codepoint_multi_codepoints_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="strlen02">
         <output-dir compare="Text">strlen02</output-dir>
       </compilation-unit>
@@ -9918,6 +9990,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="substring_multi_codepoint_01">
+        <output-dir compare="Text">substring_multi_codepoint_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="substring-after-1">
         <output-dir compare="Text">substring-after-1</output-dir>
       </compilation-unit>
@@ -10028,6 +10105,16 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="string">
+      <compilation-unit name="ltrim">
+        <output-dir compare="Text">ltrim</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
+      <compilation-unit name="rtrim">
+        <output-dir compare="Text">rtrim</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="string">
       <compilation-unit name="uppercase">
         <output-dir compare="Text">uppercase</output-dir>
       </compilation-unit>
@@ -11697,13 +11784,13 @@
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="bad-function-ddl-5">
         <output-dir compare="Text">bad-function-ddl-5</output-dir>
-        <expected-error>function experiments.function_that_does_not_exist@0 is not defined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="bad-function-ddl-6">
         <output-dir compare="Text">bad-function-ddl-6</output-dir>
-        <expected-error>function experiments.function_that_does_not_exist@2 is not defined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
@@ -11721,13 +11808,13 @@
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="bad-function-ddl-9">
         <output-dir compare="Text">bad-function-ddl-9</output-dir>
-        <expected-error>function experiments.function_that_does_not_exist@0 which is undefined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="bad-function-ddl-10">
         <output-dir compare="Text">bad-function-ddl-10</output-dir>
-        <expected-error>function experiments.f0@2 which is undefined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name experiments.f0</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
@@ -11743,48 +11830,59 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
+      <compilation-unit name="create-or-replace-function-1">
+        <output-dir compare="Text">create-or-replace-function-1</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-1">
         <output-dir compare="Text">drop-dependency-1</output-dir>
-        <expected-error>Cannot drop dataverse. Function B.f0@2 depends on function C.f1@2</expected-error>
+        <expected-error>Cannot drop dataverse. Function B.f0(2) depends on function C.f1(2)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-2">
         <output-dir compare="Text">drop-dependency-2</output-dir>
-        <expected-error>Cannot drop dataverse. Function B.f2@2 depends on dataset C.TweetMessages</expected-error>
+        <expected-error>Cannot drop dataverse. Function B.f2(2) depends on dataset C.TweetMessages</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-3">
         <output-dir compare="Text">drop-dependency-3</output-dir>
-        <expected-error>Cannot drop function C.f1@2 being used by function B.f0@2</expected-error>
+        <expected-error>Cannot drop function C.f1(2) being used by function B.f0(2)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-4">
         <output-dir compare="Text">drop-dependency-4</output-dir>
-        <expected-error>Cannot drop dataset C.TweetMessages being used by function B.f2@2</expected-error>
+        <expected-error>Cannot drop dataset C.TweetMessages being used by function B.f2(2)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-5">
         <output-dir compare="Text">drop-dependency-5</output-dir>
-        <expected-error>Cannot drop function C.f1@2 being used by function C.f0@2</expected-error>
+        <expected-error>Cannot drop function C.f1(2) being used by function C.f0(2)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="drop-dependency-6">
         <output-dir compare="Text">drop-dependency-6</output-dir>
-        <expected-error>Cannot drop dataset C.TweetMessages being used by function C.f2@2</expected-error>
+        <expected-error>Cannot drop dataset C.TweetMessages being used by function C.f2(2)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
+      <compilation-unit name="drop-function-1">
+        <output-dir compare="Text">drop-function-1</output-dir>
+        <expected-error>ASX1081: Cannot find function with name experiments.my_sum</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="user-defined-functions">
       <compilation-unit name="single-line-definition">
         <output-dir compare="Text">single-line-definition</output-dir>
       </compilation-unit>
@@ -11797,7 +11895,7 @@
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="query-ASTERIXDB-1652">
         <output-dir compare="Text">query-ASTERIXDB-1652-2</output-dir>
-        <expected-error>In function call "test.length(...)", the dataverse "test" cannot be found!</expected-error>
+        <expected-error>ASX1063: Cannot find dataverse with name test</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
@@ -11828,7 +11926,7 @@
     <test-case FilePath="user-defined-functions">
       <compilation-unit name="query-issue455">
         <output-dir compare="Text">query-issue455</output-dir>
-        <expected-error>function test.printName@0 is not defined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name test.printName</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
@@ -11994,9 +12092,19 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="user-defined-functions">
+      <compilation-unit name="udf33_overloading">
+        <output-dir compare="Text">udf33_overloading</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="user-defined-functions">
+      <compilation-unit name="udf34">
+        <output-dir compare="Text">udf34</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="user-defined-functions">
       <compilation-unit name="f01">
         <output-dir compare="Text">f01</output-dir>
-        <expected-error>function test.tinyint@0 is not defined</expected-error>
+        <expected-error>ASX1081: Cannot find function with name test.tinyint</expected-error>
       </compilation-unit>
     </test-case>
     <!-- This test case is not valid anymore since we do not required "IMPORT_PRIVATE_FUNCTIONS" flag anymore -->
@@ -12290,6 +12398,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="feeds">
+      <compilation-unit name="change-feed-filter-on-meta-dataset">
+        <output-dir compare="Text">change-feed-filter-on-meta-dataset</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="feeds">
       <compilation-unit name="change-feed-with-meta-pk-index">
         <output-dir compare="Text">change-feed-with-meta-pk-index</output-dir>
       </compilation-unit>
@@ -12454,7 +12567,7 @@
     <test-case FilePath="feeds">
       <compilation-unit name="drop-function-used-by-feed">
         <output-dir compare="Text">drop-function-used-by-feed</output-dir>
-        <expected-error>Cannot drop function experiments.test_func0@1 being used by feed connection TwitterUsers.UserFeed</expected-error>
+        <expected-error>Cannot drop function experiments.test_func0(1) being used by feed connection TwitterUsers.UserFeed</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
@@ -12466,7 +12579,7 @@
     <test-case FilePath="feeds">
       <compilation-unit name="drop-dataverse-with-function-used-by-feed">
         <output-dir compare="Text">drop-dataverse-with-function-used-by-feed</output-dir>
-        <expected-error>Cannot drop dataverse. Feed connection feeddv.UserFeed depends on function fundv.test_func0@1</expected-error>
+        <expected-error>Cannot drop dataverse. Feed connection feeddv.UserFeed depends on function fundv.test_func0(1)</expected-error>
         <source-location>false</source-location>
       </compilation-unit>
     </test-case>
@@ -12481,8 +12594,8 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="feeds">
-      <compilation-unit name="change-feed-with-filter-on-meta">
-        <output-dir compare="Text">change-feed-with-filter-on-meta</output-dir>
+      <compilation-unit name="change-feed-with-where-on-meta">
+        <output-dir compare="Text">change-feed-with-where-on-meta</output-dir>
       </compilation-unit>
     </test-case>
   </test-group>
@@ -13350,6 +13463,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="union">
+      <compilation-unit name="union_opt_1">
+        <output-dir compare="Text">union_opt_1</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="union">
       <compilation-unit name="union_orderby">
         <output-dir compare="Text">union_orderby</output-dir>
       </compilation-unit>
@@ -13791,7 +13909,7 @@
         <expected-warn>ASX1107: Unexpected hint: indexnl. "hash" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: hash. "indexnl", "skip-index", "hash-bcast" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: auto. "indexnl", "skip-index" expected at this location</expected-warn>
-        <expected-warn>ASX1107: Unexpected hint: hash. "indexnl", "skip-index" expected at this location</expected-warn>
+        <expected-warn>ASX1107: Unexpected hint: hash. "indexnl", "skip-index", "range" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: hash. None expected at this location</expected-warn>
       </compilation-unit>
     </test-case>
@@ -13814,7 +13932,7 @@
         <expected-warn>ASX1107: Unexpected hint: unknown_hint_groupby. "hash" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: unknown_hint_relexpr. "indexnl", "skip-index", "hash-bcast" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: unknown_hint_between. "indexnl", "skip-index" expected at this location</expected-warn>
-        <expected-warn>ASX1107: Unexpected hint: unknown_hint_funcall. "indexnl", "skip-index" expected at this location</expected-warn>
+        <expected-warn>ASX1107: Unexpected hint: unknown_hint_funcall. "indexnl", "skip-index", "range" expected at this location</expected-warn>
         <expected-warn>ASX1107: Unexpected hint: unknown_hint_elsewhere. None expected at this location</expected-warn>
       </compilation-unit>
     </test-case>
@@ -14277,7 +14395,7 @@
         <expected-error>ASX0002: Type mismatch</expected-error>
         <expected-error>ASX1104: Invalid modifier FROM FIRST/LAST for function</expected-error>
         <expected-error>ASX1037: Invalid query parameter compiler.windowmemory</expected-error>
-        <expected-error>ASX1102: Expected window or aggregate function, got: unknown_func</expected-error>
+        <expected-error>ASX1102: Expected window or aggregate function, got: lowercase</expected-error>
         <expected-error>ASX1079: Compilation error: count is a SQL-92 aggregate function</expected-error>
         <expected-error>ASX1104: Invalid modifier RESPECT/IGNORE NULLS for function</expected-error>
         <expected-error>ASX1104: Invalid modifier RESPECT/IGNORE NULLS for function</expected-error>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
index 9c4bb41..7177797 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
@@ -6732,4 +6732,11 @@
       </compilation-unit>
     </test-case>
   </test-group>
+  <test-group name="list">
+    <test-case FilePath="list">
+      <compilation-unit name="list-star_01">
+        <output-dir compare="AST">list-star_01</output-dir>
+      </compilation-unit>
+    </test-case>
+  </test-group>
 </test-suite>
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/enlist_data.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/enlist_data.aql
index 650bd33..9bf9403 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/enlist_data.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/enlist_data.aql
@@ -107,21 +107,21 @@
   asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 
 enlist dataset Customers;
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_adm.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_adm.aql
index 5318479..41161af 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_adm.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_adm.aql
@@ -107,21 +107,21 @@
   asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 
 load dataset LineItems 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_100x.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_100x.aql
index 83600b9..eec9c69 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_100x.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_100x.aql
@@ -107,21 +107,21 @@
   asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 
 load dataset Customers 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_1x.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_1x.aql
index bbd823f..55c8f03 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_1x.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/load_data_tbl_1x.aql
@@ -107,21 +107,21 @@
   asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 
 load dataset Customers 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/q03_shipping_priority.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/q03_shipping_priority.aql
index b85bef5..3e53ea6 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/q03_shipping_priority.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/asterix/q03_shipping_priority.aql
@@ -64,11 +64,11 @@
       asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix-001:"/home/onose/hyracks-asterix/results/q3_shipping_priority.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/inlined_q18_large_volume_customer.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/inlined_q18_large_volume_customer.aql
index 3986f00..7d391f5 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/inlined_q18_large_volume_customer.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/inlined_q18_large_volume_customer.aql
@@ -63,11 +63,11 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/inlined_q18_large_volume_customer.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_adm_data.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_adm_data.aql
index 28559cd..d2512a0 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_adm_data.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_adm_data.aql
@@ -106,21 +106,21 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 load dataset LineItems 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_0.001x_2nodes.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_0.001x_2nodes.aql
index 3f081f3..cab0315 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_0.001x_2nodes.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_0.001x_2nodes.aql
@@ -106,21 +106,21 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 load dataset LineItems 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_10x_1node.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_10x_1node.aql
index f4cbbb6..0c55e17 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_10x_1node.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_10x_1node.aql
@@ -106,21 +106,21 @@
 declare nodegroup group1 on asterix_nc1;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 load dataset LineItems 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_1x_1node.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_1x_1node.aql
index 5eb5d79..606f6b8 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_1x_1node.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_1x_1node.aql
@@ -106,21 +106,21 @@
 declare nodegroup group1 on asterix_nc1;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 load dataset LineItems 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_20x_2node.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_20x_2node.aql
index 5bad6f9..5bfa238 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_20x_2node.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/load_tbl_data_20x_2node.aql
@@ -106,21 +106,21 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
 
 load dataset LineItems 
 using localfs
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-create.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-create.aql
index 0938de7..bfec649 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-create.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-create.aql
@@ -35,6 +35,6 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 create index idx_Orders_Custkey on Orders(o_custkey);
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-search.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-search.aql
index 0a4c208..d473058 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-search.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/orders-index-search.aql
@@ -35,7 +35,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 
 declare index idx_Orders_Custkey on Orders(o_custkey);
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q01_pricing_summary_report.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q01_pricing_summary_report.aql
index a9248b4..e05c636 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q01_pricing_summary_report.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q01_pricing_summary_report.aql
@@ -40,7 +40,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 
 // for external datasets, use:
 //
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q03_shipping_priority.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q03_shipping_priority.aql
index 005b887..4f1199c 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q03_shipping_priority.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q03_shipping_priority.aql
@@ -63,11 +63,11 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 
 write output to asterix_nc1:"/tmp/q3_shipping_priority.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q05_local_supplier_volume.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q05_local_supplier_volume.aql
index 0a4d752..1832129 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q05_local_supplier_volume.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q05_local_supplier_volume.aql
@@ -86,17 +86,17 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Regions(RegionType)
-  primary key r_regionkey on group1;
+  primary key r_regionkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/tmp/q5_local_supplier_volume.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q09_product_type_profit.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q09_product_type_profit.aql
index b603363..6638e7a 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q09_product_type_profit.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/q09_product_type_profit.aql
@@ -90,17 +90,17 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Suppliers(SupplierType)
-  primary key s_suppkey on group1;
+  primary key s_suppkey with {"node-group":{"name":"group1"}};
 declare dataset Nations(NationType) 
-  primary key n_nationkey on group1;
+  primary key n_nationkey with {"node-group":{"name":"group1"}};
 declare dataset Parts(PartType)
-  primary key p_partkey on group1;
+  primary key p_partkey with {"node-group":{"name":"group1"}};
 declare dataset PartSupp(PartSuppType)
-  primary key ps_partkey, ps_suppkey on group1;  
+  primary key ps_partkey, ps_suppkey with {"node-group":{"name":"group1"}};
   
 write output to asterix_nc1:"/tmp/q9_product_type_profit.adm";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/scan_filter_lineitem.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/scan_filter_lineitem.aql
index e851841..25bb8d0 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/scan_filter_lineitem.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/scan_filter_lineitem.aql
@@ -40,7 +40,7 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 
 // load dataset LineItems from asterix_nc1:"/opt/tpch/tengigs/lineitem.tbl" delimited by "|";
 
diff --git a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/write-custorder.aql b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/write-custorder.aql
index a205199..6c67591 100644
--- a/asterixdb/asterix-app/src/test/resources/tpch/queries/local/write-custorder.aql
+++ b/asterixdb/asterix-app/src/test/resources/tpch/queries/local/write-custorder.aql
@@ -68,13 +68,13 @@
 declare nodegroup group1 on asterix_nc1, asterix_nc2;
 
 declare dataset LineItems(LineItemType)
-  primary key l_orderkey, l_linenumber on group1;
+  primary key l_orderkey, l_linenumber with {"node-group":{"name":"group1"}};
 declare dataset Orders(OrderType)
-  primary key o_orderkey on group1;
+  primary key o_orderkey with {"node-group":{"name":"group1"}};
 declare dataset Customers(CustomerType) 
-  primary key c_custkey on group1;
+  primary key c_custkey with {"node-group":{"name":"group1"}};
 declare dataset CustOrder(CustOrderType)
-  primary key co_custkey on group1;
+  primary key co_custkey with {"node-group":{"name":"group1"}};
 
 insert into dataset CustOrder 
 ( for $c in dataset('Customers')
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/RangeAnnotation.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/RangeAnnotation.java
new file mode 100644
index 0000000..4465167
--- /dev/null
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/RangeAnnotation.java
@@ -0,0 +1,45 @@
+/*
+ * 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.common.annotations;
+
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionAnnotation;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class RangeAnnotation implements IExpressionAnnotation {
+
+    private RangeMap map;
+
+    @Override
+    public Object getObject() {
+        return map;
+    }
+
+    @Override
+    public void setObject(Object side) {
+        this.map = (RangeMap) side;
+    }
+
+    @Override
+    public IExpressionAnnotation copy() {
+        RangeAnnotation rangAnn = new RangeAnnotation();
+        rangAnn.map = map;
+        return rangAnn;
+    }
+
+}
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IDatasetLifecycleManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IDatasetLifecycleManager.java
index 10eddb1..f7cbf18 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IDatasetLifecycleManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IDatasetLifecycleManager.java
@@ -25,6 +25,7 @@
 import org.apache.asterix.common.context.IndexInfo;
 import org.apache.asterix.common.context.PrimaryIndexOperationTracker;
 import org.apache.asterix.common.replication.IReplicationStrategy;
+import org.apache.asterix.common.storage.StorageIOStats;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentIdGenerator;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
@@ -143,4 +144,9 @@
      * @throws HyracksDataException
      */
     void waitForIO(IReplicationStrategy replicationStrategy) throws HyracksDataException;
+
+    /**
+     * @return the current datasets io stats
+     */
+    StorageIOStats getDatasetsIOStats();
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/CompilerProperties.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/CompilerProperties.java
index b0c6472..9ec6279 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/CompilerProperties.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/CompilerProperties.java
@@ -72,7 +72,11 @@
                 POSITIVE_INTEGER,
                 AlgebricksConfig.SORT_SAMPLES,
                 "The number of samples which parallel sorting should take from each partition"),
-        COMPILER_INDEXONLY(BOOLEAN, AlgebricksConfig.INDEX_ONLY_DEFAULT, "Enabling/disabling index-only plans");
+        COMPILER_INDEXONLY(BOOLEAN, AlgebricksConfig.INDEX_ONLY_DEFAULT, "Enabling/disabling index-only plans"),
+        COMPILER_INTERNAL_SANITYCHECK(
+                BOOLEAN,
+                AlgebricksConfig.SANITYCHECK_DEFAULT,
+                "Enable/disable compiler sanity check");
 
         private final IOptionType type;
         private final Object defaultValue;
@@ -123,6 +127,8 @@
 
     public static final String COMPILER_INDEXONLY_KEY = Option.COMPILER_INDEXONLY.ini();
 
+    public static final String COMPILER_INTERNAL_SANITYCHECK_KEY = Option.COMPILER_INTERNAL_SANITYCHECK.ini();
+
     public static final int COMPILER_PARALLELISM_AS_STORAGE = 0;
 
     public CompilerProperties(PropertiesAccessor accessor) {
@@ -168,4 +174,8 @@
     public boolean isIndexOnly() {
         return accessor.getBoolean(Option.COMPILER_INDEXONLY);
     }
+
+    public boolean isSanityCheck() {
+        return accessor.getBoolean(Option.COMPILER_INTERNAL_SANITYCHECK);
+    }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java
index 55f3f4f..4f2a124 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java
@@ -58,8 +58,12 @@
                 compilerProperties.getWindowMemorySize(), frameSize, MIN_FRAME_LIMIT_FOR_WINDOW, sourceLoc);
         int textSearchFrameLimit = getTextSearchNumFrames(compilerProperties, querySpecificConfig, sourceLoc);
         int sortNumSamples = getSortSamples(compilerProperties, querySpecificConfig, sourceLoc);
-        boolean fullParallelSort = getSortParallel(compilerProperties, querySpecificConfig);
-        boolean indexOnly = isIndexOnly(compilerProperties, querySpecificConfig);
+        boolean fullParallelSort = getBoolean(querySpecificConfig, CompilerProperties.COMPILER_SORT_PARALLEL_KEY,
+                compilerProperties.getSortParallel());
+        boolean indexOnly = getBoolean(querySpecificConfig, CompilerProperties.COMPILER_INDEXONLY_KEY,
+                compilerProperties.isIndexOnly());
+        boolean sanityCheck = getBoolean(querySpecificConfig, CompilerProperties.COMPILER_INTERNAL_SANITYCHECK_KEY,
+                compilerProperties.isSanityCheck());
 
         PhysicalOptimizationConfig physOptConf = new PhysicalOptimizationConfig();
         physOptConf.setFrameSize(frameSize);
@@ -71,6 +75,7 @@
         physOptConf.setSortParallel(fullParallelSort);
         physOptConf.setSortSamples(sortNumSamples);
         physOptConf.setIndexOnly(indexOnly);
+        physOptConf.setSanityCheckEnabled(sanityCheck);
         return physOptConf;
     }
 
@@ -109,15 +114,6 @@
         return Math.max(frameLimit, minFrameLimit);
     }
 
-    private static boolean getSortParallel(CompilerProperties compilerProperties,
-            Map<String, Object> querySpecificConfig) {
-        String valueInQuery = (String) querySpecificConfig.get(CompilerProperties.COMPILER_SORT_PARALLEL_KEY);
-        if (valueInQuery != null) {
-            return OptionTypes.BOOLEAN.parse(valueInQuery);
-        }
-        return compilerProperties.getSortParallel();
-    }
-
     @SuppressWarnings("squid:S1166") // Either log or rethrow this exception
     private static int getSortSamples(CompilerProperties compilerProperties, Map<String, Object> querySpecificConfig,
             SourceLocation sourceLoc) throws AsterixException {
@@ -131,11 +127,11 @@
         }
     }
 
-    private static boolean isIndexOnly(CompilerProperties compilerProperties, Map<String, Object> querySpecificConfig) {
-        String valueInQuery = (String) querySpecificConfig.get(CompilerProperties.COMPILER_INDEXONLY_KEY);
+    private static boolean getBoolean(Map<String, Object> queryConfig, String queryConfigKey, boolean defaultValue) {
+        String valueInQuery = (String) queryConfig.get(queryConfigKey);
         if (valueInQuery != null) {
             return OptionTypes.BOOLEAN.parse(valueInQuery);
         }
-        return compilerProperties.isIndexOnly();
+        return defaultValue;
     }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
index ed0bf9a..adf57fd 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
@@ -66,7 +66,13 @@
 
         @Override
         public Section section() {
-            return Section.NC;
+            switch (this) {
+                case STORAGE_COMPRESSION_BLOCK:
+                case STORAGE_LSM_BLOOMFILTER_FALSEPOSITIVERATE:
+                    return Section.COMMON;
+                default:
+                    return Section.NC;
+            }
         }
 
         @Override
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/BaseOperationTracker.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/BaseOperationTracker.java
index 3ff13cb..f8a81e4 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/BaseOperationTracker.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/BaseOperationTracker.java
@@ -18,6 +18,8 @@
  */
 package org.apache.asterix.common.context;
 
+import static org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation.LSMIOOperationType.REPLICATE;
+
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
 import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
@@ -38,7 +40,7 @@
     public void beforeOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback,
             IModificationOperationCallback modificationCallback) throws HyracksDataException {
         if (opType == LSMOperationType.REPLICATE) {
-            dsInfo.declareActiveIOOperation();
+            dsInfo.declareActiveIOOperation(REPLICATE);
         }
     }
 
@@ -54,7 +56,7 @@
     public void completeOperation(ILSMIndex index, LSMOperationType opType, ISearchOperationCallback searchCallback,
             IModificationOperationCallback modificationCallback) throws HyracksDataException {
         if (opType == LSMOperationType.REPLICATE) {
-            dsInfo.undeclareActiveIOOperation();
+            dsInfo.undeclareActiveIOOperation(REPLICATE);
         }
     }
 
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
index 3fcc528..72dacc4 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
@@ -28,6 +28,7 @@
 import org.apache.asterix.common.transactions.LogRecord;
 import org.apache.asterix.common.transactions.LogType;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -42,6 +43,8 @@
     private final ILogManager logManager;
     private final LogRecord waitLog = new LogRecord();
     private int numActiveIOOps;
+    private int pendingFlushes;
+    private int pendingMerges;
     private long lastAccess;
     private boolean isExternal;
     private boolean isRegistered;
@@ -70,12 +73,32 @@
         setLastAccess(System.currentTimeMillis());
     }
 
-    public synchronized void declareActiveIOOperation() {
+    public synchronized void declareActiveIOOperation(ILSMIOOperation.LSMIOOperationType opType) {
         numActiveIOOps++;
+        switch (opType) {
+            case FLUSH:
+                pendingFlushes++;
+                break;
+            case MERGE:
+                pendingMerges++;
+                break;
+            default:
+                break;
+        }
     }
 
-    public synchronized void undeclareActiveIOOperation() {
+    public synchronized void undeclareActiveIOOperation(ILSMIOOperation.LSMIOOperationType opType) {
         numActiveIOOps--;
+        switch (opType) {
+            case FLUSH:
+                pendingFlushes--;
+                break;
+            case MERGE:
+                pendingMerges--;
+                break;
+            default:
+                break;
+        }
         //notify threads waiting on this dataset info
         notifyAll();
     }
@@ -204,7 +227,7 @@
             while (numActiveIOOps > 0) {
                 try {
                     /**
-                     * Will be Notified by {@link DatasetInfo#undeclareActiveIOOperation()}
+                     * Will be Notified by {@link DatasetInfo#undeclareActiveIOOperation(ILSMIOOperation.LSMIOOperationType)}
                      */
                     wait();
                 } catch (InterruptedException e) {
@@ -220,4 +243,12 @@
             }
         }
     }
+
+    public synchronized int getPendingFlushes() {
+        return pendingFlushes;
+    }
+
+    public synchronized int getPendingMerges() {
+        return pendingMerges;
+    }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
index 0750749..5ea79b3 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
@@ -38,6 +38,7 @@
 import org.apache.asterix.common.storage.IIndexCheckpointManager;
 import org.apache.asterix.common.storage.IIndexCheckpointManagerProvider;
 import org.apache.asterix.common.storage.ResourceReference;
+import org.apache.asterix.common.storage.StorageIOStats;
 import org.apache.asterix.common.transactions.ILogManager;
 import org.apache.asterix.common.transactions.LogRecord;
 import org.apache.asterix.common.transactions.LogType;
@@ -519,6 +520,16 @@
         }
     }
 
+    @Override
+    public StorageIOStats getDatasetsIOStats() {
+        StorageIOStats stats = new StorageIOStats();
+        for (DatasetResource dsr : datasets.values()) {
+            stats.addPendingFlushes(dsr.getDatasetInfo().getPendingFlushes());
+            stats.addPendingMerges(dsr.getDatasetInfo().getPendingMerges());
+        }
+        return stats;
+    }
+
     private void closeIndex(IndexInfo indexInfo) throws HyracksDataException {
         if (indexInfo.isOpen()) {
             ILSMOperationTracker opTracker = indexInfo.getIndex().getOperationTracker();
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
index 5e4b5a1..2ad2f7a 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
@@ -48,11 +48,11 @@
 public class LSMInsertDeleteOperatorNodePushable extends LSMIndexInsertUpdateDeleteOperatorNodePushable {
 
     public static final String KEY_INDEX = "Index";
-    private final boolean isPrimary;
-    private final SourceLocation sourceLoc;
+    protected final boolean isPrimary;
+    protected final SourceLocation sourceLoc;
     // This class has both lsmIndex and index (in super class) pointing to the same object
     private AbstractLSMIndex lsmIndex;
-    private int i = 0;
+    protected int i = 0;
 
     /**
      * The following three variables are used to keep track of the information regarding flushing partial frame such as
@@ -64,9 +64,9 @@
      * ==> captured in currentTupleIdx variable
      * These variables are reset for each frame, i.e., whenever nextFrame() is called, these variables are reset.
      */
-    private boolean flushedPartialTuples;
-    private int currentTupleIdx;
-    private int lastFlushedTupleIdx;
+    protected boolean flushedPartialTuples;
+    protected int currentTupleIdx;
+    protected int lastFlushedTupleIdx;
 
     public LSMInsertDeleteOperatorNodePushable(IHyracksTaskContext ctx, int partition, int[] fieldPermutation,
             RecordDescriptor inputRecDesc, IndexOperation op, boolean isPrimary,
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMTreeInsertDeleteOperatorDescriptor.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMTreeInsertDeleteOperatorDescriptor.java
index 45661e4..2226ca0 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMTreeInsertDeleteOperatorDescriptor.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMTreeInsertDeleteOperatorDescriptor.java
@@ -33,7 +33,7 @@
 public class LSMTreeInsertDeleteOperatorDescriptor extends LSMTreeIndexInsertUpdateDeleteOperatorDescriptor {
 
     private static final long serialVersionUID = 1L;
-    private final boolean isPrimary;
+    protected final boolean isPrimary;
 
     public LSMTreeInsertDeleteOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor outRecDesc,
             int[] fieldPermutation, IndexOperation op, IIndexDataflowHelperFactory indexHelperFactory,
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
index b277d8f..df28148 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
@@ -88,6 +88,7 @@
     public static final int UNSUPPORTED_JRE = 100;
 
     public static final int EXTERNAL_UDF_RESULT_TYPE_ERROR = 200;
+    public static final int EXTERNAL_UDF_EXCEPTION = 201;
 
     // Compilation errors
     public static final int PARSE_ERROR = 1001;
@@ -113,8 +114,6 @@
     public static final int COMPILATION_PRIMARY_KEY_CANNOT_BE_NULLABLE = 1021;
     public static final int COMPILATION_ILLEGAL_PRIMARY_KEY_TYPE = 1022;
     public static final int COMPILATION_CANT_DROP_ACTIVE_DATASET = 1023;
-    public static final int COMPILATION_AQLPLUS_IDENTIFIER_NOT_FOUND = 1024;
-    public static final int COMPILATION_AQLPLUS_NO_SUCH_JOIN_TYPE = 1025;
     public static final int COMPILATION_FUNC_EXPRESSION_CANNOT_UTILIZE_INDEX = 1026;
     public static final int COMPILATION_DATASET_TYPE_DOES_NOT_HAVE_PRIMARY_INDEX = 1027;
     public static final int COMPILATION_UNSUPPORTED_QUERY_PARAMETER = 1028;
@@ -211,6 +210,14 @@
     public static final int COMPILATION_GROUPING_OPERATION_INVALID_ARG = 1119;
     public static final int COMPILATION_UNEXPECTED_ALIAS = 1120;
     public static final int COMPILATION_ILLEGAL_USE_OF_FILTER_CLAUSE = 1121;
+    public static final int COMPILATION_BAD_FUNCTION_DEFINITION = 1122;
+    public static final int FUNCTION_EXISTS = 1123;
+    public static final int ADAPTER_EXISTS = 1124;
+    public static final int UNKNOWN_ADAPTER = 1125;
+    public static final int INVALID_EXTERNAL_IDENTIFIER_SIZE = 1126;
+    public static final int UNSUPPORTED_ADAPTER_LANGUAGE = 1127;
+    public static final int INCONSISTENT_FILTER_INDICATOR = 1128;
+    public static final int UNSUPPORTED_GBY_OBY_SELECT_COMBO = 1129;
 
     // Feed errors
     public static final int DATAFLOW_ILLEGAL_STATE = 3001;
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionSignature.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionSignature.java
index 9bbf2e7..1efdd42 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionSignature.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionSignature.java
@@ -51,8 +51,12 @@
             return false;
         }
         FunctionSignature f = ((FunctionSignature) o);
-        return Objects.equals(dataverseName, f.dataverseName) && name.equals(f.name)
-                && (arity == f.arity || arity == FunctionIdentifier.VARARGS || f.arity == FunctionIdentifier.VARARGS);
+        return Objects.equals(dataverseName, f.dataverseName) && name.equals(f.name) && arity == f.arity;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(dataverseName, name, arity);
     }
 
     @Override
@@ -61,22 +65,32 @@
     }
 
     public String toString(boolean includeArity) {
-        String namespaceCanonicalForm = dataverseName != null ? dataverseName.getCanonicalForm() : null;
-        int len = (namespaceCanonicalForm != null ? namespaceCanonicalForm.length() : 4) + 1 + name.length()
-                + (includeArity ? 3 : 0);
+        boolean dataverseNameExists = dataverseName != null;
+        String dataverseCanonicalName = dataverseNameExists ? dataverseName.getCanonicalForm() : null;
+        int len = (dataverseNameExists ? dataverseCanonicalName.length() + 1 : 0) + name.length()
+                + (includeArity ? 5 : 0);
         StringBuilder sb = new StringBuilder(len);
-        sb.append(namespaceCanonicalForm).append('.').append(name);
+        if (dataverseNameExists) {
+            sb.append(dataverseCanonicalName).append('.');
+        }
+        sb.append(name);
         if (includeArity) {
-            sb.append('@').append(arity);
+            sb.append('(');
+            switch (arity) {
+                case FunctionIdentifier.VARARGS:
+                    sb.append("...");
+                    break;
+                case 0:
+                    break;
+                default:
+                    sb.append(arity);
+                    break;
+            }
+            sb.append(')');
         }
         return sb.toString();
     }
 
-    @Override
-    public int hashCode() {
-        return Objects.hash(dataverseName, name);
-    }
-
     public DataverseName getDataverseName() {
         return dataverseName;
     }
@@ -105,15 +119,11 @@
         return createFunctionIdentifier(dataverseName, name, arity);
     }
 
-    public static FunctionIdentifier createFunctionIdentifier(DataverseName dataverseName, String functionName,
+    private static FunctionIdentifier createFunctionIdentifier(DataverseName dataverseName, String functionName,
             int arity) {
         return new FunctionIdentifier(dataverseName.getCanonicalForm(), functionName, arity);
     }
 
-    public static FunctionIdentifier createFunctionIdentifier(DataverseName dataverseName, String functionName) {
-        return new FunctionIdentifier(dataverseName.getCanonicalForm(), functionName);
-    }
-
     public static DataverseName getDataverseName(FunctionIdentifier fi) {
         String dataverseCanonicalName = fi.getNamespace();
         switch (dataverseCanonicalName) {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/ioopcallbacks/LSMIOOperationCallback.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/ioopcallbacks/LSMIOOperationCallback.java
index c3737da..ce6d253 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/ioopcallbacks/LSMIOOperationCallback.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/ioopcallbacks/LSMIOOperationCallback.java
@@ -259,7 +259,7 @@
 
     @Override
     public synchronized void scheduled(ILSMIOOperation operation) throws HyracksDataException {
-        dsInfo.declareActiveIOOperation();
+        dsInfo.declareActiveIOOperation(operation.getIOOpertionType());
         if (operation.getIOOpertionType() == LSMIOOperationType.FLUSH) {
             pendingFlushes++;
             FlushOperation flush = (FlushOperation) operation;
@@ -282,7 +282,7 @@
                         pendingFlushes == 0 ? firstLsnForCurrentMemoryComponent : (Long) map.get(KEY_FLUSH_LOG_LSN);
             }
         }
-        dsInfo.undeclareActiveIOOperation();
+        dsInfo.undeclareActiveIOOperation(operation.getIOOpertionType());
     }
 
     public synchronized boolean hasPendingFlush() {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/library/ILibraryManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/library/ILibraryManager.java
index 83f1d71..047018b 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/library/ILibraryManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/library/ILibraryManager.java
@@ -20,8 +20,10 @@
 package org.apache.asterix.common.library;
 
 import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.external.ipc.ExternalFunctionResultRouter;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.io.FileReference;
+import org.apache.hyracks.ipc.impl.IPCSystem;
 
 public interface ILibraryManager {
 
@@ -36,4 +38,8 @@
     void dropLibraryPath(FileReference fileRef) throws HyracksDataException;
 
     byte[] serializeLibraryDescriptor(LibraryDescriptor libraryDescriptor) throws HyracksDataException;
+
+    ExternalFunctionResultRouter getRouter();
+
+    IPCSystem getIPCI();
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DataverseName.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DataverseName.java
index 5ec3f1a..83bf94c 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DataverseName.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/DataverseName.java
@@ -36,14 +36,15 @@
  * <p>
  * Each dataverse name can be encoded into a single string (called a canonical form) by
  * {@link #getCanonicalForm()} and decoded back from it with {@link #createFromCanonicalForm(String)}.
- * The canonical form encoding concatenates name parts together with {@link #SEPARATOR_CHAR '.'} character.
- * The {@link #ESCAPE_CHAR '@'} character is used to escape {@link #SEPARATOR_CHAR '.'} and itself in each name part
- * prior to concatenation.
+ * The canonical form encoding concatenates name parts together with {@link #CANONICAL_FORM_SEPARATOR_CHAR '.'}
+ * character. The {@link #CANONICAL_FORM_ESCAPE_CHAR '@'} character is used to escape
+ * {@link #CANONICAL_FORM_SEPARATOR_CHAR '.'} and itself in each name part prior to concatenation.
  * <p>
  * E.g. the canonical form for a dataverse name {@code ["a", "b", "c"]} is {@code "a.b.c"}
  * <p>
- * {@link #toString()} returns a display form which is a {@link #SEPARATOR_CHAR '.'} separated concatenation
- * of name parts without escaping. In general it's impossible to reconstruct a dataverse name from its display form.
+ * {@link #toString()} returns a display form which is a {@link #CANONICAL_FORM_SEPARATOR_CHAR '.'} separated
+ * concatenation of name parts without escaping. In general it's impossible to reconstruct a dataverse name from
+ * its display form.
  * <p>
  * Notes:
  * <li>
@@ -61,11 +62,18 @@
 
     private static final long serialVersionUID = 1L;
 
-    public static final char SEPARATOR_CHAR = '.';
+    public static final char CANONICAL_FORM_SEPARATOR_CHAR = '.';
 
-    private static final char ESCAPE_CHAR = '@';
+    private static final char CANONICAL_FORM_ESCAPE_CHAR = '@';
 
-    private static final char[] SEPARATOR_AND_ESCAPE_CHARS = new char[] { SEPARATOR_CHAR, ESCAPE_CHAR };
+    public static final char DISPLAY_FORM_SEPARATOR_CHAR = '.';
+
+    private static final char DISPLAY_FORM_QUOTE_CHAR = '`';
+
+    private static final char DISPLAY_FORM_ESCAPE_CHAR = '\\';
+
+    private static final char[] CANONICAL_FORM_SEPARATOR_AND_ESCAPE_CHARS =
+            new char[] { CANONICAL_FORM_SEPARATOR_CHAR, CANONICAL_FORM_ESCAPE_CHAR };
 
     private final boolean isMultiPart;
 
@@ -106,9 +114,24 @@
     }
 
     /**
-     * Appends dataverse name parts into a given list
+     * Appends dataverse name parts into a given output collection
      */
     public void getParts(Collection<? super String> outParts) {
+        getPartsFromCanonicalForm(canonicalForm, isMultiPart, outParts);
+    }
+
+    /**
+     * Appends dataverse name parts into a given output collection
+     */
+    public static void getPartsFromCanonicalForm(String canonicalForm, Collection<? super String> outParts) {
+        getPartsFromCanonicalForm(canonicalForm, isMultiPartCanonicalForm(canonicalForm), outParts);
+    }
+
+    /**
+     * Appends dataverse name parts into a given output collection
+     */
+    private static void getPartsFromCanonicalForm(String canonicalForm, boolean isMultiPart,
+            Collection<? super String> outParts) {
         if (isMultiPart) {
             decodeCanonicalForm(canonicalForm, DataverseName::addPartToCollection, outParts);
         } else {
@@ -117,9 +140,7 @@
     }
 
     /**
-     * Returns a display form which is a {@link #SEPARATOR_CHAR '.'} separated concatenation of name parts without
-     * escaping. In general it's impossible to reconstruct a dataverse name from its display form, so this method
-     * should not be used when roundtripability is required.
+     * Returns a display form which suitable for error messages, and is a valid SQL++ multi-part identifier.
      */
     @Override
     public String toString() {
@@ -129,19 +150,29 @@
     private String getDisplayForm() {
         String result = displayForm;
         if (result == null) {
-            displayForm = result = createDisplayForm();
+            StringBuilder sb = new StringBuilder(canonicalForm.length() + 1);
+            getDisplayForm(sb);
+            displayForm = result = sb.toString();
         }
         return result;
     }
 
-    private String createDisplayForm() {
+    public void getDisplayForm(StringBuilder out) {
+        getDisplayFormFromCanonicalForm(canonicalForm, isMultiPart, out);
+    }
+
+    public static void getDisplayFormFromCanonicalForm(String canonicalForm, StringBuilder out) {
+        getDisplayFormFromCanonicalForm(canonicalForm, isMultiPartCanonicalForm(canonicalForm), out);
+    }
+
+    private static void getDisplayFormFromCanonicalForm(String canonicalForm, boolean isMultiPart, StringBuilder out) {
         if (isMultiPart) {
-            StringBuilder displayForm = new StringBuilder(canonicalForm.length() + 1);
-            decodeCanonicalForm(canonicalForm, DataverseName::addPartToDisplayForm, displayForm);
-            return displayForm.substring(0, displayForm.length() - 1); // remove last separator char
+            decodeCanonicalForm(canonicalForm, DataverseName::addPartToDisplayForm, out);
         } else {
-            return decodeSinglePartNameFromCanonicalForm(canonicalForm);
+            String singlePart = decodeSinglePartNameFromCanonicalForm(canonicalForm);
+            addPartToDisplayForm(singlePart, out);
         }
+        out.setLength(out.length() - 1); // remove last separator char
     }
 
     @Override
@@ -209,7 +240,7 @@
      * Validates that the canonical form of the created dataverse name is the same as its given single name part.
      */
     public static DataverseName createBuiltinDataverseName(String singlePart) {
-        if (StringUtils.containsAny(singlePart, SEPARATOR_AND_ESCAPE_CHARS)) {
+        if (StringUtils.containsAny(singlePart, CANONICAL_FORM_SEPARATOR_AND_ESCAPE_CHARS)) {
             throw new IllegalArgumentException(singlePart);
         }
         DataverseName dataverseName = createSinglePartName(singlePart); // 1-part name
@@ -234,7 +265,7 @@
         StringBuilder sb = new StringBuilder(32);
         for (int i = 0; i < partCount; i++) {
             if (i > 0) {
-                sb.append(SEPARATOR_CHAR);
+                sb.append(CANONICAL_FORM_SEPARATOR_CHAR);
             }
             encodePartIntoCanonicalForm(parts.get(fromIndex + i), sb);
         }
@@ -242,7 +273,7 @@
     }
 
     private static String encodeSinglePartNamePartIntoCanonicalForm(String singlePart) {
-        if (StringUtils.indexOfAny(singlePart, SEPARATOR_AND_ESCAPE_CHARS) < 0) {
+        if (StringUtils.indexOfAny(singlePart, CANONICAL_FORM_SEPARATOR_AND_ESCAPE_CHARS) < 0) {
             // no escaping needed
             return singlePart;
         }
@@ -254,8 +285,8 @@
     private static void encodePartIntoCanonicalForm(String part, StringBuilder out) {
         for (int i = 0, ln = part.length(); i < ln; i++) {
             char c = part.charAt(i);
-            if (c == SEPARATOR_CHAR || c == ESCAPE_CHAR) {
-                out.append(ESCAPE_CHAR);
+            if (c == CANONICAL_FORM_SEPARATOR_CHAR || c == CANONICAL_FORM_ESCAPE_CHAR) {
+                out.append(CANONICAL_FORM_ESCAPE_CHAR);
             }
             out.append(c);
         }
@@ -268,11 +299,11 @@
         for (int i = 0; i < ln; i++) {
             char c = canonicalForm.charAt(i);
             switch (c) {
-                case SEPARATOR_CHAR:
+                case CANONICAL_FORM_SEPARATOR_CHAR:
                     partConsumer.accept(sb, partConsumerArg);
                     sb.setLength(0);
                     break;
-                case ESCAPE_CHAR:
+                case CANONICAL_FORM_ESCAPE_CHAR:
                     i++;
                     c = canonicalForm.charAt(i);
                     // fall through to 'default'
@@ -287,8 +318,8 @@
     }
 
     // optimization for a single part name
-    private String decodeSinglePartNameFromCanonicalForm(String canonicalForm) {
-        if (canonicalForm.indexOf(ESCAPE_CHAR) < 0) {
+    private static String decodeSinglePartNameFromCanonicalForm(String canonicalForm) {
+        if (canonicalForm.indexOf(CANONICAL_FORM_ESCAPE_CHAR) < 0) {
             // no escaping was done
             return canonicalForm;
         }
@@ -297,9 +328,9 @@
         for (int i = 0, ln = canonicalForm.length(); i < ln; i++) {
             char c = canonicalForm.charAt(i);
             switch (c) {
-                case SEPARATOR_CHAR:
+                case CANONICAL_FORM_SEPARATOR_CHAR:
                     throw new IllegalStateException(canonicalForm); // should never happen
-                case ESCAPE_CHAR:
+                case CANONICAL_FORM_ESCAPE_CHAR:
                     i++;
                     c = canonicalForm.charAt(i);
                     // fall through to 'default'
@@ -315,9 +346,9 @@
         for (int i = 0, ln = canonicalForm.length(); i < ln; i++) {
             char c = canonicalForm.charAt(i);
             switch (c) {
-                case SEPARATOR_CHAR:
+                case CANONICAL_FORM_SEPARATOR_CHAR:
                     return true;
-                case ESCAPE_CHAR:
+                case CANONICAL_FORM_ESCAPE_CHAR:
                     i++;
                     break;
             }
@@ -330,6 +361,36 @@
     }
 
     private static void addPartToDisplayForm(CharSequence part, StringBuilder out) {
-        out.append(part).append(SEPARATOR_CHAR);
+        boolean needQuote = false;
+        for (int i = 0, ln = part.length(); i < ln; i++) {
+            char c = part.charAt(i);
+            boolean noQuote = isLetter(c) || c == '_' || (i > 0 && (isDigit(c) || c == '$'));
+            if (!noQuote) {
+                needQuote = true;
+                break;
+            }
+        }
+        if (needQuote) {
+            out.append(DISPLAY_FORM_QUOTE_CHAR);
+        }
+        for (int i = 0, ln = part.length(); i < ln; i++) {
+            char c = part.charAt(i);
+            if (c == DISPLAY_FORM_ESCAPE_CHAR || c == DISPLAY_FORM_QUOTE_CHAR) {
+                out.append(DISPLAY_FORM_ESCAPE_CHAR);
+            }
+            out.append(c);
+        }
+        if (needQuote) {
+            out.append(DISPLAY_FORM_QUOTE_CHAR);
+        }
+        out.append(DISPLAY_FORM_SEPARATOR_CHAR);
+    }
+
+    private static boolean isLetter(char c) {
+        return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
+    }
+
+    private static boolean isDigit(char c) {
+        return '0' <= c && c <= '9';
     }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
index b788c1a..b3a7f54 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
@@ -83,7 +83,7 @@
     // Function helpers
 
     void createFunctionBegin(IMetadataLockManager lockManager, LockList locks, DataverseName dataverseName,
-            String functionName, String libraryName) throws AlgebricksException;
+            String functionName, DataverseName libraryDataverseName, String libraryName) throws AlgebricksException;
 
     void dropFunctionBegin(IMetadataLockManager lockManager, LockList locks, DataverseName dataverseName,
             String functionName) throws AlgebricksException;
@@ -91,7 +91,7 @@
     // Adapter helpers
 
     void createAdapterBegin(IMetadataLockManager lockManager, LockList locks, DataverseName dataverseName,
-            String adapterName, String libraryName) throws AlgebricksException;
+            String adapterName, DataverseName libraryDataverseName, String libraryName) throws AlgebricksException;
 
     void dropAdapterBegin(IMetadataLockManager lockManager, LockList locks, DataverseName dataverseName,
             String adapterName) throws AlgebricksException;
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/DatasetResourceReference.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/DatasetResourceReference.java
index dc37fc2..6fd1c6a 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/DatasetResourceReference.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/DatasetResourceReference.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.common.storage;
 
 import java.nio.file.Paths;
+import java.util.Objects;
 
 import org.apache.asterix.common.dataflow.DatasetLocalResource;
 import org.apache.asterix.common.utils.StorageConstants;
@@ -35,6 +36,7 @@
     }
 
     public static DatasetResourceReference of(LocalResource localResource) {
+        Objects.requireNonNull(localResource);
         return parse(localResource);
     }
 
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IndexCheckpoint.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IndexCheckpoint.java
index 3d0b9cb..878c94e 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IndexCheckpoint.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IndexCheckpoint.java
@@ -38,7 +38,7 @@
     private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
     private static final long INITIAL_CHECKPOINT_ID = 0;
     // TODO(mblow): remove this marker & related logic once we no longer are able to read indexes prior to the fix
-    private static final long HAS_NULL_MISSING_VALUES_FIX = -1;
+    private static final long HAS_NULL_MISSING_VALUES_FIX = -2;
     private long id;
     private long validComponentSequence;
     private long lowWatermark;
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java
new file mode 100644
index 0000000..0b44f76
--- /dev/null
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java
@@ -0,0 +1,41 @@
+/*
+ * 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.common.storage;
+
+public class StorageIOStats {
+
+    private int pendingFlushes;
+    private int pendingMerges;
+
+    public void addPendingFlushes(int pending) {
+        pendingFlushes += pending;
+    }
+
+    public void addPendingMerges(int pending) {
+        pendingMerges += pending;
+    }
+
+    public int getPendingFlushes() {
+        return pendingFlushes;
+    }
+
+    public int getPendingMerges() {
+        return pendingMerges;
+    }
+}
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/external/ipc/ExternalFunctionResultRouter.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/external/ipc/ExternalFunctionResultRouter.java
new file mode 100644
index 0000000..8d56eb7
--- /dev/null
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/external/ipc/ExternalFunctionResultRouter.java
@@ -0,0 +1,127 @@
+/*
+ * 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.external.ipc;
+
+import java.nio.ByteBuffer;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.api.exceptions.ErrorCode;
+import org.apache.hyracks.api.exceptions.HyracksException;
+import org.apache.hyracks.ipc.api.IIPCHandle;
+import org.apache.hyracks.ipc.api.IIPCI;
+import org.apache.hyracks.ipc.api.IPayloadSerializerDeserializer;
+import org.apache.hyracks.ipc.impl.JavaSerializationBasedPayloadSerializerDeserializer;
+import org.apache.hyracks.ipc.impl.Message;
+
+public class ExternalFunctionResultRouter implements IIPCI {
+
+    AtomicLong maxId = new AtomicLong(0);
+    ConcurrentHashMap<Long, MutableObject<ByteBuffer>> activeClients = new ConcurrentHashMap<>();
+    ConcurrentHashMap<Long, Exception> exceptionInbox = new ConcurrentHashMap<>();
+    private static int MAX_BUF_SIZE = 32 * 1024 * 1024; //32MB
+
+    @Override
+    public void deliverIncomingMessage(IIPCHandle handle, long mid, long rmid, Object payload) {
+        int rewind = handle.getAttachmentLen();
+        ByteBuffer buf = (ByteBuffer) payload;
+        int end = buf.position();
+        buf.position(end - rewind);
+        ByteBuffer copyTo = activeClients.get(rmid).getValue();
+        if (copyTo.capacity() < handle.getAttachmentLen()) {
+            int nextSize = closestPow2(handle.getAttachmentLen());
+            if (nextSize > MAX_BUF_SIZE) {
+                onError(handle, mid, rmid, HyracksException.create(ErrorCode.RECORD_IS_TOO_LARGE));
+                return;
+            }
+            copyTo = ByteBuffer.allocate(nextSize);
+            activeClients.get(rmid).setValue(copyTo);
+        }
+        copyTo.position(0);
+        System.arraycopy(buf.array(), buf.position() + buf.arrayOffset(), copyTo.array(), copyTo.arrayOffset(),
+                handle.getAttachmentLen());
+        synchronized (copyTo) {
+            copyTo.limit(handle.getAttachmentLen() + 1);
+            copyTo.notify();
+        }
+        buf.position(end);
+    }
+
+    @Override
+    public void onError(IIPCHandle handle, long mid, long rmid, Exception exception) {
+        exceptionInbox.put(rmid, exception);
+        ByteBuffer route = activeClients.get(rmid).getValue();
+        synchronized (route) {
+            route.notify();
+        }
+    }
+
+    public Long insertRoute(ByteBuffer buf) {
+        Long id = maxId.incrementAndGet();
+        activeClients.put(id, new MutableObject<>(buf));
+        return id;
+    }
+
+    public Exception getException(Long id) {
+        return exceptionInbox.remove(id);
+    }
+
+    public boolean hasException(long id) {
+        return exceptionInbox.get(id) == null;
+    }
+
+    public void removeRoute(Long id) {
+        activeClients.remove(id);
+        exceptionInbox.remove(id);
+    }
+
+    public static int closestPow2(int n) {
+        return (int) Math.pow(2, Math.ceil(Math.log(n) / Math.log(2)));
+    }
+
+    public static class NoOpNoSerJustDe implements IPayloadSerializerDeserializer {
+
+        private static byte[] noop = new byte[] { (byte) 0 };
+
+        @Override
+        public Object deserializeObject(ByteBuffer buffer, int length, byte flag) throws Exception {
+            if (flag == Message.INITIAL_REQ) {
+                return new JavaSerializationBasedPayloadSerializerDeserializer().deserializeObject(buffer, length,
+                        flag);
+            }
+            return buffer;
+        }
+
+        @Override
+        public Exception deserializeException(ByteBuffer buffer, int length) throws Exception {
+            return null;
+        }
+
+        @Override
+        public byte[] serializeObject(Object object) throws Exception {
+            return noop;
+        }
+
+        @Override
+        public byte[] serializeException(Exception object) throws Exception {
+            return noop;
+        }
+    }
+}
diff --git a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
index 426c592..e48a0d7 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -90,6 +90,7 @@
 100 = Unsupported JRE: %1$s
 
 200 = External UDF cannot produce expected result. Please check the UDF configuration
+201 = External UDF returned exception. Returned exception was: %1$s
 
 # Compile-time check errors
 1001 = Syntax error: %1$s
@@ -109,8 +110,8 @@
 1021 = The primary key field \"%1$s\" cannot be nullable
 1022 = Field of type %1$s cannot be used as a primary key field
 1023 = Cannot drop dataset %1$s since it is connected to active entity: %2$s
-1024 = Identifier %1$s is not found in AQL+ meta-scope
-1025 = There is no such join type in AQL+
+#1024 is no longer used
+#1025 is no longer used
 1026 = The given function expression %1$s cannot utilize index
 1027 = Dataset of type %1$s does not have a primary index
 1028 = Query parameter %1$s is not supported
@@ -206,6 +207,14 @@
 1119 = Invalid argument to grouping() function
 1120 = Unexpected alias: %1$s
 1121 = Illegal use of aggregate FILTER clause
+1122 = Error compiling function %1$s. %2$s
+1123 = A function with this name %1$s already exists
+1124 = An adapter with this name %1$s already exists
+1125 = Cannot find adapter with name %1$s
+1126 = Invalid number of elements in external identifier. Expected %1$s elements for %2$s language
+1127 = Unsupported adapter language: %1$s
+1128 = Filter field is not defined properly
+1129 = Cannot compile SELECT variable.* with GROUP BY GROUPING SETS/ROLLUP/CUBE followed by ORDER BY/LIMIT
 
 # Feed Errors
 3001 = Illegal state.
diff --git a/asterixdb/asterix-common/src/test/java/org/apache/asterix/common/metadata/DataverseNameTest.java b/asterixdb/asterix-common/src/test/java/org/apache/asterix/common/metadata/DataverseNameTest.java
index 1a47a3f..2f0dff5 100644
--- a/asterixdb/asterix-common/src/test/java/org/apache/asterix/common/metadata/DataverseNameTest.java
+++ b/asterixdb/asterix-common/src/test/java/org/apache/asterix/common/metadata/DataverseNameTest.java
@@ -28,7 +28,7 @@
 import java.util.function.Supplier;
 
 import org.apache.commons.collections4.ListUtils;
-import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.common.utils.Triple;
 import org.apache.hyracks.algebricks.core.algebra.functions.AlgebricksBuiltinFunctions;
 import org.junit.Assert;
 import org.junit.Test;
@@ -55,97 +55,114 @@
             // escape character is not allowed
             "c@d");
 
-    private static final List<Pair<String, String>> TEST_SINGLE_PART_NAME_PARAMS = Arrays.asList(
-            // <1-part-name, canonical-form>
-            new Pair<>("abc", "abc"),
-            // with escape character
-            new Pair<>("a@b", "a@@b"),
-            // with separator character
-            new Pair<>("a.b", "a@.b"),
-            // with both escape and separator characters
-            new Pair<>("a@.b", "a@@@.b"));
+    private static final List<Triple<String, String, String>> TEST_SINGLE_PART_NAME_PARAMS = Arrays.asList(
+            // <1-part-name, canonical-form, display-form>
+            new Triple<>("abz", "abz", "abz"),
+            // upper-case letters
+            new Triple<>("ABZ", "ABZ", "ABZ"),
+            // letters and digits
+            new Triple<>("aA09", "aA09", "aA09"),
+            // with canonical form escape character
+            new Triple<>("a@b", "a@@b", "`a@b`"),
+            // with canonical form separator character
+            new Triple<>("a.b", "a@.b", "`a.b`"),
+            // with canonical form escape and separator characters
+            new Triple<>("a@.b", "a@@@.b", "`a@.b`"),
+            // with display form escape character
+            new Triple<>("a\\b", "a\\b", "`a\\\\b`"));
 
-    private static final List<Pair<List<String>, String>> TEST_MULTI_PART_NAME_PARAMS = Arrays.asList(
-            // <multi-part-name, canonical-form>
-            new Pair<>(Arrays.asList("aa", "bb", "cc"), "aa.bb.cc"),
-            // with escape character
-            new Pair<>(Arrays.asList("a@a@", "@b@b", "@c@c"), "a@@a@@.@@b@@b.@@c@@c"),
-            // with separator character
-            new Pair<>(Arrays.asList("a.a.", ".b.b.", ".c.c"), "a@.a@..@.b@.b@..@.c@.c"),
-            // with both escape and separator characters
-            new Pair<>(Arrays.asList("a@a.", "@b.b@", ".c@c"), "a@@a@..@@b@.b@@.@.c@@c"),
-            // with both escape and separator characters repeated
-            new Pair<>(Arrays.asList("a@@a..", "@@b..b@@", "..c@@c"), "a@@@@a@.@..@@@@b@.@.b@@@@.@.@.c@@@@c"));
+    private static final List<Triple<List<String>, String, String>> TEST_MULTI_PART_NAME_PARAMS = Arrays.asList(
+            // <multi-part-name, canonical-form, display-form>
+            new Triple<>(Arrays.asList("aa", "bb", "cc"), "aa.bb.cc", "aa.bb.cc"),
+            // mixed case letters, digits
+            new Triple<>(Arrays.asList("az", "AZ", "a09Z"), "az.AZ.a09Z", "az.AZ.a09Z"),
+            // with canonical form escape character
+            new Triple<>(Arrays.asList("a@a@", "@b@b", "@c@c"), "a@@a@@.@@b@@b.@@c@@c", "`a@a@`.`@b@b`.`@c@c`"),
+            // with canonical form separator character
+            new Triple<>(Arrays.asList("a.a.", ".b.b.", ".c.c"), "a@.a@..@.b@.b@..@.c@.c", "`a.a.`.`.b.b.`.`.c.c`"),
+            // with canonical form escape and separator characters
+            new Triple<>(Arrays.asList("a@a.", "@b.b@", ".c@c"), "a@@a@..@@b@.b@@.@.c@@c", "`a@a.`.`@b.b@`.`.c@c`"),
+            // with canonical form escape and separator characters repeated
+            new Triple<>(Arrays.asList("a@@a..", "@@b..b@@", "..c@@c"), "a@@@@a@.@..@@@@b@.@.b@@@@.@.@.c@@@@c",
+                    "`a@@a..`.`@@b..b@@`.`..c@@c`"),
+            // with display form escape character
+            new Triple<>(Arrays.asList("a\\b", "c\\d"), "a\\b.c\\d", "`a\\\\b`.`c\\\\d`"));
 
     @Test
-    public void testBuiltinDataverseName() {
+    public void testBuiltinDataverseName() throws Exception {
         for (String p : TEST_BUILTIN_DATAVERSE_NAME_PARAMS) {
             testBuiltinDataverseNameImpl(p);
         }
     }
 
     @Test
-    public void testSinglePartName() {
-        for (Pair<String, String> p : TEST_SINGLE_PART_NAME_PARAMS) {
-            String singlePart = p.first;
-            String expectedCanonicalForm = p.second;
-            testSinglePartNameImpl(singlePart, expectedCanonicalForm);
+    public void testSinglePartName() throws Exception {
+        for (Triple<String, String, String> t : TEST_SINGLE_PART_NAME_PARAMS) {
+            String singlePart = t.first;
+            String expectedCanonicalForm = t.second;
+            String expectedDisplayForm = t.third;
+            testSinglePartNameImpl(singlePart, expectedCanonicalForm, expectedDisplayForm);
         }
     }
 
     @Test
-    public void testMultiPartName() {
+    public void testMultiPartName() throws Exception {
         // test single part names
-        for (Pair<String, String> p : TEST_SINGLE_PART_NAME_PARAMS) {
-            List<String> parts = Collections.singletonList(p.first);
-            String expectedCanonicalForm = p.second;
-            testMultiPartNameImpl(parts, expectedCanonicalForm);
+        for (Triple<String, String, String> t : TEST_SINGLE_PART_NAME_PARAMS) {
+            List<String> parts = Collections.singletonList(t.first);
+            String expectedCanonicalForm = t.second;
+            String expectedDisplayForm = t.third;
+            testMultiPartNameImpl(parts, expectedCanonicalForm, expectedDisplayForm);
         }
         // test multi part names
-        for (Pair<List<String>, String> p : TEST_MULTI_PART_NAME_PARAMS) {
-            List<String> parts = p.first;
-            String expectedCanonicalForm = p.second;
-            testMultiPartNameImpl(parts, expectedCanonicalForm);
+        for (Triple<List<String>, String, String> t : TEST_MULTI_PART_NAME_PARAMS) {
+            List<String> parts = t.first;
+            String expectedCanonicalForm = t.second;
+            String expectedDisplayForm = t.third;
+            testMultiPartNameImpl(parts, expectedCanonicalForm, expectedDisplayForm);
         }
     }
 
-    private void testBuiltinDataverseNameImpl(String singlePart) {
+    private void testBuiltinDataverseNameImpl(String singlePart) throws Exception {
         DataverseName dvBuiltin = DataverseName.createBuiltinDataverseName(singlePart);
         DataverseName dv = DataverseName.createSinglePartName(singlePart);
         Assert.assertEquals("same-builtin", dv, dvBuiltin);
-        // part = canonical-form = persistent-form for builtins
-        testSinglePartNameImpl(singlePart, singlePart);
+        // part = canonical-form = display-form for builtins
+        testSinglePartNameImpl(singlePart, singlePart, singlePart);
     }
 
-    private void testSinglePartNameImpl(String singlePart, String expectedCanonicalForm) {
+    private void testSinglePartNameImpl(String singlePart, String expectedCanonicalForm, String expectedDisplayForm)
+            throws Exception {
         List<String> parts = Collections.singletonList(singlePart);
 
         // construction using createSinglePartName()
         DataverseName dvConstr1 = DataverseName.createSinglePartName(singlePart);
-        testDataverseNameImpl(dvConstr1, parts, expectedCanonicalForm);
+        testDataverseNameImpl(dvConstr1, parts, expectedCanonicalForm, expectedDisplayForm);
 
         // construction using create(list)
         DataverseName dvConstr2 = DataverseName.create(Collections.singletonList(singlePart));
-        testDataverseNameImpl(dvConstr2, parts, expectedCanonicalForm);
+        testDataverseNameImpl(dvConstr2, parts, expectedCanonicalForm, expectedDisplayForm);
 
         // construction using create(list, from, to)
         DataverseName dvConstr3 = DataverseName.create(Arrays.asList(null, null, singlePart, null, null), 2, 3);
-        testDataverseNameImpl(dvConstr3, parts, expectedCanonicalForm);
+        testDataverseNameImpl(dvConstr3, parts, expectedCanonicalForm, expectedDisplayForm);
     }
 
-    private void testMultiPartNameImpl(List<String> parts, String expectedCanonicalForm) {
+    private void testMultiPartNameImpl(List<String> parts, String expectedCanonicalForm, String expectedDisplayForm)
+            throws Exception {
         // construction using create(list)
         DataverseName dvConstr1 = DataverseName.create(parts);
-        testDataverseNameImpl(dvConstr1, parts, expectedCanonicalForm);
+        testDataverseNameImpl(dvConstr1, parts, expectedCanonicalForm, expectedDisplayForm);
 
         // construction using create(list, from, to)
         List<String> dv2InputParts =
                 ListUtils.union(ListUtils.union(Arrays.asList(null, null), parts), Arrays.asList(null, null));
         DataverseName dvConstr2 = DataverseName.create(dv2InputParts, 2, 2 + parts.size());
-        testDataverseNameImpl(dvConstr2, parts, expectedCanonicalForm);
+        testDataverseNameImpl(dvConstr2, parts, expectedCanonicalForm, expectedDisplayForm);
     }
 
-    private void testDataverseNameImpl(DataverseName dataverseName, List<String> parts, String expectedCanonicalForm) {
+    protected void testDataverseNameImpl(DataverseName dataverseName, List<String> parts, String expectedCanonicalForm,
+            String expectedDisplayForm) throws Exception {
         boolean isMultiPart = parts.size() > 1;
         Assert.assertEquals("is-multipart", isMultiPart, dataverseName.isMultiPart());
 
@@ -156,15 +173,16 @@
         Assert.assertArrayEquals("get-parts-1", parts.toArray(), outParts.toArray());
 
         // test canonical form
-        Assert.assertEquals("canonical-form", expectedCanonicalForm, dataverseName.getCanonicalForm());
+        String canonicalForm = dataverseName.getCanonicalForm();
+        Assert.assertEquals("canonical-form", expectedCanonicalForm, canonicalForm);
         DataverseName dvFromCanonical = DataverseName.createFromCanonicalForm(expectedCanonicalForm);
         Assert.assertEquals("canonical-form-round-trip", dataverseName, dvFromCanonical);
         Assert.assertEquals("canonical-form-round-trip-cmp", 0, dataverseName.compareTo(dvFromCanonical));
         Assert.assertEquals("canonical-form-round-trip-hash", dataverseName.hashCode(), dvFromCanonical.hashCode());
 
         // test display form
-        String expectedDisplayForm = String.join(".", parts);
-        Assert.assertEquals("display-form", expectedDisplayForm, dataverseName.toString());
+        String displayForm = dataverseName.toString();
+        Assert.assertEquals("display-form", expectedDisplayForm, displayForm);
     }
 
     @Test
diff --git a/asterixdb/asterix-doc/pom.xml b/asterixdb/asterix-doc/pom.xml
index c46a9aa..98e86b3 100644
--- a/asterixdb/asterix-doc/pom.xml
+++ b/asterixdb/asterix-doc/pom.xml
@@ -52,7 +52,7 @@
             <configuration>
               <target>
                 <concat destfile="${project.build.directory}/generated-site/markdown/sqlpp/manual.md">
-                  <filelist dir="${project.basedir}/src/main/markdown/sqlpp" files="0_toc.md,1_intro.md,2_expr_title.md,2_expr.md,3_query_title.md,3_declare_dataverse.md,3_declare_function.md,3_query.md,4_error_title.md,4_error.md,5_ddl_head.md,5_ddl_dataset_index.md,5_ddl_function_removal.md,5_ddl_dml.md,appendix_1_title.md,appendix_1_keywords.md,appendix_2_title.md,appendix_2_parameters.md,appendix_2_parallel_sort.md,appendix_2_index_only.md,appendix_3_title.md,appendix_3_resolution.md" />
+                  <filelist dir="${project.basedir}/src/main/markdown/sqlpp" files="0_toc.md,1_intro.md,2_expr_title.md,2_expr.md,3_query_title.md,3_declare_dataverse.md,3_declare_function.md,3_query.md,4_error_title.md,4_error.md,5_ddl_head.md,5_ddl_dataset_index.md,5_ddl_function_removal.md,5_ddl_dml.md,appendix_1_title.md,appendix_1_keywords.md,appendix_2_title.md,appendix_2_parameters.md,appendix_2_parallel_sort.md,appendix_2_index_only.md,appendix_2_interval_joins.md,appendix_3_title.md,appendix_3_resolution.md" />
                 </concat>
                 <concat destfile="${project.build.directory}/generated-site/markdown/sqlpp/builtins.md">
                   <filelist dir="${project.basedir}/src/main/markdown/builtins" files="0_toc.md,0_toc_sqlpp.md,0_toc_common.md,1_numeric_common.md,1_numeric_delta.md,2_string_common.md,2_string_delta.md,3_binary.md,4_spatial.md,5_similarity.md,6_tokenizing.md,7_temporal.md,7_allens.md,8_record.md,9_aggregate_sql.md,10_comparison.md,11_type.md,13_conditional.md,12_misc.md,15_bitwise.md,14_window.md" />
@@ -81,6 +81,18 @@
               <goal>run</goal>
             </goals>
           </execution>
+		  <execution>
+			  <id>sqlpp</id>
+			  <phase>prepare-package</phase>
+			  <configuration>
+				  <target>
+					  <copy file="${project.basedir}/../asterix-lang-sqlpp/target/site/jjdoc/SQLPP.html" tofile="${project.build.directory}/site/SQLPP.html"/>
+				  </target>
+			  </configuration>
+			  <goals>
+				  <goal>run</goal>
+			  </goals>
+		  </execution>
         </executions>
       </plugin>
       <plugin>
diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/2_string_common.md b/asterixdb/asterix-doc/src/main/markdown/builtins/2_string_common.md
index 58d0e10..b4a7a87 100644
--- a/asterixdb/asterix-doc/src/main/markdown/builtins/2_string_common.md
+++ b/asterixdb/asterix-doc/src/main/markdown/builtins/2_string_common.md
@@ -132,6 +132,8 @@
         length(string)
 
  * Returns the length of the string `string`.
+ Note that the length is in the unit of code point.
+ See the following examples for more details.
  * Arguments:
     * `string` : a `string` or `null` that represents the string to be checked.
  * Return Value:
@@ -144,11 +146,18 @@
 
         length("test string");
 
-
  * The expected result is:
 
         11
 
+ * Example:
+
+        length("👩‍👩‍👧‍👦");
+
+ * The expected result is (the emoji character 👩‍👩‍👧‍👦 has 7 code points):
+
+        7
+
 
 ### lower ###
  * Syntax:
@@ -181,6 +190,10 @@
 
  * Returns a new string with all leading characters that appear in `chars` removed.
    By default, white space is the character to trim.
+   Note that here one character means one code point.
+   For example, the emoji 4-people-family notation "👩‍👩‍👧‍👦" contains 7 code points,
+   and it is possible to trim a few code points (such as a 2-people-family "👨‍👦") from it.
+   See the following example for more details.
  * Arguments:
     * `string` : a `string` to be trimmed,
     * `chars` : a `string` that contains characters that are used to trim.
@@ -189,27 +202,37 @@
     * `missing` if any argument is a `missing` value,
     * `null` if any argument is a `null` value but no argument is a `missing` value,
     * any other non-string input value will cause a type error.
-
+ * Related functions: see `trim()`, `rtrim()`
 
  * Example:
 
         ltrim("me like x-phone", "eml");
 
-
  * The expected result is:
 
         " like x-phone"
 
+ * Example with multi-codepoint notation (trim the man and boy from the family of man, woman, girl and boy):
+
+        ltrim("👨‍👩‍👧‍👦", "👨‍👦")
+
+ * The expected result is (only woman, girl and boy are left in the family):
+
+        "👩‍👧‍👦"
+
 
 ### position ###
  * Syntax:
 
         position(string, string_pattern)
 
- * Returns the first position of `string_pattern` within `string`. The function returns the 0-based position. Another
+ * Returns the first position of `string_pattern` within `string`.
+  The result is counted in the unit of code points.
+ See the following example for more details.
+
+ * The function returns the 0-based position. Another
  version of the function returns the 1-based position. Below are the aliases for each version:
 
- * Aliases:
     * 0-based: `position`, `pos`, `position0`, `pos0`.
     * 1-based: `position1`, `pos1`.
 
@@ -229,14 +252,21 @@
           "v1": position("ppphonepp", "phone"),
           "v2": position("hone", "phone"),
           "v3": position1("ppphonepp", "phone"),
-          "v4": position1("hone", "phone"),
+          "v4": position1("hone", "phone")
         };
 
-
  * The expected result is:
 
         { "v1": 2, "v2": -1, v3": 3, "v4": -1 }
 
+ * Example of multi-code-point character:
+
+        position("👩‍👩‍👧‍👦🏀", "🏀");
+
+ * The expected result is (the emoji family character has 7 code points):
+
+        7
+
 
 ### regexp_contains ###
  * Syntax:
@@ -449,6 +479,8 @@
         reverse(string)
 
  * Returns a string formed by reversing characters in the input `string`.
+ For characters of multiple code points, code point is the minimal unit to reverse.
+ See the following examples for more details.
  * Arguments:
     * `string` : a `string` to be reversed
  * Return Value:
@@ -462,11 +494,20 @@
 
         reverse("hello");
 
-
  * The expected result is:
 
         "olleh"
 
+* Example of multi-code-point character (Korean):
+
+        reverse("한글");
+
+* The expected result is
+ (the Korean characters are splitted into code points and then the code points are reversed):
+
+        "ᆯᅳᄀᆫᅡᄒ"
+
+
 ### rtrim ###
  * Syntax:
 
@@ -474,6 +515,10 @@
 
  * Returns a new string with all trailing characters that appear in `chars` removed.
    By default, white space is the character to trim.
+   Note that here one character means one code point.
+   For example, the emoji 4-people-family notation "👩‍👩‍👧‍👦" contains 7 code points,
+   and it is possible to trim a few code points (such as a 2-people-family "👨‍👦") from it.
+   See the following example for more details.
  * Arguments:
     * `string` : a `string` to be trimmed,
     * `chars` : a `string` that contains characters that are used to trim.
@@ -482,7 +527,7 @@
     * `missing` if any argument is a `missing` value,
     * `null` if any argument is a `null` value but no argument is a `missing` value,
     * any other non-string input value will cause a type error.
-
+ * Related functions: see `trim()`, `ltrim()`
 
  * Example:
 
@@ -493,7 +538,16 @@
 
  * The expected result is:
 
-        { "v1": "i like ", "v2": "i like " }
+        { "v1": "i like ", "v2": "i like x-" }
+
+ * Example with multi-codepoint notation (trim the man and boy from the family of man, woman, girl and boy):
+
+        rtrim("👨‍👩‍👧‍👦", "👨‍👦")
+
+ * The expected result is (only man, woman and girl are left in the family):
+
+        "👨‍👩‍👧"
+
 
 ### split ###
  * Syntax:
@@ -505,6 +559,7 @@
     * `string` : a `string` to be split.
  * Return Value:
     * an array of substrings by splitting the input `string` by `sep`,
+    * in case of two consecutive `sep`s in the `string`, the result of splitting the two consecutive `sep`s will be the empty string `""`,
     * `missing` if the argument is a `missing` value,
     * `null` if the argument is a `null` value,
     * any other non-string input value will cause a type error.
@@ -519,6 +574,16 @@
         [ "test", "driven", "development" ]
 
 
+ * Example with two consecutive `sep`s in the `string`:
+
+        split("123//456", "/");
+
+
+ * The expected result is:
+
+        [ "123", "", "456" ]
+
+
 ### starts_with ###
  * Syntax:
 
@@ -554,6 +619,8 @@
         substr(string, offset[, length])
 
  * Returns the substring from the given string `string` based on the given start offset `offset` with the optional `length`. 
+ Note that both of the `offset` and `length` are in the unit of code point
+ (e.g. the emoji family 👨‍👩‍👧‍👦 has 7 code points).
  The function uses the 0-based position. Another version of the function uses the 1-based position. Below are the
  aliases for each version:
 
@@ -592,8 +659,12 @@
 
         trim(string[, chars]);
 
- * Returns a new string with all leading characters that appear in `chars` removed.
+ * Returns a new string with all leading and trailing characters that appear in `chars` removed.
    By default, white space is the character to trim.
+   Note that here one character means one code point.
+   For example, the emoji 4-people-family notation "👩‍👩‍👧‍👦" contains 7 code points,
+   and it is possible to trim a few code points (such as a 2-people-family "👨‍👦") from it.
+   See the following example for more details.
  * Arguments:
     * `string` : a `string` to be trimmed,
     * `chars` : a `string` that contains characters that are used to trim.
@@ -602,17 +673,25 @@
     * `missing` if any argument is a `missing` value,
     * `null` if any argument is a `null` value but no argument is a `missing` value,
     * any other non-string input value will cause a type error.
+ * Related functions: see `ltrim()`, `rtrim()`
 
 
  * Example:
 
         trim("i like x-phone", "xphoen");
 
-
  * The expected result is:
 
         " like "
 
+ * Example with multi-codepoint notation (trim the man and boy from the family of man, woman, girl and boy):
+
+       trim("👨‍👩‍👧‍👦", "👨‍👦")
+
+ * The expected result is (only woman and girl are left in the family):
+
+         "👩‍👧"
+
 
 ### upper ###
  * Syntax:
diff --git a/asterixdb/asterix-doc/src/main/markdown/sqlpp/0_toc.md b/asterixdb/asterix-doc/src/main/markdown/sqlpp/0_toc.md
index e65ae9f..f4e2cef 100644
--- a/asterixdb/asterix-doc/src/main/markdown/sqlpp/0_toc.md
+++ b/asterixdb/asterix-doc/src/main/markdown/sqlpp/0_toc.md
@@ -99,5 +99,6 @@
 * [Appendix 1. Reserved Keywords](#Reserved_keywords)
 * [Appendix 2. Performance Tuning](#Performance_tuning)
       * [Parallelism Parameter](#Parallelism_parameter)
+      * [Interval Joins](#Interval_joins)
       * [Memory Parameters](#Memory_parameters)
 * [Appendix 3. Variable Bindings and Name Resolution](#Variable_bindings_and_name_resolution)
diff --git a/asterixdb/asterix-doc/src/main/markdown/sqlpp/5_ddl_function_removal.md b/asterixdb/asterix-doc/src/main/markdown/sqlpp/5_ddl_function_removal.md
index 34b611f..a0742a3 100644
--- a/asterixdb/asterix-doc/src/main/markdown/sqlpp/5_ddl_function_removal.md
+++ b/asterixdb/asterix-doc/src/main/markdown/sqlpp/5_ddl_function_removal.md
@@ -22,7 +22,7 @@
 The CREATE FUNCTION statement creates a **named** function that can then be used and reused in queries.
 The body of a function can be any query expression involving the function's parameters.
 
-    FunctionSpecification ::= "FUNCTION" FunctionOrTypeName IfNotExists ParameterList "{" Expression "}"
+    FunctionSpecification ::= (<OR> <REPLACE>)? "FUNCTION" FunctionOrTypeName IfNotExists ParameterList "{" Expression "}"
 
 The following is an example of a CREATE FUNCTION statement which is similar to our earlier DECLARE FUNCTION example.
 It differs from that example in that it results in a function that is persistently registered by name in the specified dataverse (the current dataverse being used, if not otherwise specified).
@@ -35,9 +35,19 @@
          WHERE u.id = userId)[0]
      };
 
+The following is an example of CREATE FUNCTION statement that replaces an existing function.
+
+##### Example
+
+    CREATE OR REPLACE FUNCTION friendInfo(userId) {
+        (SELECT u.id, u.name
+         FROM GleambookUsers u
+         WHERE u.id = userId)[0]
+     };
+
 ### <a id="Synonyms"> Synonyms</a>
 
-    SynonymSpecification ::= "SYNONYM" QualifiedName "FOR" QualifiedName IfNotExists
+    SynonymSpecification ::= "SYNONYM" QualifiedName IfNotExists "FOR" QualifiedName 
 
 The CREATE SYNONYM statement creates a synonym for a given dataset.
 This synonym may be used used instead of the dataset name in SELECT, INSERT, UPSERT, DELETE, and LOAD statements.
diff --git a/asterixdb/asterix-doc/src/main/markdown/sqlpp/appendix_2_interval_joins.md b/asterixdb/asterix-doc/src/main/markdown/sqlpp/appendix_2_interval_joins.md
new file mode 100644
index 0000000..45f13f3
--- /dev/null
+++ b/asterixdb/asterix-doc/src/main/markdown/sqlpp/appendix_2_interval_joins.md
@@ -0,0 +1,89 @@
+<!--
+ ! 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.
+ !-->
+
+This system allows for the 13 types of Allen's interval-join relations.
+The default, when using these joins, is either Nested Loop, or Hybrid Hash Join.
+The optimal algorithm will be automatically selected based on the query.
+Hybrid Hash Join will be selected in cases where the relation includes an equality;
+these cases are: `interval_starts()`, `interval_started_by()`, `interval_ends()`, `interval_ended_by()`,
+`interval_meets()`, and `interval_met_by()`.
+Otherwise, the system will default to nested loop join.
+To use interval merge join you must include a range hint.
+Adding a range hint allows for the system to pick interval merge join.
+
+## <a id="Interval_joins">Types of Interval Joins</a>
+The 13 interval functions are `interval_after()`, `interval_before()`, `interval_covers()`, `interval_covered_by()`,
+`interval_ends()`, `interval_ended_by()`, `interval_meets()`, `interval_met_by()`, `interval_overlaps()`,
+`interval_overlapping()`, `interval_overlapped_by()`, `interval_starts()`, and `interval_started_by()`.
+
+##### How to use an interval join
+
+    select f.name as staff, d.name as student
+    from Staff as f, Students as d
+    where interval_after(f.employment, d.attendance)
+
+In this scenario, `interval_after()` can be replaced with any of the 13 join functions.
+Here is what each of the functions represent if A represents the first interval parameter,
+and B represents the second set interval parameter:
+
+| Function | Condition |
+|-------------------------|-------------------------|
+| Before(A, B) and After(B, A) | A.end < B.start |
+| Covers(A, B) and Covered_by(B, A) | A.start <= B.start and A.end >= B.end |
+| Ends(A, B) and Ended_by(B, A) | A.end = B.end and A.start >= B.start |
+| Meets(A, B) and Met_by(B, A) | A.end = B.start |
+| Overlaps(A, B) and Overlapped_by(B, A) | A.start < B.start and B.start > A.end and A.end > B.start |
+| Overlapping(A, B)| (A.start >= B.start and B.start < A.end) or (B.end <= A.end and B.end < A.start)|
+| Starts(A, B) and Started_by(B, A) | A.start = B.start and A.end <= B.end |
+
+## <a id="Range_hint">Using a Range Hint</a>
+
+To use an efficient interval join the data must be partitioned with the details in a range hint.
+Interval joins with a range hint currently work for intervals types of date, datetime, or time;
+the range hint type must match the interval type.
+Adding a range hint directly before the interval join function will cause the system to pick interval
+merge join for these interval functions: `interval_after()`, `interval_before()`, `interval_covers()`,
+`interval_covered_by()`, `interval_overlaps()`, `interval_overlapping()`, `interval_overlapped_by()`.
+The other relations will ignore the range hint and pick Hybrid Hash Join as described earlier.
+
+Here is an example of how interval joins work with a range hint for all the supported data types.
+Suppose that we have two sets of data, a data set of staff members with an interval for length of
+employment and an id.
+The other dataset represents students, which may include an interval for attendance and an id.
+Each partition receives data based on the split points;
+The split points in the range hint must be strategically set by the
+user so that the data divides evenly among partitions.
+For example, if your query contains 1 split point, and the system is using two partitions,
+the data before the split point will be sent to the first partition,
+and the data after the split point will be sent to the second partition.
+This continues to work respectively based on the number of split points and number of partitions.
+Ideally, the number of split points should equal the number of partitions - 1.
+
+##### Range Hint Example
+
+    /*+ range [<Expression>, ..., ] */
+
+##### Range Hint Example with Date
+
+    select f.name as staff, d.name as student
+    from Staff as f, Students as d
+    where
+    /*+ range [date("2003-06-30"), date("2005-12-31"), date("2008-06-30")] */
+    interval_after(f.employment, d.attendance)
+    order by f.name, d.name;
diff --git a/asterixdb/asterix-doc/src/main/user-defined_function/udf.md b/asterixdb/asterix-doc/src/main/user-defined_function/udf.md
index dc21c30..fcb1e14 100644
--- a/asterixdb/asterix-doc/src/main/user-defined_function/udf.md
+++ b/asterixdb/asterix-doc/src/main/user-defined_function/udf.md
@@ -71,15 +71,14 @@
 
 In the AsterixDB source release, we provide several sample UDFs that you can try out.
 You need to build the AsterixDB source to get the compiled UDF package. It can be found under
-the `asterixdb-external` sub-project. Assuming that these UDFs have been installed into the `udfs` dataverse and `testlib` library,
+the `asterixdb-external` sub-project. Assuming that these UDFs have been installed into the `testlib` library in`udfs` dataverse,
 here is an example that uses the sample UDF `mysum` to compute the sum of two input integers.
 
     USE udfs;
 
     CREATE FUNCTION mysum(a: int32, b: int32)
-    RETURNS int32
-    LANGUAGE JAVA
-    AS "testlib","org.apache.asterix.external.library.MySumFactory";
+      RETURNS int32
+      AS "org.apache.asterix.external.library.MySumFactory" AT testlib;
 
 ## <a id="PythonUDF">Creating a Python UDF</a>
 
@@ -118,7 +117,7 @@
 
     shiv -o lib.pyz --site-packages . scikit-learn
 
-Then, deploy it the same as the Java UDF was, with the library name `pylib`
+Then, deploy it the same as the Java UDF was, with the library name `pylib` in `udfs` dataverse
 
     curl -v -u admin:admin -X POST -F 'data=@./lib.pyz' localhost:19002/admin/udf/udfs/pylib
 
@@ -127,24 +126,31 @@
 
     USE udfs;
 
-    CREATE FUNCTION sentiment(a)
-    LANGUAGE PYTHON DETERMINISTIC
-    AS "pylib","sentiment_mod:sent_model";
+    CREATE FUNCTION sentiment(a) 
+      AS "sentiment_mod", "sent_model.sentiment" AT pylib;
 
-By default, AsterixDB will treat all external functions as `NOT DETERMINISTIC`. Loosely this means the result might
-change depending on when the function is called, regardless of the input. This function behaves the same on each input,
-so we can safely call it `DETERMINISTIC`. This will enable better optimization of queries including this function.
+By default, AsterixDB will treat all external functions as deterministic. It means the function must return the same
+result for the same input, irrespective of when or how many times the function is called on that input. 
+This particular function behaves the same on each input, so it satisfies the deterministic property. 
+This enables better optimization of queries including this function.
+If a function is not deterministic then it should be declared as such by using `WITH` sub-clause:
+
+    USE udfs;
+
+    CREATE FUNCTION sentiment(a)
+      AS "sentiment_mod", "sent_model.sentiment" AT pylib
+      WITH { "deterministic": false }
 
 With the function now defined, it can then be used as any other scalar SQL++ function would be. For example:
 
     USE udfs;
 
     INSERT INTO Tweets([
-    {"id":1, "msg":"spam is great"},
-    {"id":2, "msg":"i will not eat green eggs and ham"},
-    {"id":3, "msg":"bacon is better"}]);
+      {"id":1, "msg":"spam is great"},
+      {"id":2, "msg":"i will not eat green eggs and ham"},
+      {"id":3, "msg":"bacon is better"}
+    ]);
 
-    USE udfs;
     SELECT t.msg as msg, sentiment(t.msg) as sentiment
     FROM Tweets t;
 
@@ -191,12 +197,12 @@
 
 Then we define the function we want to apply to the feed
 
-   USE udfs;
+    USE udfs;
 
-   CREATE FUNCTION addMentionedUsers(t: TweetType)
-   RETURNS TweetType
-   LANGUAGE JAVA as "testlib","org.apache.asterix.external.library.AddMentionedUsersFactory"
-   WITH {"textFieldName": "text"};
+    CREATE FUNCTION addMentionedUsers(t: TweetType)
+      RETURNS TweetType
+      AS "org.apache.asterix.external.library.AddMentionedUsersFactory" AT testlib
+      WITH { "resources": { "textFieldName": "text" } };
 
 After creating the feed, we attach the UDF onto the feed pipeline and start the feed with following statements:
 
diff --git a/asterixdb/asterix-doc/src/site/site.xml b/asterixdb/asterix-doc/src/site/site.xml
index 6db028e..f1cd93b 100644
--- a/asterixdb/asterix-doc/src/site/site.xml
+++ b/asterixdb/asterix-doc/src/site/site.xml
@@ -80,6 +80,7 @@
 
     <menu name="Queries">
       <item name="The SQL++ Query Language" href="sqlpp/manual.html"/>
+      <item name="Raw SQL++ Grammar" href="SQLPP.html"/>
       <item name="Builtin Functions" href="sqlpp/builtins.html"/>
     </menu>
 
diff --git a/asterixdb/asterix-external-data/pom.xml b/asterixdb/asterix-external-data/pom.xml
index 5385438..4fed101 100644
--- a/asterixdb/asterix-external-data/pom.xml
+++ b/asterixdb/asterix-external-data/pom.xml
@@ -441,14 +441,6 @@
       <artifactId>guava</artifactId>
     </dependency>
     <dependency>
-        <groupId>net.razorvine</groupId>
-        <artifactId>pyrolite</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>net.razorvine</groupId>
-      <artifactId>serpent</artifactId>
-    </dependency>
-    <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>http-client-spi</artifactId>
     </dependency>
@@ -469,6 +461,10 @@
       <artifactId>auth</artifactId>
     </dependency>
     <dependency>
+        <groupId>org.msgpack</groupId>
+        <artifactId>msgpack-core</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
     </dependency>
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/AwsS3InputStreamFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/AwsS3InputStreamFactory.java
index 67a7c93..f3a36ff 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/AwsS3InputStreamFactory.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/AwsS3InputStreamFactory.java
@@ -103,10 +103,10 @@
             for (Map.Entry<String, String> entry : configuration.entrySet()) {
                 if (entry.getKey().startsWith(KEY_INCLUDE)) {
                     pattern = entry.getValue();
-                    includeMatchers.add(Pattern.compile(ExternalDataUtils.wildcardToRegex(pattern)).matcher(""));
+                    includeMatchers.add(Pattern.compile(ExternalDataUtils.patternToRegex(pattern)).matcher(""));
                 } else if (entry.getKey().startsWith(KEY_EXCLUDE)) {
                     pattern = entry.getValue();
-                    excludeMatchers.add(Pattern.compile(ExternalDataUtils.wildcardToRegex(pattern)).matcher(""));
+                    excludeMatchers.add(Pattern.compile(ExternalDataUtils.patternToRegex(pattern)).matcher(""));
                 }
             }
         } catch (PatternSyntaxException ex) {
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/MessageType.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/MessageType.java
new file mode 100644
index 0000000..506d9d3
--- /dev/null
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/MessageType.java
@@ -0,0 +1,40 @@
+/**
+ * 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.external.ipc;
+
+public enum MessageType {
+    HELO,
+    QUIT,
+    INIT,
+    INIT_RSP,
+    CALL,
+    CALL_RSP,
+    ERROR;
+
+    static MessageType[] messageTypes;
+    static {
+        messageTypes = values();
+    }
+
+    public static MessageType fromByte(byte b) {
+        if (b > messageTypes.length - 1) {
+            return null;
+        }
+        return messageTypes[b];
+    }
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonIPCProto.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonIPCProto.java
new file mode 100644
index 0000000..feb52cf
--- /dev/null
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonIPCProto.java
@@ -0,0 +1,144 @@
+/**
+ * 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.external.ipc;
+
+import static org.apache.hyracks.ipc.impl.Message.HEADER_SIZE;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.hyracks.ipc.impl.IPCSystem;
+import org.apache.hyracks.ipc.impl.Message;
+import org.msgpack.core.MessagePack;
+
+public class PythonIPCProto {
+
+    public PythonMessageBuilder messageBuilder;
+    OutputStream sockOut;
+    ByteBuffer headerBuffer = ByteBuffer.allocate(21);
+    ByteBuffer recvBuffer = ByteBuffer.allocate(4096);
+    ExternalFunctionResultRouter router;
+    IPCSystem ipcSys;
+    Message outMsg;
+    Long key;
+
+    public PythonIPCProto(OutputStream sockOut, ExternalFunctionResultRouter router, IPCSystem ipcSys)
+            throws IOException {
+        this.sockOut = sockOut;
+        messageBuilder = new PythonMessageBuilder();
+        this.router = router;
+        this.ipcSys = ipcSys;
+        this.outMsg = new Message(null);
+    }
+
+    public void start() {
+        this.key = router.insertRoute(recvBuffer);
+    }
+
+    public void helo() throws IOException, AsterixException {
+        recvBuffer.clear();
+        recvBuffer.position(0);
+        recvBuffer.limit(0);
+        messageBuilder.buf.clear();
+        messageBuilder.buf.position(0);
+        messageBuilder.hello();
+        sendMsg();
+        receiveMsg();
+        if (getResponseType() != MessageType.HELO) {
+            throw new IllegalStateException("Illegal reply received, expected HELO");
+        }
+    }
+
+    public void init(String module, String clazz, String fn) throws IOException, AsterixException {
+        recvBuffer.clear();
+        recvBuffer.position(0);
+        recvBuffer.limit(0);
+        messageBuilder.buf.clear();
+        messageBuilder.buf.position(0);
+        messageBuilder.init(module, clazz, fn);
+        sendMsg();
+        receiveMsg();
+        if (getResponseType() != MessageType.INIT_RSP) {
+            throw new IllegalStateException("Illegal reply received, expected INIT_RSP");
+        }
+    }
+
+    public ByteBuffer call(ByteBuffer args, int numArgs) throws Exception {
+        recvBuffer.clear();
+        recvBuffer.position(0);
+        recvBuffer.limit(0);
+        messageBuilder.buf.clear();
+        messageBuilder.buf.position(0);
+        messageBuilder.call(args.array(), args.position(), numArgs);
+        sendMsg();
+        receiveMsg();
+        if (getResponseType() != MessageType.CALL_RSP) {
+            throw new IllegalStateException("Illegal reply received, expected CALL_RSP, recvd: " + getResponseType());
+        }
+        return recvBuffer;
+    }
+
+    public void quit() throws IOException {
+        messageBuilder.quit();
+        router.removeRoute(key);
+    }
+
+    public void receiveMsg() throws IOException, AsterixException {
+        Exception except = null;
+        try {
+            synchronized (recvBuffer) {
+                while (recvBuffer.limit() == 0) {
+                    recvBuffer.wait(100);
+                }
+            }
+            if (router.hasException(key)) {
+                except = router.getException(key);
+            }
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            throw new AsterixException(ErrorCode.EXTERNAL_UDF_EXCEPTION, e);
+        }
+        if (except != null) {
+            throw new AsterixException(ErrorCode.EXTERNAL_UDF_EXCEPTION, except);
+        }
+        messageBuilder.readHead(recvBuffer);
+        if (messageBuilder.type == MessageType.ERROR) {
+            throw new AsterixException(ErrorCode.EXTERNAL_UDF_EXCEPTION,
+                    MessagePack.newDefaultUnpacker(recvBuffer).unpackString());
+        }
+    }
+
+    public void sendMsg() throws IOException {
+        headerBuffer.clear();
+        headerBuffer.position(0);
+        headerBuffer.putInt(HEADER_SIZE + messageBuilder.buf.position());
+        headerBuffer.putLong(-1);
+        headerBuffer.putLong(key);
+        headerBuffer.put(Message.NORMAL);
+        sockOut.write(headerBuffer.array(), 0, HEADER_SIZE + Integer.BYTES);
+        sockOut.write(messageBuilder.buf.array(), 0, messageBuilder.buf.position());
+        sockOut.flush();
+    }
+
+    public MessageType getResponseType() {
+        return messageBuilder.type;
+    }
+
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonMessageBuilder.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonMessageBuilder.java
new file mode 100644
index 0000000..506e80d
--- /dev/null
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/ipc/PythonMessageBuilder.java
@@ -0,0 +1,132 @@
+/**
+ * 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.external.ipc;
+
+import static org.apache.hyracks.api.util.JavaSerializationUtils.getSerializationProvider;
+import static org.msgpack.core.MessagePack.Code.*;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import org.apache.asterix.external.library.msgpack.MessagePackerFromADM;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class PythonMessageBuilder {
+    private static final int MAX_BUF_SIZE = 21 * 1024 * 1024; //21MB.
+    private static final Logger LOGGER = LogManager.getLogger();
+    MessageType type;
+    long dataLength;
+    ByteBuffer buf;
+    String[] initAry = new String[3];
+
+    public PythonMessageBuilder() {
+        this.type = null;
+        dataLength = -1;
+        this.buf = ByteBuffer.allocate(4096);
+    }
+
+    public void setType(MessageType type) {
+        this.type = type;
+    }
+
+    public void packHeader() {
+        MessagePackerFromADM.packFixPos(buf, (byte) type.ordinal());
+    }
+
+    //TODO: this is wrong for any multibyte chars
+    private int getStringLength(String s) {
+        return s.length();
+    }
+
+    public void readHead(ByteBuffer buf) {
+        byte typ = buf.get();
+        type = MessageType.fromByte(typ);
+    }
+
+    public void hello() throws IOException {
+        this.type = MessageType.HELO;
+        byte[] serAddr = serialize(new InetSocketAddress(InetAddress.getLoopbackAddress(), 1));
+        dataLength = serAddr.length + 5;
+        packHeader();
+        //TODO:make this cleaner
+        buf.put(BIN32);
+        buf.putInt(serAddr.length);
+        buf.put(serAddr);
+    }
+
+    public void quit() {
+        this.type = MessageType.QUIT;
+        dataLength = getStringLength("QUIT");
+        packHeader();
+        MessagePackerFromADM.packFixStr(buf, "QUIT");
+    }
+
+    public void init(String module, String clazz, String fn) {
+        this.type = MessageType.INIT;
+        initAry[0] = module;
+        initAry[1] = clazz;
+        initAry[2] = fn;
+        dataLength = Arrays.stream(initAry).mapToInt(s -> getStringLength(s)).sum() + 2;
+        packHeader();
+        MessagePackerFromADM.packFixArrayHeader(buf, (byte) initAry.length);
+        for (String s : initAry) {
+            MessagePackerFromADM.packStr(buf, s);
+        }
+    }
+
+    public void call(byte[] args, int lim, int numArgs) {
+        if (args.length > buf.capacity()) {
+            int growTo = ExternalFunctionResultRouter.closestPow2(args.length);
+            if (growTo > MAX_BUF_SIZE) {
+                //TODO: something more graceful
+                throw new IllegalArgumentException("Reached maximum buffer size");
+            }
+            buf = ByteBuffer.allocate(growTo);
+        }
+        buf.clear();
+        buf.position(0);
+        this.type = MessageType.CALL;
+        dataLength = 5 + 1 + lim;
+        packHeader();
+        //TODO: make this switch between fixarray/array16/array32
+        if (numArgs == 0) {
+            buf.put(NIL);
+        } else {
+            buf.put(ARRAY32);
+            buf.putInt(numArgs);
+            buf.put(args, 0, lim);
+        }
+    }
+
+    //this is used to send a serialized java inetaddress to the entrypoint so it can send it back
+    //to the IPC subsystem, which needs it. don't use this for anything else.
+    private byte[] serialize(Object object) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try (ObjectOutputStream oos = getSerializationProvider().newObjectOutputStream(baos)) {
+            oos.writeObject(object);
+            oos.flush();
+            baos.close();
+        }
+        return baos.toByteArray();
+    }
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
index b0a4dfdc..d7a446b 100755
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
@@ -23,6 +23,8 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
@@ -34,6 +36,7 @@
 import org.apache.asterix.common.library.ILibraryManager;
 import org.apache.asterix.common.library.LibraryDescriptor;
 import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.external.ipc.ExternalFunctionResultRouter;
 import org.apache.commons.io.FileUtils;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -43,6 +46,8 @@
 import org.apache.hyracks.api.util.IoUtil;
 import org.apache.hyracks.control.common.work.AbstractWork;
 import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.hyracks.ipc.impl.IPCSystem;
+import org.apache.hyracks.ipc.sockets.PlainSocketChannelFactory;
 import org.apache.hyracks.util.file.FileUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -81,6 +86,8 @@
     private final FileReference trashDir;
     private final Path trashDirPath;
     private final Map<Pair<DataverseName, String>, ILibrary> libraries = new HashMap<>();
+    private IPCSystem pythonIPC;
+    private final ExternalFunctionResultRouter router;
 
     public ExternalLibraryManager(NodeControllerService ncs, IPersistedResourceRegistry reg, FileReference appDir) {
         this.ncs = ncs;
@@ -91,10 +98,14 @@
         trashDir = baseDir.getChild(TRASH_DIR_NAME);
         trashDirPath = trashDir.getFile().toPath().normalize();
         objectMapper = createObjectMapper();
+        router = new ExternalFunctionResultRouter();
     }
 
-    public void initStorage(boolean resetStorageData) throws HyracksDataException {
+    public void initialize(boolean resetStorageData) throws HyracksDataException {
         try {
+            pythonIPC = new IPCSystem(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0),
+                    PlainSocketChannelFactory.INSTANCE, router, new ExternalFunctionResultRouter.NoOpNoSerJustDe());
+            pythonIPC.start();
             Path baseDirPath = baseDir.getFile().toPath();
             if (Files.isDirectory(baseDirPath)) {
                 if (resetStorageData) {
@@ -291,6 +302,16 @@
         return om;
     }
 
+    @Override
+    public ExternalFunctionResultRouter getRouter() {
+        return router;
+    }
+
+    @Override
+    public IPCSystem getIPCI() {
+        return pythonIPC;
+    }
+
     private static final class DeleteDirectoryWork extends AbstractWork {
 
         private final Path path;
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionDescriptor.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionDescriptor.java
index c033cea..61ab3ea 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionDescriptor.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionDescriptor.java
@@ -47,7 +47,7 @@
 
     @Override
     public IScalarEvaluatorFactory createEvaluatorFactory(IScalarEvaluatorFactory[] args) {
-        return new ExternalScalarFunctionEvaluatorFactory(finfo, args, argTypes);
+        return new ExternalScalarFunctionEvaluatorFactory(finfo, args, argTypes, sourceLoc);
     }
 
     @Override
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluator.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluator.java
index 3ff706d..5ae1995 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluator.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluator.java
@@ -21,12 +21,14 @@
 
 import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.library.ILibraryManager;
+import org.apache.asterix.external.ipc.ExternalFunctionResultRouter;
 import org.apache.asterix.om.functions.IExternalFunctionInfo;
 import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.ipc.impl.IPCSystem;
 
 public abstract class ExternalScalarFunctionEvaluator implements IScalarEvaluator {
 
@@ -34,6 +36,8 @@
     protected final IScalarEvaluator[] argEvals;
     protected final IAType[] argTypes;
     protected final ILibraryManager libraryManager;
+    protected final ExternalFunctionResultRouter router;
+    protected final IPCSystem ipcSys;
 
     public ExternalScalarFunctionEvaluator(IExternalFunctionInfo finfo, IScalarEvaluatorFactory[] args,
             IAType[] argTypes, IEvaluatorContext context) throws HyracksDataException {
@@ -45,5 +49,7 @@
         }
         libraryManager =
                 ((INcApplicationContext) context.getServiceContext().getApplicationContext()).getLibraryManager();
+        router = libraryManager.getRouter();
+        ipcSys = libraryManager.getIPCI();
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluatorFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluatorFactory.java
index ec757a1..de75f7a 100755
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluatorFactory.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarFunctionEvaluatorFactory.java
@@ -25,6 +25,7 @@
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.SourceLocation;
 
 public class ExternalScalarFunctionEvaluatorFactory implements IScalarEvaluatorFactory {
 
@@ -32,12 +33,14 @@
     private final IExternalFunctionInfo finfo;
     private final IScalarEvaluatorFactory[] args;
     private final IAType[] argTypes;
+    private final SourceLocation sourceLoc;
 
     public ExternalScalarFunctionEvaluatorFactory(IExternalFunctionInfo finfo, IScalarEvaluatorFactory[] args,
-            IAType[] argTypes) {
+            IAType[] argTypes, SourceLocation sourceLoc) {
         this.finfo = finfo;
         this.args = args;
         this.argTypes = argTypes;
+        this.sourceLoc = sourceLoc;
     }
 
     @Override
@@ -46,7 +49,7 @@
             case JAVA:
                 return new ExternalScalarJavaFunctionEvaluator(finfo, args, argTypes, ctx);
             case PYTHON:
-                return new ExternalScalarPythonFunctionEvaluator(finfo, args, argTypes, ctx);
+                return new ExternalScalarPythonFunctionEvaluator(finfo, args, argTypes, ctx, sourceLoc);
             default:
                 throw new HyracksDataException(ErrorCode.ASTERIX, ErrorCode.LIBRARY_EXTERNAL_FUNCTION_UNSUPPORTED_KIND,
                         finfo.getLanguage());
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarJavaFunctionEvaluator.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarJavaFunctionEvaluator.java
index 4a073c9..33b0369 100755
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarJavaFunctionEvaluator.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarJavaFunctionEvaluator.java
@@ -23,7 +23,6 @@
 
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.exceptions.RuntimeDataException;
-import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.external.api.IExternalScalarFunction;
 import org.apache.asterix.external.api.IFunctionFactory;
@@ -48,21 +47,20 @@
             IEvaluatorContext context) throws HyracksDataException {
         super(finfo, args, argTypes, context);
 
-        DataverseName functionDataverse = FunctionSignature.getDataverseName(finfo.getFunctionIdentifier());
-        String functionLibrary = finfo.getLibrary();
+        DataverseName libraryDataverseName = finfo.getLibraryDataverseName();
+        String libraryName = finfo.getLibraryName();
+        JavaLibrary library = (JavaLibrary) libraryManager.getLibrary(libraryDataverseName, libraryName);
 
-        functionHelper = new JavaFunctionHelper(finfo, argTypes, resultBuffer);
-        JavaLibrary lib = (JavaLibrary) libraryManager.getLibrary(functionDataverse, functionLibrary);
-        ClassLoader libraryClassLoader = lib.getClassLoader();
-        String classname = finfo.getExternalIdentifier().get(0).trim();
+        String classname = finfo.getExternalIdentifier().get(0);
         try {
-            Class<?> clazz = Class.forName(classname, true, libraryClassLoader);
+            Class<?> clazz = Class.forName(classname, true, library.getClassLoader());
             IFunctionFactory externalFunctionFactory = (IFunctionFactory) clazz.newInstance();
             externalFunctionInstance = (IExternalScalarFunction) externalFunctionFactory.getExternalFunction();
         } catch (Exception e) {
             throw new RuntimeDataException(ErrorCode.LIBRARY_EXTERNAL_FUNCTION_UNABLE_TO_LOAD_CLASS, e, classname);
         }
 
+        functionHelper = new JavaFunctionHelper(finfo, argTypes, resultBuffer);
         try {
             externalFunctionInstance.initialize(functionHelper);
         } catch (Exception e) {
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarPythonFunctionEvaluator.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarPythonFunctionEvaluator.java
index e49c97e..2353c6d 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarPythonFunctionEvaluator.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalScalarPythonFunctionEvaluator.java
@@ -22,36 +22,36 @@
 import java.io.DataOutput;
 import java.io.File;
 import java.io.IOException;
-import java.net.ConnectException;
-import java.net.ServerSocket;
-import java.util.HashMap;
+import java.net.InetAddress;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
-import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.common.exceptions.WarningUtil;
 import org.apache.asterix.common.library.ILibraryManager;
 import org.apache.asterix.common.metadata.DataverseName;
-import org.apache.asterix.external.api.IJObject;
-import org.apache.asterix.external.library.java.JObjectPointableVisitor;
-import org.apache.asterix.external.library.java.base.JComplexObject;
-import org.apache.asterix.external.library.java.base.JObject;
+import org.apache.asterix.external.ipc.ExternalFunctionResultRouter;
+import org.apache.asterix.external.ipc.PythonIPCProto;
+import org.apache.asterix.external.library.msgpack.MessagePackerFromADM;
+import org.apache.asterix.external.library.msgpack.MessageUnpackerToADM;
 import org.apache.asterix.om.functions.IExternalFunctionInfo;
-import org.apache.asterix.om.pointables.AFlatValuePointable;
-import org.apache.asterix.om.pointables.AListVisitablePointable;
-import org.apache.asterix.om.pointables.ARecordVisitablePointable;
-import org.apache.asterix.om.pointables.PointableAllocator;
-import org.apache.asterix.om.pointables.base.IVisitablePointable;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.EnumDeserializer;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeTagUtil;
-import org.apache.asterix.om.util.container.IObjectPool;
-import org.apache.asterix.om.util.container.ListObjectPool;
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.config.IApplicationConfig;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.TaskAttemptId;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.IWarningCollector;
+import org.apache.hyracks.api.exceptions.SourceLocation;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.api.resources.IDeallocatable;
 import org.apache.hyracks.control.common.controllers.NCConfig;
@@ -62,49 +62,72 @@
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
 import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 import org.apache.hyracks.dataflow.std.base.AbstractStateObject;
-
-import net.razorvine.pyro.PyroProxy;
+import org.apache.hyracks.ipc.impl.IPCSystem;
 
 class ExternalScalarPythonFunctionEvaluator extends ExternalScalarFunctionEvaluator {
 
     private final PythonLibraryEvaluator libraryEvaluator;
 
     private final ArrayBackedValueStorage resultBuffer = new ArrayBackedValueStorage();
-    private final PointableAllocator pointableAllocator;
-    private final JObjectPointableVisitor pointableVisitor;
-    private final Object[] argHolder;
-    private final IObjectPool<IJObject, IAType> reflectingPool = new ListObjectPool<>(JTypeObjectFactory.INSTANCE);
-    private final Map<IAType, TypeInfo> infoPool = new HashMap<>();
+    private final ByteBuffer argHolder;
+    private final ByteBuffer outputWrapper;
+    private final IEvaluatorContext evaluatorContext;
     private static final String ENTRYPOINT = "entrypoint.py";
-    private static final String PY_NO_SITE_PKGS_OPT = "-S";
-    private static final String PY_NO_USER_PKGS_OPT = "-s";
+    private static final String SITE_PACKAGES = "site-packages";
 
     private final IPointable[] argValues;
 
     ExternalScalarPythonFunctionEvaluator(IExternalFunctionInfo finfo, IScalarEvaluatorFactory[] args,
-            IAType[] argTypes, IEvaluatorContext ctx) throws HyracksDataException {
+            IAType[] argTypes, IEvaluatorContext ctx, SourceLocation sourceLoc) throws HyracksDataException {
         super(finfo, args, argTypes, ctx);
+        IApplicationConfig cfg = ctx.getServiceContext().getAppConfig();
+        String pythonPathCmd = cfg.getString(NCConfig.Option.PYTHON_CMD);
+        List<String> pythonArgs = new ArrayList<>();
+        if (pythonPathCmd == null) {
+            //if absolute path to interpreter is not specified, use environmental python
+            pythonPathCmd = "/usr/bin/env";
+            pythonArgs.add("python3");
+        }
+        File pythonPath = new File(pythonPathCmd);
+        List<String> sitePkgs = new ArrayList<>();
+        sitePkgs.add(SITE_PACKAGES);
+        String[] addlSitePackages =
+                ctx.getServiceContext().getAppConfig().getStringArray((NCConfig.Option.PYTHON_ADDITIONAL_PACKAGES));
+        sitePkgs.addAll(Arrays.asList(addlSitePackages));
+        if (cfg.getBoolean(NCConfig.Option.PYTHON_USE_BUNDLED_MSGPACK)) {
+            sitePkgs.add("ipc" + File.separator + SITE_PACKAGES + File.separator);
+        }
+        String[] pythonArgsRaw = ctx.getServiceContext().getAppConfig().getStringArray(NCConfig.Option.PYTHON_ARGS);
+        if (pythonArgsRaw != null) {
+            pythonArgs.addAll(Arrays.asList(pythonArgsRaw));
+        }
+        StringBuilder sitePackagesPathBuilder = new StringBuilder();
+        for (int i = 0; i < sitePkgs.size() - 1; i++) {
+            sitePackagesPathBuilder.append(sitePkgs.get(i));
+            sitePackagesPathBuilder.append(File.pathSeparator);
+        }
+        sitePackagesPathBuilder.append(sitePkgs.get(sitePkgs.size() - 1));
 
-        File pythonPath = new File(ctx.getServiceContext().getAppConfig().getString(NCConfig.Option.PYTHON_HOME));
-        this.pointableAllocator = new PointableAllocator();
-        this.pointableVisitor = new JObjectPointableVisitor();
-
-        DataverseName dataverseName = FunctionSignature.getDataverseName(finfo.getFunctionIdentifier());
         try {
-            libraryEvaluator = PythonLibraryEvaluator.getInstance(dataverseName, finfo, libraryManager, pythonPath,
-                    ctx.getTaskContext());
-        } catch (IOException | InterruptedException e) {
+            libraryEvaluator = PythonLibraryEvaluator.getInstance(finfo, libraryManager, router, ipcSys, pythonPath,
+                    ctx.getTaskContext(), sitePackagesPathBuilder.toString(), pythonArgs, ctx.getWarningCollector(),
+                    sourceLoc);
+        } catch (IOException | AsterixException e) {
             throw new HyracksDataException("Failed to initialize Python", e);
         }
         argValues = new IPointable[args.length];
         for (int i = 0; i < argValues.length; i++) {
             argValues[i] = VoidPointable.FACTORY.createPointable();
         }
-        this.argHolder = new Object[args.length];
+        //TODO: these should be dynamic
+        this.argHolder = ByteBuffer.wrap(new byte[Short.MAX_VALUE * 2]);
+        this.outputWrapper = ByteBuffer.wrap(new byte[Short.MAX_VALUE * 2]);
+        this.evaluatorContext = ctx;
     }
 
     @Override
     public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
+        argHolder.clear();
         for (int i = 0, ln = argEvals.length; i < ln; i++) {
             argEvals[i].evaluate(tuple, argValues[i]);
             try {
@@ -114,10 +137,10 @@
             }
         }
         try {
-            Object res = libraryEvaluator.callPython(argHolder);
+            ByteBuffer res = libraryEvaluator.callPython(argHolder, argTypes.length);
             resultBuffer.reset();
             wrap(res, resultBuffer.getDataOutput());
-        } catch (IOException e) {
+        } catch (Exception e) {
             throw new HyracksDataException("Error evaluating Python UDF", e);
         }
         result.set(resultBuffer.getByteArray(), resultBuffer.getStartOffset(), resultBuffer.getLength());
@@ -125,98 +148,130 @@
 
     private static class PythonLibraryEvaluator extends AbstractStateObject implements IDeallocatable {
         Process p;
-        PyroProxy remoteObj;
         IExternalFunctionInfo finfo;
         ILibraryManager libMgr;
         File pythonHome;
+        PythonIPCProto proto;
+        ExternalFunctionResultRouter router;
+        IPCSystem ipcSys;
+        String module;
+        String clazz;
+        String fn;
+        String sitePkgs;
+        List<String> pythonArgs;
+        TaskAttemptId task;
+        IWarningCollector warningCollector;
+        SourceLocation sourceLoc;
 
         private PythonLibraryEvaluator(JobId jobId, PythonLibraryEvaluatorId evaluatorId, IExternalFunctionInfo finfo,
-                ILibraryManager libMgr, File pythonHome) {
+                ILibraryManager libMgr, File pythonHome, String sitePkgs, List<String> pythonArgs,
+                ExternalFunctionResultRouter router, IPCSystem ipcSys, TaskAttemptId task,
+                IWarningCollector warningCollector, SourceLocation sourceLoc) {
             super(jobId, evaluatorId);
             this.finfo = finfo;
             this.libMgr = libMgr;
             this.pythonHome = pythonHome;
+            this.sitePkgs = sitePkgs;
+            this.pythonArgs = pythonArgs;
+            this.router = router;
+            this.task = task;
+            this.ipcSys = ipcSys;
+            this.warningCollector = warningCollector;
+            this.sourceLoc = sourceLoc;
 
         }
 
-        public void initialize() throws IOException, InterruptedException {
+        public void initialize() throws IOException, AsterixException {
             PythonLibraryEvaluatorId fnId = (PythonLibraryEvaluatorId) id;
             List<String> externalIdents = finfo.getExternalIdentifier();
-            PythonLibrary library = (PythonLibrary) libMgr.getLibrary(fnId.dataverseName, fnId.libraryName);
+            PythonLibrary library = (PythonLibrary) libMgr.getLibrary(fnId.libraryDataverseName, fnId.libraryName);
             String wd = library.getFile().getAbsolutePath();
-            int port = getFreeHighPort();
             String packageModule = externalIdents.get(0);
-            String clazz = "None";
+            String clazz;
             String fn;
-            if (externalIdents.size() > 2) {
-                clazz = externalIdents.get(1);
-                fn = externalIdents.get(2);
+            String externalIdent1 = externalIdents.get(1);
+            int idx = externalIdent1.lastIndexOf('.');
+            if (idx >= 0) {
+                clazz = externalIdent1.substring(0, idx);
+                fn = externalIdent1.substring(idx + 1);
             } else {
-                fn = externalIdents.get(1);
+                clazz = "None";
+                fn = externalIdent1;
             }
-            ProcessBuilder pb = new ProcessBuilder(pythonHome.getAbsolutePath(), PY_NO_SITE_PKGS_OPT,
-                    PY_NO_USER_PKGS_OPT, ENTRYPOINT, Integer.toString(port), packageModule, clazz, fn);
+            this.fn = fn;
+            this.clazz = clazz;
+            this.module = packageModule;
+            int port = ipcSys.getSocketAddress().getPort();
+            List<String> args = new ArrayList<>();
+            args.add(pythonHome.getAbsolutePath());
+            args.addAll(pythonArgs);
+            args.add(ENTRYPOINT);
+            args.add(InetAddress.getLoopbackAddress().getHostAddress());
+            args.add(Integer.toString(port));
+            args.add(sitePkgs);
+            ProcessBuilder pb = new ProcessBuilder(args.toArray(new String[0]));
             pb.directory(new File(wd));
-            pb.environment().clear();
-            pb.inheritIO();
             p = pb.start();
-            remoteObj = new PyroProxy("127.0.0.1", port, "nextTuple");
-            waitForPython();
+            proto = new PythonIPCProto(p.getOutputStream(), router, ipcSys);
+            proto.start();
+            proto.helo();
+            proto.init(packageModule, clazz, fn);
         }
 
-        Object callPython(Object[] arguments) throws IOException {
-            return remoteObj.call("nextTuple", arguments);
+        ByteBuffer callPython(ByteBuffer arguments, int numArgs) throws Exception {
+            ByteBuffer ret = null;
+            try {
+                ret = proto.call(arguments, numArgs);
+            } catch (AsterixException e) {
+                warningCollector
+                        .warn(WarningUtil.forAsterix(sourceLoc, ErrorCode.EXTERNAL_UDF_EXCEPTION, e.getMessage()));
+            }
+            return ret;
         }
 
         @Override
         public void deallocate() {
-            p.destroyForcibly();
+            if (p != null) {
+                boolean dead = false;
+                try {
+                    p.destroy();
+                    dead = p.waitFor(100, TimeUnit.MILLISECONDS);
+                } catch (InterruptedException e) {
+                    //gonna kill it anyway
+                }
+                if (!dead) {
+                    p.destroyForcibly();
+                }
+            }
         }
 
-        private static PythonLibraryEvaluator getInstance(DataverseName dataverseName, IExternalFunctionInfo finfo,
-                ILibraryManager libMgr, File pythonHome, IHyracksTaskContext ctx)
-                throws IOException, InterruptedException {
-            PythonLibraryEvaluatorId evaluatorId = new PythonLibraryEvaluatorId(dataverseName, finfo.getLibrary());
+        private static PythonLibraryEvaluator getInstance(IExternalFunctionInfo finfo, ILibraryManager libMgr,
+                ExternalFunctionResultRouter router, IPCSystem ipcSys, File pythonHome, IHyracksTaskContext ctx,
+                String sitePkgs, List<String> pythonArgs, IWarningCollector warningCollector, SourceLocation sourceLoc)
+                throws IOException, AsterixException {
+            PythonLibraryEvaluatorId evaluatorId =
+                    new PythonLibraryEvaluatorId(finfo.getLibraryDataverseName(), finfo.getLibraryName());
             PythonLibraryEvaluator evaluator = (PythonLibraryEvaluator) ctx.getStateObject(evaluatorId);
             if (evaluator == null) {
                 evaluator = new PythonLibraryEvaluator(ctx.getJobletContext().getJobId(), evaluatorId, finfo, libMgr,
-                        pythonHome);
-                evaluator.initialize();
+                        pythonHome, sitePkgs, pythonArgs, router, ipcSys, ctx.getTaskAttemptId(), warningCollector,
+                        sourceLoc);
                 ctx.registerDeallocatable(evaluator);
+                evaluator.initialize();
                 ctx.setStateObject(evaluator);
             }
             return evaluator;
         }
-
-        private int getFreeHighPort() throws IOException {
-            int port;
-            try (ServerSocket socket = new ServerSocket(0)) {
-                socket.setReuseAddress(true);
-                port = socket.getLocalPort();
-            }
-            return port;
-        }
-
-        private void waitForPython() throws IOException, InterruptedException {
-            for (int i = 0; i < 100; i++) {
-                try {
-                    remoteObj.call("ping");
-                    break;
-                } catch (ConnectException e) {
-                    Thread.sleep(100);
-                }
-            }
-        }
     }
 
     private static final class PythonLibraryEvaluatorId {
 
-        private final DataverseName dataverseName;
+        private final DataverseName libraryDataverseName;
 
         private final String libraryName;
 
-        private PythonLibraryEvaluatorId(DataverseName dataverseName, String libraryName) {
-            this.dataverseName = Objects.requireNonNull(dataverseName);
+        private PythonLibraryEvaluatorId(DataverseName libraryDataverseName, String libraryName) {
+            this.libraryDataverseName = Objects.requireNonNull(libraryDataverseName);
             this.libraryName = Objects.requireNonNull(libraryName);
         }
 
@@ -227,86 +282,42 @@
             if (o == null || getClass() != o.getClass())
                 return false;
             PythonLibraryEvaluatorId that = (PythonLibraryEvaluatorId) o;
-            return dataverseName.equals(that.dataverseName) && libraryName.equals(that.libraryName);
+            return libraryDataverseName.equals(that.libraryDataverseName) && libraryName.equals(that.libraryName);
         }
 
         @Override
         public int hashCode() {
-            return Objects.hash(dataverseName, libraryName);
+            return Objects.hash(libraryDataverseName, libraryName);
         }
     }
 
     private void setArgument(int index, IValueReference valueReference) throws IOException {
-        IVisitablePointable pointable;
-        IJObject jobj;
         IAType type = argTypes[index];
-        TypeInfo info;
-        switch (type.getTypeTag()) {
-            case OBJECT:
-                pointable = pointableAllocator.allocateRecordValue(type);
-                pointable.set(valueReference);
-                info = getTypeInfo(type);
-                jobj = pointableVisitor.visit((ARecordVisitablePointable) pointable, info);
-                break;
-            case ARRAY:
-            case MULTISET:
-                pointable = pointableAllocator.allocateListValue(type);
-                pointable.set(valueReference);
-                info = getTypeInfo(type);
-                jobj = pointableVisitor.visit((AListVisitablePointable) pointable, info);
-                break;
+        ATypeTag tag = type.getTypeTag();
+        switch (tag) {
             case ANY:
                 TaggedValuePointable pointy = TaggedValuePointable.FACTORY.createPointable();
                 pointy.set(valueReference);
                 ATypeTag rtTypeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(pointy.getTag());
                 IAType rtType = TypeTagUtil.getBuiltinTypeByTag(rtTypeTag);
-                info = getTypeInfo(rtType);
-                switch (rtTypeTag) {
-                    case OBJECT:
-                        pointable = pointableAllocator.allocateRecordValue(rtType);
-                        pointable.set(valueReference);
-                        jobj = pointableVisitor.visit((ARecordVisitablePointable) pointable, info);
-                        break;
-                    case ARRAY:
-                    case MULTISET:
-                        pointable = pointableAllocator.allocateListValue(rtType);
-                        pointable.set(valueReference);
-                        jobj = pointableVisitor.visit((AListVisitablePointable) pointable, info);
-                        break;
-                    default:
-                        pointable = pointableAllocator.allocateFieldValue(rtType);
-                        pointable.set(valueReference);
-                        jobj = pointableVisitor.visit((AFlatValuePointable) pointable, info);
-                        break;
-                }
+                MessagePackerFromADM.pack(valueReference, rtType, argHolder);
                 break;
             default:
-                pointable = pointableAllocator.allocateFieldValue(type);
-                pointable.set(valueReference);
-                info = getTypeInfo(type);
-                jobj = pointableVisitor.visit((AFlatValuePointable) pointable, info);
+                MessagePackerFromADM.pack(valueReference, type, argHolder);
                 break;
         }
-        argHolder[index] = jobj.getValueGeneric();
     }
 
-    private TypeInfo getTypeInfo(IAType type) {
-        TypeInfo typeInfo = infoPool.get(type);
-        if (typeInfo == null) {
-            typeInfo = new TypeInfo(reflectingPool, type, type.getTypeTag());
-            infoPool.put(type, typeInfo);
+    private void wrap(ByteBuffer resultWrapper, DataOutput out) throws HyracksDataException {
+        //TODO: output wrapper needs to grow with result wrapper
+        outputWrapper.clear();
+        outputWrapper.position(0);
+        MessageUnpackerToADM.unpack(resultWrapper, outputWrapper, true);
+        try {
+            out.write(outputWrapper.array(), 0, outputWrapper.position() + outputWrapper.arrayOffset());
+        } catch (IOException e) {
+            throw new HyracksDataException(e.getMessage());
         }
-        return typeInfo;
-    }
 
-    private void wrap(Object o, DataOutput out) throws HyracksDataException {
-        Class concrete = o.getClass();
-        IAType asxConv = JObject.convertType(concrete);
-        IJObject res = reflectingPool.allocate(asxConv);
-        if (res instanceof JComplexObject) {
-            ((JComplexObject) res).setPool(reflectingPool);
-        }
-        res.setValueGeneric(o);
-        res.serialize(out, true);
     }
 }
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
index 5f6e1eb..d1b2685 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
@@ -67,14 +67,14 @@
         this.outputProvider = outputProvider;
         this.pointableVisitor = new JObjectPointableVisitor();
         this.pointableAllocator = new PointableAllocator();
-        this.arguments = new IJObject[finfo.getArgumentList().size()];
+        this.arguments = new IJObject[finfo.getParameterTypes().size()];
         int index = 0;
-        for (IAType param : finfo.getArgumentList()) {
+        for (IAType param : finfo.getParameterTypes()) {
             this.arguments[index++] = objectPool.allocate(param);
         }
         this.resultHolder = objectPool.allocate(finfo.getReturnType());
         this.poolTypeInfo = new HashMap<>();
-        this.parameters = finfo.getParams();
+        this.parameters = finfo.getResources();
         this.argTypes = argTypes;
 
     }
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessagePackerFromADM.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessagePackerFromADM.java
new file mode 100644
index 0000000..383b2f1
--- /dev/null
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessagePackerFromADM.java
@@ -0,0 +1,359 @@
+/**
+ * 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.external.library.msgpack;
+
+import static org.msgpack.core.MessagePack.Code.ARRAY32;
+import static org.msgpack.core.MessagePack.Code.FALSE;
+import static org.msgpack.core.MessagePack.Code.FIXARRAY_PREFIX;
+import static org.msgpack.core.MessagePack.Code.FIXSTR_PREFIX;
+import static org.msgpack.core.MessagePack.Code.FLOAT32;
+import static org.msgpack.core.MessagePack.Code.FLOAT64;
+import static org.msgpack.core.MessagePack.Code.INT16;
+import static org.msgpack.core.MessagePack.Code.INT32;
+import static org.msgpack.core.MessagePack.Code.INT64;
+import static org.msgpack.core.MessagePack.Code.INT8;
+import static org.msgpack.core.MessagePack.Code.MAP32;
+import static org.msgpack.core.MessagePack.Code.STR32;
+import static org.msgpack.core.MessagePack.Code.TRUE;
+import static org.msgpack.core.MessagePack.Code.UINT16;
+import static org.msgpack.core.MessagePack.Code.UINT32;
+import static org.msgpack.core.MessagePack.Code.UINT64;
+import static org.msgpack.core.MessagePack.Code.UINT8;
+
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.AbstractCollectionType;
+import org.apache.asterix.om.types.IAType;
+import org.apache.asterix.om.types.TypeTagUtil;
+import org.apache.asterix.om.utils.NonTaggedFormatUtil;
+import org.apache.asterix.om.utils.RecordUtil;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
+import org.apache.hyracks.data.std.primitive.BytePointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
+
+public class MessagePackerFromADM {
+
+    private static final int TYPE_TAG_SIZE = 1;
+    private static final int TYPE_SIZE = 1;
+    private static final int LENGTH_SIZE = 4;
+    private static final int ITEM_COUNT_SIZE = 4;
+    private static final int ITEM_OFFSET_SIZE = 4;
+
+    public static void pack(IValueReference ptr, IAType type, ByteBuffer out) throws HyracksDataException {
+        pack(ptr.getByteArray(), ptr.getStartOffset(), type, true, out);
+    }
+
+    public static void pack(byte[] ptr, int offs, IAType type, boolean tagged, ByteBuffer out)
+            throws HyracksDataException {
+        int relOffs = tagged ? offs + 1 : offs;
+        ATypeTag tag = type.getTypeTag();
+        switch (tag) {
+            case STRING:
+                packStr(ptr, relOffs, out);
+                break;
+            case BOOLEAN:
+                if (BooleanPointable.getBoolean(ptr, relOffs)) {
+                    out.put(TRUE);
+                } else {
+                    out.put(FALSE);
+                }
+                break;
+            case TINYINT:
+                packByte(out, BytePointable.getByte(ptr, relOffs));
+                break;
+            case SMALLINT:
+                packShort(out, ShortPointable.getShort(ptr, relOffs));
+                break;
+            case INTEGER:
+                packInt(out, IntegerPointable.getInteger(ptr, relOffs));
+                break;
+            case BIGINT:
+                packLong(out, LongPointable.getLong(ptr, relOffs));
+                break;
+            case FLOAT:
+                packFloat(out, FloatPointable.getFloat(ptr, relOffs));
+                break;
+            case DOUBLE:
+                packDouble(out, DoublePointable.getDouble(ptr, relOffs));
+                break;
+            case ARRAY:
+            case MULTISET:
+                packArray(ptr, offs, type, out);
+                break;
+            case OBJECT:
+                packObject(ptr, offs, type, out);
+                break;
+            default:
+                throw new IllegalArgumentException("NYI");
+        }
+    }
+
+    public static byte minPackPosLong(ByteBuffer out, long in) {
+        if (in < 127) {
+            packFixPos(out, (byte) in);
+            return 1;
+        } else if (in < Byte.MAX_VALUE) {
+            out.put(UINT8);
+            out.put((byte) in);
+            return 2;
+        } else if (in < Short.MAX_VALUE) {
+            out.put(UINT16);
+            out.putShort((short) in);
+            return 3;
+        } else if (in < Integer.MAX_VALUE) {
+            out.put(UINT32);
+            out.putInt((int) in);
+            return 5;
+        } else {
+            out.put(UINT64);
+            out.putLong(in);
+            return 9;
+        }
+    }
+
+    public static void packByte(ByteBuffer out, byte in) {
+        out.put(INT8);
+        out.put(in);
+    }
+
+    public static void packShort(ByteBuffer out, short in) {
+        out.put(INT16);
+        out.putShort(in);
+    }
+
+    public static void packInt(ByteBuffer out, int in) {
+        out.put(INT32);
+        out.putInt(in);
+
+    }
+
+    public static void packLong(ByteBuffer out, long in) {
+        out.put(INT64);
+        out.putLong(in);
+    }
+
+    public static void packFloat(ByteBuffer out, float in) {
+        out.put(FLOAT32);
+        out.putFloat(in);
+    }
+
+    public static void packDouble(ByteBuffer out, double in) {
+        out.put(FLOAT64);
+        out.putDouble(in);
+    }
+
+    public static void packFixPos(ByteBuffer out, byte in) {
+        byte mask = (byte) (1 << 7);
+        if ((in & mask) != 0) {
+            throw new IllegalArgumentException("fixint7 must be positive");
+        }
+        out.put(in);
+    }
+
+    public static void packFixStr(ByteBuffer buf, String in) {
+        byte[] strBytes = in.getBytes(Charset.forName("UTF-8"));
+        if (strBytes.length > 31) {
+            throw new IllegalArgumentException("fixstr cannot be longer than 31");
+        }
+        buf.put((byte) (FIXSTR_PREFIX + strBytes.length));
+        buf.put(strBytes);
+    }
+
+    public static void packStr(ByteBuffer out, String in) {
+        out.put(STR32);
+        byte[] strBytes = in.getBytes(Charset.forName("UTF-8"));
+        out.putInt(strBytes.length);
+        out.put(strBytes);
+    }
+
+    private static void packStr(byte[] in, int offs, ByteBuffer out) {
+        out.put(STR32);
+        //TODO: tagged/untagged. closed support is borked so always tagged rn
+        String str = UTF8StringUtil.toString(in, offs);
+        byte[] strBytes = str.getBytes(Charset.forName("UTF-8"));
+        out.putInt(strBytes.length);
+        out.put(strBytes);
+    }
+
+    public static void packStr(String str, ByteBuffer out) {
+        out.put(STR32);
+        byte[] strBytes = str.getBytes(Charset.forName("UTF-8"));
+        out.putInt(strBytes.length);
+        out.put(strBytes);
+    }
+
+    private static void packArray(byte[] in, int offs, IAType type, ByteBuffer out) throws HyracksDataException {
+        //TODO: - could optimize to pack fixarray/array16 for small arrays
+        //      - this code is basically a static version of AListPointable, could be deduped
+        AbstractCollectionType collType = (AbstractCollectionType) type;
+        out.put(ARRAY32);
+        int lenOffs = offs + TYPE_TAG_SIZE + TYPE_SIZE;
+        int itemCtOffs = LENGTH_SIZE + lenOffs;
+        int itemCt = IntegerPointable.getInteger(in, itemCtOffs);
+        boolean fixType = NonTaggedFormatUtil.isFixedSizedCollection(type);
+        out.putInt(itemCt);
+        for (int i = 0; i < itemCt; i++) {
+            if (fixType) {
+                int itemOffs = itemCtOffs + ITEM_COUNT_SIZE + (i
+                        * NonTaggedFormatUtil.getFieldValueLength(in, 0, collType.getItemType().getTypeTag(), false));
+                pack(in, itemOffs, collType.getItemType(), false, out);
+            } else {
+                int itemOffs =
+                        offs + IntegerPointable.getInteger(in, itemCtOffs + ITEM_COUNT_SIZE + (i * ITEM_OFFSET_SIZE));
+                ATypeTag tag = ATypeTag.VALUE_TYPE_MAPPING[BytePointable.getByte(in, itemOffs)];
+                pack(in, itemOffs, TypeTagUtil.getBuiltinTypeByTag(tag), true, out);
+            }
+        }
+    }
+
+    private static void packObject(byte[] in, int offs, IAType type, ByteBuffer out) throws HyracksDataException {
+        ARecordType recType = (ARecordType) type;
+        out.put(MAP32);
+        int fieldCt = recType.getFieldNames().length + RecordUtils.getOpenFieldCount(in, offs, recType);
+        out.putInt(fieldCt);
+        for (int i = 0; i < recType.getFieldNames().length; i++) {
+            String field = recType.getFieldNames()[i];
+            IAType fieldType = RecordUtils.getClosedFieldType(recType, i);
+            packStr(field, out);
+            pack(in, RecordUtils.getClosedFieldOffset(in, offs, recType, i), fieldType, false, out);
+        }
+        if (RecordUtils.isExpanded(in, offs, recType)) {
+            for (int i = 0; i < RecordUtils.getOpenFieldCount(in, offs, recType); i++) {
+                packStr(in, RecordUtils.getOpenFieldNameOffset(in, offs, recType, i), out);
+                ATypeTag tag = ATypeTag.VALUE_TYPE_MAPPING[RecordUtils.getOpenFieldTag(in, offs, recType, i)];
+                pack(in, RecordUtils.getOpenFieldValueOffset(in, offs, recType, i),
+                        TypeTagUtil.getBuiltinTypeByTag(tag), true, out);
+            }
+        }
+
+    }
+
+    public static void packFixArrayHeader(ByteBuffer buf, byte numObj) {
+        buf.put((byte) (FIXARRAY_PREFIX + (0x0F & numObj)));
+    }
+
+    private static class RecordUtils {
+
+        static final int TAG_SIZE = 1;
+        static final int RECORD_LENGTH_SIZE = 4;
+        static final int EXPANDED_SIZE = 1;
+        static final int OPEN_OFFSET_SIZE = 4;
+        static final int CLOSED_COUNT_SIZE = 4;
+        static final int FIELD_OFFSET_SIZE = 4;
+        static final int OPEN_COUNT_SIZE = 4;
+        private static final int OPEN_FIELD_HASH_SIZE = 4;
+        private static final int OPEN_FIELD_OFFSET_SIZE = 4;
+        private static final int OPEN_FIELD_HEADER = OPEN_FIELD_HASH_SIZE + OPEN_FIELD_OFFSET_SIZE;
+
+        private static boolean isOpen(ARecordType recordType) {
+            return recordType == null || recordType.isOpen();
+        }
+
+        public static int getLength(byte[] bytes, int start) {
+            return IntegerPointable.getInteger(bytes, start + TAG_SIZE);
+        }
+
+        public static boolean isExpanded(byte[] bytes, int start, ARecordType recordType) {
+            return isOpen(recordType) && BooleanPointable.getBoolean(bytes, start + TAG_SIZE + RECORD_LENGTH_SIZE);
+        }
+
+        public static int getOpenPartOffset(int start, ARecordType recordType) {
+            return start + TAG_SIZE + RECORD_LENGTH_SIZE + (isOpen(recordType) ? EXPANDED_SIZE : 0);
+        }
+
+        public static int getNullBitmapOffset(byte[] bytes, int start, ARecordType recordType) {
+            return getOpenPartOffset(start, recordType) + (isExpanded(bytes, start, recordType) ? OPEN_OFFSET_SIZE : 0)
+                    + CLOSED_COUNT_SIZE;
+        }
+
+        public static int getNullBitmapSize(ARecordType recordType) {
+            return RecordUtil.computeNullBitmapSize(recordType);
+        }
+
+        public static final IAType getClosedFieldType(ARecordType recordType, int fieldId) {
+            IAType aType = recordType.getFieldTypes()[fieldId];
+            if (NonTaggedFormatUtil.isOptional(aType)) {
+                // optional field: add the embedded non-null type tag
+                aType = ((AUnionType) aType).getActualType();
+            }
+            return aType;
+        }
+
+        public static final int getClosedFieldOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            int offset = getNullBitmapOffset(bytes, start, recordType) + getNullBitmapSize(recordType)
+                    + fieldId * FIELD_OFFSET_SIZE;
+            return start + IntegerPointable.getInteger(bytes, offset);
+        }
+
+        public static final int getOpenFieldCount(byte[] bytes, int start, ARecordType recordType) {
+            return isExpanded(bytes, start, recordType)
+                    ? IntegerPointable.getInteger(bytes, getOpenFieldCountOffset(bytes, start, recordType)) : 0;
+        }
+
+        public static int getOpenFieldCountSize(byte[] bytes, int start, ARecordType recordType) {
+            return isExpanded(bytes, start, recordType) ? OPEN_COUNT_SIZE : 0;
+        }
+
+        public static int getOpenFieldCountOffset(byte[] bytes, int start, ARecordType recordType) {
+            return start + IntegerPointable.getInteger(bytes, getOpenPartOffset(start, recordType));
+        }
+
+        public static final int getOpenFieldValueOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return getOpenFieldNameOffset(bytes, start, recordType, fieldId)
+                    + getOpenFieldNameSize(bytes, start, recordType, fieldId);
+        }
+
+        public static int getOpenFieldNameSize(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            int utfleng = UTF8StringUtil.getUTFLength(bytes, getOpenFieldNameOffset(bytes, start, recordType, fieldId));
+            return utfleng + UTF8StringUtil.getNumBytesToStoreLength(utfleng);
+        }
+
+        public static int getOpenFieldNameOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return getOpenFieldOffset(bytes, start, recordType, fieldId);
+        }
+
+        public static final byte getOpenFieldTag(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return bytes[getOpenFieldValueOffset(bytes, start, recordType, fieldId)];
+        }
+
+        public static int getOpenFieldHashOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return getOpenFieldCountOffset(bytes, start, recordType) + getOpenFieldCountSize(bytes, start, recordType)
+                    + fieldId * OPEN_FIELD_HEADER;
+        }
+
+        public static int getOpenFieldOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return start
+                    + IntegerPointable.getInteger(bytes, getOpenFieldOffsetOffset(bytes, start, recordType, fieldId));
+        }
+
+        public static int getOpenFieldOffsetOffset(byte[] bytes, int start, ARecordType recordType, int fieldId) {
+            return getOpenFieldHashOffset(bytes, start, recordType, fieldId) + OPEN_FIELD_HASH_SIZE;
+        }
+    }
+
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessageUnpackerToADM.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessageUnpackerToADM.java
new file mode 100644
index 0000000..fedd1f6
--- /dev/null
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/msgpack/MessageUnpackerToADM.java
@@ -0,0 +1,288 @@
+/**
+ * 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.external.library.msgpack;
+
+import static org.msgpack.core.MessagePack.Code.*;
+
+import java.nio.ByteBuffer;
+
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.hyracks.util.encoding.VarLenIntEncoderDecoder;
+import org.apache.hyracks.util.string.UTF8StringUtil;
+
+public class MessageUnpackerToADM {
+
+    public static void unpack(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        byte tag = NIL;
+        if (in != null) {
+            tag = in.get();
+        }
+        if (isFixStr(tag)) {
+            unpackStr(in, out, (tag ^ FIXSTR_PREFIX), tagged);
+        } else if (isFixInt(tag)) {
+            if (tagged) {
+                out.put(ATypeTag.SERIALIZED_INT8_TYPE_TAG);
+            }
+            if (isPosFixInt(tag)) {
+                out.put(tag);
+            } else if (isNegFixInt(tag)) {
+                out.put(tag);
+            }
+        } else if (isFixedArray(tag)) {
+            unpackArray(in, out, (tag ^ FIXARRAY_PREFIX));
+        } else if (isFixedMap(tag)) {
+            unpackMap(in, out, (tag ^ FIXMAP_PREFIX));
+        } else {
+            switch (tag) {
+                case TRUE:
+                    out.put(ATypeTag.SERIALIZED_BOOLEAN_TYPE_TAG);
+                    out.put((byte) 1);
+                    break;
+                case FALSE:
+                    out.put(ATypeTag.SERIALIZED_BOOLEAN_TYPE_TAG);
+                    out.put((byte) 0);
+                    break;
+                case NIL:
+                    out.put(ATypeTag.SERIALIZED_NULL_TYPE_TAG);
+                    break;
+                case UINT8:
+                    unpackUByte(in, out, tagged);
+                    break;
+                case UINT16:
+                    unpackUShort(in, out, tagged);
+                    break;
+                case UINT32:
+                    unpackUInt(in, out, tagged);
+                    break;
+                case INT8:
+                    unpackByte(in, out, tagged);
+                    break;
+                case INT16:
+                    unpackShort(in, out, tagged);
+                    break;
+                case INT32:
+                    unpackInt(in, out, tagged);
+                    break;
+                case INT64:
+                    unpackLong(in, out, tagged);
+                    break;
+                case FLOAT32:
+                    unpackFloat(in, out, tagged);
+                    break;
+                case FLOAT64:
+                    unpackDouble(in, out, tagged);
+                    break;
+                case STR8:
+                    unpackStr(in, out, Byte.toUnsignedInt(in.get()), tagged);
+                    break;
+                case STR16:
+                    unpackStr(in, out, Short.toUnsignedInt(in.getShort()), tagged);
+                    break;
+                case STR32:
+                    unpackStr(in, out, Integer.toUnsignedLong(in.getInt()), tagged);
+                    break;
+                case ARRAY16:
+                    unpackArray(in, out, Short.toUnsignedInt(in.getShort()));
+                    break;
+                case ARRAY32:
+                    unpackArray(in, out, Integer.toUnsignedLong(in.getInt()));
+                    break;
+                case MAP16:
+                    unpackMap(in, out, Short.toUnsignedInt(in.getShort()));
+                    break;
+                case MAP32:
+                    unpackMap(in, out, (int) Integer.toUnsignedLong(in.getInt()));
+                    break;
+
+                default:
+                    throw new IllegalArgumentException("NYI");
+            }
+        }
+    }
+
+    public static long unpackNextInt(ByteBuffer in) {
+        byte tag = in.get();
+        if (isFixInt(tag)) {
+            if (isPosFixInt(tag)) {
+                return tag;
+            } else if (isNegFixInt(tag)) {
+                return (tag ^ NEGFIXINT_PREFIX);
+            }
+        } else {
+            switch (tag) {
+                case INT8:
+                    return in.get();
+                case UINT8:
+                    return Byte.toUnsignedInt(in.get());
+                case INT16:
+                    return in.getShort();
+                case UINT16:
+                    return Short.toUnsignedInt(in.getShort());
+                case INT32:
+                    return in.getInt();
+                case UINT32:
+                    return Integer.toUnsignedLong(in.getInt());
+                case INT64:
+                    return in.getLong();
+                default:
+                    throw new IllegalArgumentException("NYI");
+            }
+        }
+        return -1;
+    }
+
+    public static void unpackByte(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT8_TYPE_TAG);
+        }
+        out.put(in.get());
+    }
+
+    public static void unpackShort(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT16_TYPE_TAG);
+        }
+        out.putShort(in.getShort());
+    }
+
+    public static void unpackInt(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT32_TYPE_TAG);
+        }
+        out.putInt(in.getInt());
+    }
+
+    public static void unpackLong(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT64_TYPE_TAG);
+        }
+        out.putLong(in.getLong());
+    }
+
+    public static void unpackUByte(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT16_TYPE_TAG);
+        }
+        out.putShort((short) (in.get() & ((short) 0x00FF)));
+    }
+
+    public static void unpackUShort(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT32_TYPE_TAG);
+        }
+        out.putInt(in.getShort() & 0x0000FFFF);
+    }
+
+    public static void unpackUInt(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_INT64_TYPE_TAG);
+        }
+        out.putLong(in.getInt() & 0x00000000FFFFFFFFl);
+    }
+
+    public static void unpackFloat(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_FLOAT_TYPE_TAG);
+        }
+        out.putFloat(in.getFloat());
+
+    }
+
+    public static void unpackDouble(ByteBuffer in, ByteBuffer out, boolean tagged) {
+        if (tagged) {
+            out.put(ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG);
+        }
+        out.putDouble(in.getDouble());
+    }
+
+    public static void unpackArray(ByteBuffer in, ByteBuffer out, long uLen) {
+        if (uLen > Integer.MAX_VALUE) {
+            throw new UnsupportedOperationException("String is too long");
+        }
+        int count = (int) uLen;
+        int offs = out.position();
+        out.put(ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG);
+        out.put(ATypeTag.ANY.serialize());
+        int asxLenPos = out.position();
+        //reserve space
+        out.putInt(-1);
+        out.putInt(count);
+        int slotStartOffs = out.position() + out.arrayOffset();
+        for (int i = 0; i < count; i++) {
+            out.putInt(0xFFFF);
+        }
+        for (int i = 0; i < count; i++) {
+            out.putInt(slotStartOffs + (i * 4), (out.position() - offs));
+            unpack(in, out, true);
+        }
+        int totalLen = out.position() - offs;
+        out.putInt(asxLenPos, totalLen);
+    }
+
+    public static void unpackMap(ByteBuffer in, ByteBuffer out, int count) {
+        //TODO: need to handle typed records. this only produces a completely open record.
+        //hdr size = 6?
+        int startOffs = out.position();
+        out.put(ATypeTag.SERIALIZED_RECORD_TYPE_TAG);
+        int totalSizeOffs = out.position();
+        out.putInt(-1);
+        //isExpanded
+        out.put((byte) 1);
+        int openPartOffs = out.position();
+        out.putInt(-1);
+        //isExpanded, so num of open fields
+        out.putInt(openPartOffs, out.position() - startOffs);
+        out.putInt(count);
+        int offsetAryPos = out.position();
+        int offsetArySz = count * 2;
+        //allocate space for open field offsets
+        for (int i = 0; i < offsetArySz; i++) {
+            out.putInt(0xDEADBEEF);
+        }
+        for (int i = 0; i < count; i++) {
+            int offs = out.position() + out.arrayOffset();
+            int relOffs = offs - startOffs;
+            unpack(in, out, false);
+            int hash = UTF8StringUtil.hash(out.array(), offs);
+            out.putInt(offsetAryPos, hash);
+            offsetAryPos += 4;
+            out.putInt(offsetAryPos, relOffs);
+            offsetAryPos += 4;
+            unpack(in, out, true);
+        }
+        out.putInt(totalSizeOffs, out.position() - startOffs);
+    }
+
+    public static void unpackStr(ByteBuffer in, ByteBuffer out, long uLen, boolean tag) {
+        //TODO: this probably breaks for 3 and 4 byte UTF-8
+        if (tag) {
+            out.put(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
+        }
+        if (Long.compareUnsigned(uLen, Integer.MAX_VALUE) > 0) {
+            throw new UnsupportedOperationException("String is too long");
+        }
+        int len = (int) uLen;
+        int strLen = UTF8StringUtil.getStringLength(in.array(), in.position() + in.arrayOffset(), len);
+        int adv = VarLenIntEncoderDecoder.encode(strLen, out.array(), out.position() + out.arrayOffset());
+        out.position(out.position() + adv);
+        System.arraycopy(in.array(), in.arrayOffset() + in.position(), out.array(), out.arrayOffset() + out.position(),
+                len);
+        out.position(out.position() + len);
+        in.position(in.position() + len);
+    }
+
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaOperatorDescriptor.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaOperatorDescriptor.java
index 74858ce..b6fca04 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaOperatorDescriptor.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaOperatorDescriptor.java
@@ -67,14 +67,19 @@
     private final Map<String, String> feedPolicyProperties;
 
     /**
-     * type for the feed runtime associated with the operator.
+     * Type for the feed runtime associated with the operator.
      * Possible values: COMPUTE, STORE, OTHER
      **/
     private final FeedRuntimeType runtimeType;
 
+    /**
+     * Whether the incoming frame has a message that this operator should handle.
+     **/
+    private final boolean hasMessage;
+
     public FeedMetaOperatorDescriptor(final JobSpecification spec, final FeedConnectionId feedConnectionId,
             final IOperatorDescriptor coreOperatorDescriptor, final Map<String, String> feedPolicyProperties,
-            final FeedRuntimeType runtimeType) {
+            final FeedRuntimeType runtimeType, boolean hasMessage) {
         super(spec, coreOperatorDescriptor.getInputArity(), coreOperatorDescriptor.getOutputArity());
         this.feedConnectionId = feedConnectionId;
         this.feedPolicyProperties = feedPolicyProperties;
@@ -83,6 +88,7 @@
         }
         this.coreOperator = coreOperatorDescriptor;
         this.runtimeType = runtimeType;
+        this.hasMessage = hasMessage;
     }
 
     @Override
@@ -97,7 +103,7 @@
                 break;
             case STORE:
                 nodePushable = new FeedMetaStoreNodePushable(ctx, recordDescProvider, partition, nPartitions,
-                        coreOperator, feedConnectionId, feedPolicyProperties, this);
+                        coreOperator, feedConnectionId, feedPolicyProperties, this, hasMessage);
                 break;
             default:
                 throw new RuntimeDataException(ErrorCode.OPERATORS_FEED_META_OPERATOR_DESCRIPTOR_INVALID_RUNTIME,
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
index 94ae75c..37e589a 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
@@ -51,8 +51,15 @@
 
     private static final Logger LOGGER = LogManager.getLogger();
 
-    /** Runtime node pushable corresponding to the core feed operator **/
-    private AbstractUnaryInputUnaryOutputOperatorNodePushable insertOperator;
+    /**
+     * Whether the incoming frame has a message that this operator should handle
+     **/
+    private final boolean hasMessage;
+
+    /**
+     * Runtime node pushable corresponding to the core feed operator
+     **/
+    private final AbstractUnaryInputUnaryOutputOperatorNodePushable insertOperator;
 
     /**
      * A policy accessor that ensures dyanmic decisions for a feed are taken
@@ -72,10 +79,14 @@
      **/
     private final int partition;
 
-    /** Type associated with the core feed operator **/
+    /**
+     * Type associated with the core feed operator
+     **/
     private final FeedRuntimeType runtimeType = FeedRuntimeType.STORE;
 
-    /** The (singleton) instance of IFeedManager **/
+    /**
+     * The (singleton) instance of IFeedManager
+     **/
     private final ActiveManager feedManager;
 
     private FrameTupleAccessor fta;
@@ -92,10 +103,11 @@
 
     private final long traceCategory;
 
-    public FeedMetaStoreNodePushable(IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider,
-            int partition, int nPartitions, IOperatorDescriptor coreOperator, FeedConnectionId feedConnectionId,
-            Map<String, String> feedPolicyProperties, FeedMetaOperatorDescriptor feedMetaOperatorDescriptor)
-            throws HyracksDataException {
+    FeedMetaStoreNodePushable(IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider, int partition,
+            int nPartitions, IOperatorDescriptor coreOperator, FeedConnectionId feedConnectionId,
+            Map<String, String> feedPolicyProperties, FeedMetaOperatorDescriptor feedMetaOperatorDescriptor,
+            boolean hasMessage) throws HyracksDataException {
+        this.hasMessage = hasMessage;
         this.ctx = ctx;
         this.insertOperator = (AbstractUnaryInputUnaryOutputOperatorNodePushable) ((IActivity) coreOperator)
                 .createPushRuntime(ctx, recordDescProvider, partition, nPartitions);
@@ -104,8 +116,13 @@
         this.connectionId = feedConnectionId;
         this.feedManager = (ActiveManager) ((INcApplicationContext) ctx.getJobletContext().getServiceContext()
                 .getApplicationContext()).getActiveManager();
-        this.message = new VSizeFrame(ctx);
-        TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
+        if (hasMessage) {
+            this.message = new VSizeFrame(ctx);
+            TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
+        } else {
+            this.message = null;
+        }
+
         this.recordDescProvider = recordDescProvider;
         this.opDesc = feedMetaOperatorDescriptor;
         tracer = ctx.getJobletContext().getServiceContext().getTracer();
@@ -147,7 +164,9 @@
     public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
         long tid = tracer.durationB("Ingestion-Store", traceCategory, null);
         try {
-            FeedUtils.processFeedMessage(buffer, message, fta);
+            if (hasMessage) {
+                FeedUtils.processFeedMessage(buffer, message, fta);
+            }
             writer.nextFrame(buffer);
         } catch (Exception e) {
             LOGGER.log(Level.WARN, "Failure Processing a frame at store side", e);
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/LibraryDeployPrepareOperatorDescriptor.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/LibraryDeployPrepareOperatorDescriptor.java
index a576c34..ddf3d66 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/LibraryDeployPrepareOperatorDescriptor.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/LibraryDeployPrepareOperatorDescriptor.java
@@ -20,8 +20,10 @@
 package org.apache.asterix.external.operators;
 
 import static org.apache.asterix.external.library.ExternalLibraryManager.DESCRIPTOR_FILE_NAME;
+import static org.apache.hyracks.control.common.controllers.NCConfig.Option.PYTHON_USE_BUNDLED_MSGPACK;
 
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -160,7 +162,9 @@
                             // shouldn't happen
                             throw new IOException("Unexpected file type: " + fileExt);
                         }
-                        shiv(targetFile, stageDir, contentsDir);
+                        boolean extractMsgPack = ctx.getJobletContext().getServiceContext().getAppConfig()
+                                .getBoolean(PYTHON_USE_BUNDLED_MSGPACK);
+                        shiv(targetFile, stageDir, contentsDir, extractMsgPack);
                         break;
                     default:
                         // shouldn't happen
@@ -284,17 +288,22 @@
                 }
             }
 
-            private void shiv(FileReference sourceFile, FileReference stageDir, FileReference contentsDir)
-                    throws IOException {
-                FileReference pyro4 = stageDir.getChild("pyro4.pyz");
-                writeShim(pyro4);
+            private void shiv(FileReference sourceFile, FileReference stageDir, FileReference contentsDir,
+                    boolean writeMsgpack) throws IOException {
+                FileReference msgpack = stageDir.getChild("msgpack.pyz");
+                if (writeMsgpack) {
+                    writeShim(msgpack, writeMsgpack);
+                    File msgPackFolder = new File(contentsDir.getRelativePath(), "ipc");
+                    FileReference msgPackFolderRef =
+                            new FileReference(contentsDir.getDeviceHandle(), msgPackFolder.getPath());
+                    unzip(msgpack, msgPackFolderRef);
+                    Files.delete(msgpack.getFile().toPath());
+                }
                 unzip(sourceFile, contentsDir);
-                unzip(pyro4, contentsDir);
-                writeShim(contentsDir.getChild("entrypoint.py"));
-                Files.delete(pyro4.getFile().toPath());
+                writeShim(contentsDir.getChild("entrypoint.py"), false);
             }
 
-            private void writeShim(FileReference outputFile) throws IOException {
+            private boolean writeShim(FileReference outputFile, boolean optional) throws IOException {
                 InputStream is = getClass().getClassLoader().getResourceAsStream(outputFile.getFile().getName());
                 if (is == null) {
                     throw new IOException("Classpath does not contain necessary Python resources!");
@@ -304,6 +313,7 @@
                 } finally {
                     is.close();
                 }
+                return true;
             }
 
             private void writeDescriptor(FileReference descFile, LibraryDescriptor desc) throws IOException {
@@ -334,4 +344,4 @@
             }
         };
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
index b70c6ad2..3462b76 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
@@ -23,10 +23,12 @@
 import static org.apache.asterix.external.util.ExternalDataConstants.KEY_QUOTE;
 import static org.apache.asterix.external.util.ExternalDataConstants.KEY_RECORD_END;
 import static org.apache.asterix.external.util.ExternalDataConstants.KEY_RECORD_START;
+import static org.apache.asterix.runtime.evaluators.functions.StringEvaluatorUtils.RESERVED_REGEX_CHARS;
 
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
@@ -523,76 +525,91 @@
     /**
      * Converts the wildcard to proper regex
      *
-     * @param wildcard wildcard pattern to convert
+     * @param pattern wildcard pattern to convert
      *
      * @return regex expression
      */
-    public static String wildcardToRegex(String wildcard) {
-        StringBuilder builder = new StringBuilder(wildcard.length());
-        builder.append('^');
+    public static String patternToRegex(String pattern) {
+        int charPosition = 0;
+        int patternLength = pattern.length();
+        StringBuilder stuffBuilder = new StringBuilder();
+        StringBuilder result = new StringBuilder();
 
-        // This keeps an eye on the presence inside or outside a sequence, everything inside a sequence is a literal
-        // e.g ("*" ===> ".*" while "[*]" ===> "[\*]"
-        boolean outsideBracketSequence = true;
+        while (charPosition < patternLength) {
+            char c = pattern.charAt(charPosition);
+            charPosition++;
 
-        for (int i = 0; i < wildcard.length(); i++) {
-            char c = wildcard.charAt(i);
             switch (c) {
                 case '*':
-                    builder.append(outsideBracketSequence ? "." : "\\").append(c);
+                    result.append(".*");
                     break;
                 case '?':
-                    builder.append(outsideBracketSequence ? "." : "\\?");
+                    result.append(".");
                     break;
                 case '[':
-                    if (outsideBracketSequence) {
-                        outsideBracketSequence = false;
-                        builder.append(c);
-                        if (i + 1 < wildcard.length()) {
-                            if (wildcard.charAt(i + 1) == '!') {
-                                i++;
-                                builder.append('^');
-                            }
+                    int closingBracketPosition = charPosition;
+                    if (closingBracketPosition < patternLength && pattern.charAt(closingBracketPosition) == '!') {
+                        closingBracketPosition++;
+                    }
+
+                    // 2 cases can happen here:
+                    // 1- Empty character class [] which is invalid for java, so treat ] as literal and find another
+                    // closing bracket, if no closing bracket is found, the whole thing is a literal
+                    // 2- Negated empty class [!] converted to [^] which is invalid for java, so treat ] as literal and
+                    // find another closing bracket, if no closing bracket is found, the whole thing is a literal
+                    if (closingBracketPosition < patternLength && pattern.charAt(closingBracketPosition) == ']') {
+                        closingBracketPosition++;
+                    }
+
+                    // No [] and [!] cases, search for the closing bracket
+                    while (closingBracketPosition < patternLength && pattern.charAt(closingBracketPosition) != ']') {
+                        closingBracketPosition++;
+                    }
+
+                    // No closing bracket found (or [] or [!]), escape the opening bracket, treat it as literals
+                    if (closingBracketPosition >= patternLength) {
+                        result.append("\\[");
+                    } else {
+                        // Found closing bracket, get the stuff in between the found the character class ("[" and "]")
+                        String stuff = pattern.substring(charPosition, closingBracketPosition);
+
+                        stuffBuilder.setLength(0);
+                        int stuffCharPos = 0;
+
+                        // If first character in the character class is "!" then convert it to "^"
+                        if (stuff.charAt(0) == '!') {
+                            stuffBuilder.append('^');
+                            stuffCharPos++; // ignore first character when escaping metacharacters next step
                         }
-                    } else {
-                        // escape the open bracket "[" if we are already inside a bracket sequence
-                        builder.append("\\").append(c);
+
+                        for (; stuffCharPos < stuff.length(); stuffCharPos++) {
+                            char stuffChar = stuff.charAt(stuffCharPos);
+                            if (stuffChar != '-' && Arrays.binarySearch(RESERVED_REGEX_CHARS, stuffChar) >= 0) {
+                                stuffBuilder.append("\\");
+                            }
+                            stuffBuilder.append(stuffChar);
+                        }
+
+                        String stuffEscaped = stuffBuilder.toString();
+
+                        // Escape the set operations
+                        stuffEscaped = stuffEscaped.replace("&&", "\\&\\&").replace("~~", "\\~\\~")
+                                .replace("||", "\\|\\|").replace("--", "\\-\\-");
+
+                        result.append("[").append(stuffEscaped).append("]");
+                        charPosition = closingBracketPosition + 1;
                     }
                     break;
-                case ']':
-                    if (outsideBracketSequence) {
-                        // escape if we are outside bracket sequence
-                        builder.append("\\").append(c);
-                    } else {
-                        // Inside bracket, close it and mark as outside bracket
-                        outsideBracketSequence = true;
-                        builder.append(c);
-                    }
-                    break;
-                // escape special regexp-characters
-                case '(':
-                case ')':
-                case '$':
-                case '^':
-                case '.':
-                case '{':
-                case '}':
-                case '|':
-                case '+':
-                case '=':
-                case '<':
-                case '>':
-                case '!':
-                case '\\':
-                    builder.append("\\").append(c);
-                    break;
                 default:
-                    builder.append(c);
+                    if (Arrays.binarySearch(RESERVED_REGEX_CHARS, c) >= 0) {
+                        result.append("\\");
+                    }
+                    result.append(c);
                     break;
             }
         }
-        builder.append('$');
-        return builder.toString();
+
+        return result.toString();
     }
 
     public static class AwsS3 {
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/JoinClause.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/JoinClause.java
deleted file mode 100644
index f0ed087..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/JoinClause.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.lang.aql.clause;
-
-import java.util.List;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.lang.aql.visitor.base.IAQLPlusVisitor;
-import org.apache.asterix.lang.common.base.AbstractClause;
-import org.apache.asterix.lang.common.base.Clause;
-import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
-
-public class JoinClause extends AbstractClause {
-
-    public static enum JoinKind {
-        INNER,
-        LEFT_OUTER
-    }
-
-    private Expression whereExpr;
-    private List<Clause> leftClauses, rightClauses;
-    private final JoinKind kind;
-
-    public JoinClause() {
-        kind = JoinKind.INNER;
-    }
-
-    public JoinClause(JoinKind kind) {
-        this.kind = kind;
-    }
-
-    @Override
-    public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws CompilationException {
-        return ((IAQLPlusVisitor<R, T>) visitor).visitJoinClause(this, arg);
-    }
-
-    @Override
-    public ClauseType getClauseType() {
-        return null;
-    }
-
-    public List<Clause> getLeftClauses() {
-        return leftClauses;
-    }
-
-    public List<Clause> getRightClauses() {
-        return rightClauses;
-    }
-
-    public Expression getWhereExpr() {
-        return whereExpr;
-    }
-
-    public void setLeftClauses(List<Clause> leftClauses) {
-        this.leftClauses = leftClauses;
-    }
-
-    public void setRightClauses(List<Clause> righClauses) {
-        this.rightClauses = righClauses;
-    }
-
-    public void setWhereExpr(Expression whereExpr) {
-        this.whereExpr = whereExpr;
-    }
-
-    public JoinKind getKind() {
-        return kind;
-    }
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/MetaVariableClause.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/MetaVariableClause.java
deleted file mode 100644
index bbf7269..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/clause/MetaVariableClause.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.lang.aql.clause;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.lang.aql.visitor.base.IAQLPlusVisitor;
-import org.apache.asterix.lang.common.base.AbstractClause;
-import org.apache.asterix.lang.common.struct.VarIdentifier;
-import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
-
-public class MetaVariableClause extends AbstractClause {
-    private VarIdentifier var;
-
-    public MetaVariableClause() {
-    }
-
-    public MetaVariableClause(VarIdentifier var) {
-        this.var = var;
-    }
-
-    @Override
-    public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws CompilationException {
-        return ((IAQLPlusVisitor<R, T>) visitor).visitMetaVariableClause(this, arg);
-    }
-
-    @Override
-    public ClauseType getClauseType() {
-        return null;
-    }
-
-    public VarIdentifier getVar() {
-        return var;
-    }
-
-    public void setVar(VarIdentifier var) {
-        this.var = var;
-    }
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/expression/MetaVariableExpr.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/expression/MetaVariableExpr.java
deleted file mode 100644
index fb03312..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/expression/MetaVariableExpr.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.lang.aql.expression;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.lang.aql.visitor.base.IAQLPlusVisitor;
-import org.apache.asterix.lang.common.expression.VariableExpr;
-import org.apache.asterix.lang.common.struct.VarIdentifier;
-import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
-
-public class MetaVariableExpr extends VariableExpr {
-
-    public MetaVariableExpr(VarIdentifier var) {
-        super(var);
-    }
-
-    @Override
-    public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws CompilationException {
-        return ((IAQLPlusVisitor<R, T>) visitor).visitMetaVariableExpr(this, arg);
-    }
-
-    @Override
-    public boolean getIsNewVar() {
-        return false;
-    }
-
-    @Override
-    public Kind getKind() {
-        return Kind.METAVARIABLE_EXPRESSION;
-    }
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AQLRewriterFactory.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AQLRewriterFactory.java
deleted file mode 100644
index 0987d89..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AQLRewriterFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.lang.aql.rewrites;
-
-import org.apache.asterix.lang.common.base.IParserFactory;
-import org.apache.asterix.lang.common.base.IQueryRewriter;
-import org.apache.asterix.lang.common.base.IRewriterFactory;
-import org.apache.asterix.lang.common.base.IStatementRewriter;
-
-public class AQLRewriterFactory implements IRewriterFactory {
-
-    private final IParserFactory parserFactory;
-
-    public AQLRewriterFactory(IParserFactory parserFactory) {
-        this.parserFactory = parserFactory;
-    }
-
-    @Override
-    public IQueryRewriter createQueryRewriter() {
-        return new AqlQueryRewriter(parserFactory);
-    }
-
-    @Override
-    public IStatementRewriter createStatementRewriter() {
-        return new AqlStatementRewriter();
-    }
-
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriter.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriter.java
new file mode 100644
index 0000000..e8b6747
--- /dev/null
+++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriter.java
@@ -0,0 +1,47 @@
+/*
+ * 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.lang.aql.rewrites;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.lang.common.base.IParserFactory;
+import org.apache.asterix.lang.common.base.IReturningStatement;
+import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
+import org.apache.asterix.lang.common.statement.FunctionDecl;
+import org.apache.asterix.lang.common.struct.VarIdentifier;
+import org.apache.asterix.metadata.declared.MetadataProvider;
+
+public final class AqlFunctionBodyRewriter extends AqlQueryRewriter {
+
+    public AqlFunctionBodyRewriter(IParserFactory parserFactory) {
+        super(parserFactory);
+    }
+
+    @Override
+    public void rewrite(List<FunctionDecl> declaredFunctions, IReturningStatement topStatement,
+            MetadataProvider metadataProvider, LangRewritingContext context, boolean inlineUdfs,
+            Collection<VarIdentifier> externalVars) throws CompilationException {
+        setup(declaredFunctions, topStatement, metadataProvider, context);
+        resolveFunctionCalls();
+        inlineDeclaredUdfs();
+    }
+}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriterFactory.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriterFactory.java
new file mode 100644
index 0000000..f14eef9
--- /dev/null
+++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlFunctionBodyRewriterFactory.java
@@ -0,0 +1,44 @@
+/*
+ * 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.lang.aql.rewrites;
+
+import org.apache.asterix.lang.common.base.IParserFactory;
+import org.apache.asterix.lang.common.base.IQueryRewriter;
+import org.apache.asterix.lang.common.base.IRewriterFactory;
+import org.apache.asterix.lang.common.base.IStatementRewriter;
+
+public final class AqlFunctionBodyRewriterFactory implements IRewriterFactory {
+
+    private final IParserFactory parserFactory;
+
+    public AqlFunctionBodyRewriterFactory(IParserFactory parserFactory) {
+        this.parserFactory = parserFactory;
+    }
+
+    @Override
+    public IQueryRewriter createQueryRewriter() {
+        return new AqlFunctionBodyRewriter(parserFactory);
+    }
+
+    @Override
+    public IStatementRewriter createStatementRewriter() {
+        throw new IllegalStateException("There could not be non-query statements inside a function definition.");
+    }
+}
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 369d4c2..53893cb 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
@@ -30,7 +30,7 @@
 import org.apache.asterix.lang.aql.clause.ForClause;
 import org.apache.asterix.lang.aql.expression.FLWOGRExpression;
 import org.apache.asterix.lang.aql.expression.UnionExpr;
-import org.apache.asterix.lang.aql.rewrites.visitor.AqlBuiltinFunctionRewriteVisitor;
+import org.apache.asterix.lang.aql.rewrites.visitor.AqlFunctionCallResolverVisitor;
 import org.apache.asterix.lang.aql.visitor.AQLInlineUdfsVisitor;
 import org.apache.asterix.lang.aql.visitor.base.IAQLVisitor;
 import org.apache.asterix.lang.common.base.Clause;
@@ -49,7 +49,6 @@
 import org.apache.asterix.lang.common.statement.FunctionDecl;
 import org.apache.asterix.lang.common.struct.Identifier;
 import org.apache.asterix.lang.common.struct.VarIdentifier;
-import org.apache.asterix.lang.common.util.CommonFunctionMapUtil;
 import org.apache.asterix.lang.common.util.FunctionUtil;
 import org.apache.asterix.lang.common.visitor.GatherFunctionCallsVisitor;
 import org.apache.asterix.metadata.declared.MetadataProvider;
@@ -69,7 +68,7 @@
         functionParser = new FunctionParser(parserFactory);
     }
 
-    private void setup(List<FunctionDecl> declaredFunctions, IReturningStatement topStatement,
+    protected void setup(List<FunctionDecl> declaredFunctions, IReturningStatement topStatement,
             MetadataProvider metadataProvider, LangRewritingContext context) {
         this.topStatement = topStatement;
         this.context = context;
@@ -85,12 +84,12 @@
         if (topStatement.isTopLevel()) {
             wrapInLets();
         }
+        resolveFunctionCalls();
         inlineDeclaredUdfs();
-        rewriteFunctionName();
         topStatement.setVarCounter(context.getVarCounter().get());
     }
 
-    private void wrapInLets() {
+    protected void wrapInLets() {
         // If the top expression of the main statement is not a FLWOR, it wraps
         // it into a let clause.
         if (topStatement == null) {
@@ -108,15 +107,16 @@
         }
     }
 
-    private void rewriteFunctionName() throws CompilationException {
+    protected void resolveFunctionCalls() throws CompilationException {
         if (topStatement == null) {
             return;
         }
-        AqlBuiltinFunctionRewriteVisitor visitor = new AqlBuiltinFunctionRewriteVisitor();
+        AqlFunctionCallResolverVisitor visitor =
+                new AqlFunctionCallResolverVisitor(metadataProvider, declaredFunctions);
         topStatement.accept(visitor, null);
     }
 
-    private void inlineDeclaredUdfs() throws CompilationException {
+    protected void inlineDeclaredUdfs() throws CompilationException {
         if (topStatement == null) {
             return;
         }
@@ -128,13 +128,12 @@
         List<FunctionDecl> storedFunctionDecls = new ArrayList<>();
         for (Expression topLevelExpr : topStatement.getDirectlyEnclosedExpressions()) {
             storedFunctionDecls.addAll(FunctionUtil.retrieveUsedStoredFunctions(metadataProvider, topLevelExpr, funIds,
-                    null, expr -> getFunctionCalls(expr), functionParser,
-                    (signature, sourceLoc) -> CommonFunctionMapUtil.normalizeBuiltinFunctionSignature(signature)));
+                    null, this::getFunctionCalls, functionParser, metadataProvider.getDefaultDataverseName()));
             declaredFunctions.addAll(storedFunctionDecls);
         }
         if (!declaredFunctions.isEmpty()) {
-            AQLInlineUdfsVisitor visitor = new AQLInlineUdfsVisitor(context, new AQLRewriterFactory(parserFactory),
-                    declaredFunctions, metadataProvider);
+            AQLInlineUdfsVisitor visitor = new AQLInlineUdfsVisitor(context,
+                    new AqlFunctionBodyRewriterFactory(parserFactory), declaredFunctions, metadataProvider);
             while (topStatement.accept(visitor, declaredFunctions)) {
                 // loop until no more changes
             }
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlRewriterFactory.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlRewriterFactory.java
new file mode 100644
index 0000000..c0ce3d3
--- /dev/null
+++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlRewriterFactory.java
@@ -0,0 +1,44 @@
+/*
+ * 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.lang.aql.rewrites;
+
+import org.apache.asterix.lang.common.base.IParserFactory;
+import org.apache.asterix.lang.common.base.IQueryRewriter;
+import org.apache.asterix.lang.common.base.IRewriterFactory;
+import org.apache.asterix.lang.common.base.IStatementRewriter;
+
+public class AqlRewriterFactory implements IRewriterFactory {
+
+    private final IParserFactory parserFactory;
+
+    public AqlRewriterFactory(IParserFactory parserFactory) {
+        this.parserFactory = parserFactory;
+    }
+
+    @Override
+    public IQueryRewriter createQueryRewriter() {
+        return new AqlQueryRewriter(parserFactory);
+    }
+
+    @Override
+    public IStatementRewriter createStatementRewriter() {
+        return new AqlStatementRewriter();
+    }
+
+}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlBuiltinFunctionRewriteVisitor.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlBuiltinFunctionRewriteVisitor.java
deleted file mode 100644
index 5b52ef5..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlBuiltinFunctionRewriteVisitor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.lang.aql.rewrites.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.functions.FunctionSignature;
-import org.apache.asterix.lang.aql.visitor.base.AbstractAqlSimpleExpressionVisitor;
-import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.base.ILangExpression;
-import org.apache.asterix.lang.common.expression.CallExpr;
-import org.apache.asterix.lang.common.util.CommonFunctionMapUtil;
-
-public class AqlBuiltinFunctionRewriteVisitor extends AbstractAqlSimpleExpressionVisitor {
-
-    @Override
-    public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
-        FunctionSignature functionSignature = callExpr.getFunctionSignature();
-        callExpr.setFunctionSignature(CommonFunctionMapUtil.normalizeBuiltinFunctionSignature(functionSignature));
-        List<Expression> newExprList = new ArrayList<>();
-        for (Expression expr : callExpr.getExprList()) {
-            newExprList.add(expr.accept(this, arg));
-        }
-        callExpr.setExprList(newExprList);
-        if (callExpr.hasAggregateFilterExpr()) {
-            callExpr.setAggregateFilterExpr(callExpr.getAggregateFilterExpr().accept(this, arg));
-        }
-        return callExpr;
-    }
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlFunctionCallResolverVisitor.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlFunctionCallResolverVisitor.java
new file mode 100644
index 0000000..32f368b
--- /dev/null
+++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/visitor/AqlFunctionCallResolverVisitor.java
@@ -0,0 +1,62 @@
+/*
+ * 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.lang.aql.rewrites.visitor;
+
+import java.util.List;
+import java.util.Set;
+import java.util.function.BiFunction;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.aql.visitor.base.AbstractAqlSimpleExpressionVisitor;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.statement.FunctionDecl;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.metadata.declared.MetadataProvider;
+
+public class AqlFunctionCallResolverVisitor extends AbstractAqlSimpleExpressionVisitor {
+
+    private final MetadataProvider metadataProvider;
+
+    private final Set<FunctionSignature> declaredFunctions;
+
+    private final BiFunction<String, Integer, FunctionSignature> callExprResolver;
+
+    public AqlFunctionCallResolverVisitor(MetadataProvider metadataProvider, List<FunctionDecl> declaredFunctions) {
+        this.metadataProvider = metadataProvider;
+        this.declaredFunctions = FunctionUtil.getFunctionSignatures(declaredFunctions);
+        this.callExprResolver = createBuiltinFunctionResolver(metadataProvider);
+    }
+
+    @Override
+    public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
+        FunctionSignature fs = FunctionUtil.resolveFunctionCall(callExpr.getFunctionSignature(),
+                callExpr.getSourceLocation(), metadataProvider, declaredFunctions, callExprResolver);
+        callExpr.setFunctionSignature(fs);
+        return super.visit(callExpr, arg);
+    }
+
+    protected BiFunction<String, Integer, FunctionSignature> createBuiltinFunctionResolver(
+            MetadataProvider metadataProvider) {
+        return FunctionUtil.createBuiltinFunctionResolver(metadataProvider);
+    }
+}
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/AbstractAqlSimpleExpressionVisitor.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/AbstractAqlSimpleExpressionVisitor.java
index b8c3470..e23eec9 100644
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/AbstractAqlSimpleExpressionVisitor.java
+++ b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/AbstractAqlSimpleExpressionVisitor.java
@@ -50,6 +50,7 @@
 import org.apache.asterix.lang.common.expression.UnaryExpr;
 import org.apache.asterix.lang.common.expression.VariableExpr;
 import org.apache.asterix.lang.common.statement.FunctionDecl;
+import org.apache.asterix.lang.common.statement.InsertStatement;
 import org.apache.asterix.lang.common.statement.Query;
 import org.apache.asterix.lang.common.struct.QuantifiedPair;
 
@@ -215,6 +216,17 @@
         return null;
     }
 
+    @Override
+    public Expression visit(InsertStatement insertStatement, ILangExpression arg) throws CompilationException {
+        Expression returnExpr = insertStatement.getReturnExpression();
+        if (returnExpr != null) {
+            insertStatement.setReturnExpression(visit(returnExpr, arg));
+        }
+        Query bodyQuery = insertStatement.getQuery();
+        bodyQuery.accept(this, arg);
+        return null;
+    }
+
     protected Expression visit(Expression expr, ILangExpression arg) throws CompilationException {
         return postVisit(preVisit(expr).accept(this, arg));
     }
diff --git a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/IAQLPlusVisitor.java b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/IAQLPlusVisitor.java
deleted file mode 100644
index b0c5464..0000000
--- a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/visitor/base/IAQLPlusVisitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.lang.aql.visitor.base;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.lang.aql.clause.JoinClause;
-import org.apache.asterix.lang.aql.clause.MetaVariableClause;
-import org.apache.asterix.lang.aql.expression.MetaVariableExpr;
-
-public interface IAQLPlusVisitor<R, T> extends IAQLVisitor<R, T> {
-
-    R visitJoinClause(JoinClause c, T arg) throws CompilationException;
-
-    R visitMetaVariableClause(MetaVariableClause c, T arg) throws CompilationException;
-
-    R visitMetaVariableExpr(MetaVariableExpr v, T arg) throws CompilationException;
-}
diff --git a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
index b9a489d..e00e175 100644
--- a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
+++ b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
@@ -291,6 +291,7 @@
         //st.accept(new AQLPrintVisitor(), 0);
     }
 
+    @Override
     public List<Statement> parse() throws CompilationException {
         return parseImpl(new ParseFunction<List<Statement>>() {
             @Override
@@ -300,7 +301,8 @@
         });
     }
 
-    private Expression parseExpression() throws CompilationException {
+    @Override
+    public Expression parseExpression() throws CompilationException {
         return parseImpl(new ParseFunction<Expression>() {
             @Override
             public Expression parse() throws ParseException {
@@ -504,7 +506,6 @@
   Map<String,String> properties = null;
   FunctionSignature appliedFunction = null;
   Pair<List<Integer>, List<List<String>>> primaryKeyFields = null;
-  String nodeGroupName = null;
   Map<String,String> hints = new HashMap<String,String>();
   DatasetDecl dsetDecl = null;
   boolean autogenerated = false;
@@ -517,7 +518,6 @@
     <LEFTPAREN> typeComponents = TypeName() <RIGHTPAREN>
     ifNotExists = IfNotExists()
     <USING> adapterName = AdapterName() properties = Configuration()
-    ( <ON> nodeGroupName = Identifier() )?
     ( <HINTS> hints = Properties() )?
     ( <WITH> withRecord = RecordConstructor() )?
       {
@@ -529,7 +529,6 @@
               nameComponents.second,
               new TypeReferenceExpression(typeComponents),
               null,
-              nodeGroupName != null? new Identifier(nodeGroupName): null,
               hints,
               DatasetType.EXTERNAL,
               edd,
@@ -557,7 +556,6 @@
     ifNotExists = IfNotExists()
     primaryKeyFields = PrimaryKey()
     ( <AUTOGENERATED> { autogenerated = true; } )?
-    ( <ON> nodeGroupName = Identifier() )?
     ( <HINTS> hints = Properties() )?
     ( LOOKAHEAD(2) <WITH> <FILTER> <ON> filterField = NestedField() )?
     ( <WITH> withRecord = RecordConstructor() )?
@@ -565,16 +563,16 @@
         if(filterField!=null && filterField.first!=0){
           throw new ParseException("A filter field can only be a field in the main record of the dataset.");
         }
-        InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second,
+        try{
+          InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second,
                                                           primaryKeyFields.first,
                                                           autogenerated,
+                                                          filterField == null? null : filterField.first,
                                                           filterField == null? null : filterField.second);
-        try{
           dsetDecl = new DatasetDecl(nameComponents.first,
                                    nameComponents.second,
                                    new TypeReferenceExpression(typeComponents),
                                    metaTypeComponents != null ? new TypeReferenceExpression(metaTypeComponents) : null,
-                                   nodeGroupName != null ? new Identifier(nodeGroupName) : null,
                                    hints,
                                    DatasetType.INTERNAL,
                                    idd,
@@ -764,7 +762,7 @@
       for(VarIdentifier v: paramList){
           bodge.add(new Pair<VarIdentifier,TypeExpression>(v,null));
       }
-      return new CreateFunctionStatement(signature, bodge, functionBody, functionBodyExpr, ifNotExists);
+      return new CreateFunctionStatement(signature, bodge, functionBody, functionBodyExpr, false, ifNotExists);
     }
 }
 
@@ -1995,7 +1993,7 @@
   Expression expr = null;
   Identifier ident = null;
   AbstractAccessor fa = null;
-  Expression indexExpr = null;
+  Pair<IndexAccessor.IndexKind, Expression> index = null;
 }
 {
   expr = PrimaryExpr() ( ident = Field()
@@ -2003,10 +2001,10 @@
       fa = (fa == null ? new FieldAccessor(expr, ident)
                        : new FieldAccessor(fa, ident));
     }
-  | indexExpr = Index()
+  | index = Index()
     {
-      fa = (fa == null ? new IndexAccessor(expr, indexExpr)
-                       : new IndexAccessor(fa, indexExpr));
+      fa = (fa == null ? new IndexAccessor(expr, index.first, index.second)
+                       : new IndexAccessor(fa, index.first, index.second));
      }
   )*
     {
@@ -2025,8 +2023,9 @@
     }
 }
 
-Expression Index() throws ParseException:
+Pair<IndexAccessor.IndexKind, Expression> Index() throws ParseException:
 {
+    IndexAccessor.IndexKind kind = null;
     Expression expr = null;
 }
 {
@@ -2040,15 +2039,18 @@
                 throw new ParseException("Index should be an INTEGER");
             }
         }
+        kind = IndexAccessor.IndexKind.ELEMENT;
     }
 
       | <QUES> // ANY
-
+    {
+        kind = IndexAccessor.IndexKind.ANY;
+    }
       )
 
    <RIGHTBRACKET>
     {
-      return expr;
+      return new Pair<IndexAccessor.IndexKind, Expression>(kind, expr);
     }
 }
 
@@ -2363,9 +2365,6 @@
     }
 }
 
-// Note: if you modify this part: "tmp = LetClause() {clauseList.add(tmp);}", please also apply the necessary
-// change to the AQLPlusExtension.jj file since it refers to this string part and may behave incorrectly if this
-// part is modified. For more details, please refer to AQLPlusExtension.jj file.
 Expression FLWOGR() throws ParseException:
 {
     FLWOGRExpression flworg = new FLWOGRExpression();
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParser.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParser.java
index 3f73789..bd05f28 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParser.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParser.java
@@ -30,6 +30,8 @@
 
     List<Statement> parse() throws CompilationException;
 
+    Expression parseExpression() throws CompilationException;
+
     FunctionDecl parseFunctionBody(FunctionSignature signature, List<String> paramNames) throws CompilationException;
 
     /**
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/expression/IndexAccessor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/expression/IndexAccessor.java
index 102c133..73deecd 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/expression/IndexAccessor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/expression/IndexAccessor.java
@@ -25,23 +25,32 @@
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
 
 public class IndexAccessor extends AbstractAccessor {
-    private boolean isAny;
+
+    public enum IndexKind {
+        ELEMENT,
+        ANY,
+        STAR
+    }
+
+    private IndexKind indexKind;
+
     private Expression indexExpr;
 
-    public IndexAccessor(Expression expr, Expression indexExpr) {
+    public IndexAccessor(Expression expr, IndexKind indexKind, Expression indexExpr) {
         super(expr);
-        if (indexExpr == null) {
-            this.isAny = true;
+        if (indexKind != IndexKind.ELEMENT && indexExpr != null) {
+            throw new IllegalArgumentException(indexExpr.toString());
         }
+        this.indexKind = Objects.requireNonNull(indexKind);
         this.indexExpr = indexExpr;
     }
 
-    public boolean isAny() {
-        return isAny;
+    public IndexKind getIndexKind() {
+        return indexKind;
     }
 
-    public void setAny(boolean any) {
-        this.isAny = any;
+    public void setIndexKind(IndexKind indexKind) {
+        this.indexKind = indexKind;
     }
 
     public Expression getIndexExpr() {
@@ -64,7 +73,7 @@
 
     @Override
     public int hashCode() {
-        return 31 * super.hashCode() + Objects.hash(indexExpr, isAny);
+        return 31 * super.hashCode() + Objects.hash(indexKind, indexExpr);
     }
 
     @Override
@@ -76,11 +85,11 @@
             return false;
         }
         IndexAccessor target = (IndexAccessor) object;
-        return super.equals(target) && isAny == target.isAny && Objects.equals(indexExpr, target.indexExpr);
+        return super.equals(target) && indexKind == target.indexKind && Objects.equals(indexExpr, target.indexExpr);
     }
 
     @Override
     public String toString() {
-        return expr + "[" + (isAny ? "?" : indexExpr) + "]";
+        return expr + "[" + indexKind + '(' + indexExpr + ")]";
     }
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/FunctionParser.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/FunctionParser.java
index fec4f50..52f8a16 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/FunctionParser.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/FunctionParser.java
@@ -46,6 +46,11 @@
                     function.getLanguage());
         }
         IParser parser = parserFactory.createParser(new StringReader(function.getFunctionBody()));
-        return parser.parseFunctionBody(function.getSignature(), function.getParameterNames());
+        try {
+            return parser.parseFunctionBody(function.getSignature(), function.getParameterNames());
+        } catch (CompilationException e) {
+            throw new CompilationException(ErrorCode.COMPILATION_BAD_FUNCTION_DEFINITION, e, function.getSignature(),
+                    e.getMessage());
+        }
     }
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/AdapterDropStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/AdapterDropStatement.java
index b2733ab..481dbe4 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/AdapterDropStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/AdapterDropStatement.java
@@ -19,17 +19,21 @@
 package org.apache.asterix.lang.common.statement;
 
 import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.external.dataset.adapter.AdapterIdentifier;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.AbstractStatement;
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
 
 public class AdapterDropStatement extends AbstractStatement {
 
-    private final AdapterIdentifier signature;
-    private boolean ifExists;
+    private final DataverseName dataverseName;
 
-    public AdapterDropStatement(AdapterIdentifier signature, boolean ifExists) {
-        this.signature = signature;
+    private final String adapterName;
+
+    private final boolean ifExists;
+
+    public AdapterDropStatement(DataverseName dataverseName, String adapterName, boolean ifExists) {
+        this.dataverseName = dataverseName;
+        this.adapterName = adapterName;
         this.ifExists = ifExists;
     }
 
@@ -38,8 +42,12 @@
         return Kind.ADAPTER_DROP;
     }
 
-    public AdapterIdentifier getAdapterIdentifier() {
-        return signature;
+    public DataverseName getDataverseName() {
+        return dataverseName;
+    }
+
+    public String getAdapterName() {
+        return adapterName;
     }
 
     public boolean getIfExists() {
@@ -55,5 +63,4 @@
     public byte getCategory() {
         return Category.DDL;
     }
-
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateAdapterStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateAdapterStatement.java
index 4741f8b..6e5886c 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateAdapterStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateAdapterStatement.java
@@ -18,28 +18,35 @@
  */
 package org.apache.asterix.lang.common.statement;
 
+import java.util.List;
+
 import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.external.dataset.adapter.AdapterIdentifier;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.AbstractStatement;
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
 
 public class CreateAdapterStatement extends AbstractStatement {
 
-    private final AdapterIdentifier signature;
+    private final DataverseName dataverseName;
 
-    String lang;
-    String libName;
-    String externalIdent;
-    boolean ifNotExists;
+    private final String adapterName;
 
-    public CreateAdapterStatement(AdapterIdentifier signature, String lang, String libName, String externalIdent,
-            boolean ifNotExists) {
-        this.signature = signature;
-        this.lang = lang;
-        this.libName = libName;
-        this.externalIdent = externalIdent;
+    private final DataverseName libraryDataverseName;
+
+    private final String libraryName;
+
+    private final List<String> externalIdentifier;
+
+    private final boolean ifNotExists;
+
+    public CreateAdapterStatement(DataverseName dataverseName, String adapterName, DataverseName libraryDataverseName,
+            String libraryName, List<String> externalIdentifier, boolean ifNotExists) {
+        this.dataverseName = dataverseName;
+        this.adapterName = adapterName;
+        this.libraryDataverseName = libraryDataverseName;
+        this.libraryName = libraryName;
+        this.externalIdentifier = externalIdentifier;
         this.ifNotExists = ifNotExists;
-
     }
 
     @Override
@@ -47,20 +54,28 @@
         return Kind.CREATE_ADAPTER;
     }
 
-    public AdapterIdentifier getAdapterId() {
-        return signature;
+    public DataverseName getDataverseName() {
+        return dataverseName;
     }
 
-    public String getLibName() {
-        return libName;
+    public String getAdapterName() {
+        return adapterName;
     }
 
-    public String getExternalIdent() {
-        return externalIdent;
+    public DataverseName getLibraryDataverseName() {
+        return libraryDataverseName;
     }
 
-    public String getLang() {
-        return lang;
+    public String getLibraryName() {
+        return libraryName;
+    }
+
+    public List<String> getExternalIdentifier() {
+        return externalIdentifier;
+    }
+
+    public boolean getIfNotExists() {
+        return ifNotExists;
     }
 
     @Override
@@ -72,5 +87,4 @@
     public byte getCategory() {
         return Category.DDL;
     }
-
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
index 082665f..baaa2c1 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
@@ -18,12 +18,13 @@
  */
 package org.apache.asterix.lang.common.statement;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.AbstractStatement;
 import org.apache.asterix.lang.common.base.Expression;
 import org.apache.asterix.lang.common.base.Statement;
@@ -33,57 +34,69 @@
 import org.apache.asterix.lang.common.util.ConfigurationUtil;
 import org.apache.asterix.lang.common.util.ExpressionUtils;
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
+import org.apache.asterix.object.base.AdmBooleanNode;
 import org.apache.asterix.object.base.AdmObjectNode;
+import org.apache.asterix.object.base.AdmStringNode;
+import org.apache.asterix.object.base.IAdmNode;
+import org.apache.asterix.om.types.ATypeTag;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 
 public class CreateFunctionStatement extends AbstractStatement {
 
+    private static final String NULLCALL_FIELD_NAME = "null-call";
+    private static final boolean NULLCALL_DEFAULT = false;
+    private static final String DETERMINISTIC_FIELD_NAME = "deterministic";
+    private static final boolean DETERMINISTIC_DEFAULT = true;
+    private static final String RESOURCES_FIELD_NAME = "resources";
+
     private final FunctionSignature signature;
     private final String functionBody;
     private final Expression functionBodyExpression;
-    private final boolean ifNotExists;
     private final List<Pair<VarIdentifier, TypeExpression>> paramList;
     private final TypeExpression returnType;
 
-    private final String lang;
-    private final String libName;
+    private final DataverseName libraryDataverseName;
+    private final String libraryName;
     private final List<String> externalIdentifier;
-    private final Boolean deterministic;
-    private final Boolean nullCall;
-    private final AdmObjectNode resources;
+    private final AdmObjectNode options;
+
+    private final boolean replaceIfExists;
+    private final boolean ifNotExists;
 
     public CreateFunctionStatement(FunctionSignature signature, List<Pair<VarIdentifier, TypeExpression>> paramList,
-            String functionBody, Expression functionBodyExpression, boolean ifNotExists) {
+            String functionBody, Expression functionBodyExpression, boolean replaceIfExists, boolean ifNotExists) {
         this.signature = signature;
         this.functionBody = functionBody;
         this.functionBodyExpression = functionBodyExpression;
-        this.ifNotExists = ifNotExists;
-        this.paramList = requireNullTypes(paramList);
+        this.paramList = requireNullTypes(paramList); // parameter type specification is not allowed for inline functions
         this.returnType = null; // return type specification is not allowed for inline functions
-        this.lang = null;
-        this.libName = null;
+        this.libraryDataverseName = null;
+        this.libraryName = null;
         this.externalIdentifier = null;
-        this.deterministic = null;
-        this.nullCall = null;
-        this.resources = null;
+        this.options = null;
+        this.replaceIfExists = replaceIfExists;
+        this.ifNotExists = ifNotExists;
     }
 
     public CreateFunctionStatement(FunctionSignature signature, List<Pair<VarIdentifier, TypeExpression>> paramList,
-            TypeExpression returnType, boolean deterministic, boolean nullCall, String lang, String libName,
-            List<String> externalIdentifier, RecordConstructor resources, boolean ifNotExists)
+            TypeExpression returnType, DataverseName libraryDataverseName, String libraryName,
+            List<String> externalIdentifier, RecordConstructor options, boolean replaceIfExists, boolean ifNotExists)
             throws CompilationException {
         this.signature = signature;
-        this.ifNotExists = ifNotExists;
         this.paramList = paramList;
         this.returnType = returnType;
-        this.deterministic = deterministic;
-        this.nullCall = nullCall;
-        this.lang = lang;
-        this.libName = libName;
+        this.libraryDataverseName = libraryDataverseName;
+        this.libraryName = libraryName;
         this.externalIdentifier = externalIdentifier;
-        this.resources = resources == null ? null : ExpressionUtils.toNode(resources);
+        this.options = options == null ? null : ExpressionUtils.toNode(options);
         this.functionBody = null;
         this.functionBodyExpression = null;
+        this.replaceIfExists = replaceIfExists;
+        this.ifNotExists = ifNotExists;
+    }
+
+    public boolean getReplaceIfExists() {
+        return replaceIfExists;
     }
 
     public boolean getIfNotExists() {
@@ -123,24 +136,50 @@
         return externalIdentifier;
     }
 
-    public String getLibName() {
-        return libName;
+    public DataverseName getLibraryDataverseName() {
+        return libraryDataverseName;
     }
 
-    public String getLang() {
-        return lang;
+    public String getLibraryName() {
+        return libraryName;
     }
 
-    public Boolean getDeterministic() {
-        return deterministic;
+    public boolean getNullCall() throws CompilationException {
+        Boolean nullCall = getBooleanOption(NULLCALL_FIELD_NAME);
+        return nullCall != null ? nullCall : NULLCALL_DEFAULT;
     }
 
-    public Boolean getNullCall() {
-        return nullCall;
+    public boolean getDeterministic() throws CompilationException {
+        Boolean deterministic = getBooleanOption(DETERMINISTIC_FIELD_NAME);
+        return deterministic != null ? deterministic : DETERMINISTIC_DEFAULT;
+    }
+
+    private Boolean getBooleanOption(String optionName) throws CompilationException {
+        IAdmNode value = getOption(optionName);
+        if (value == null) {
+            return null;
+        }
+        switch (value.getType()) {
+            case BOOLEAN:
+                return ((AdmBooleanNode) value).get();
+            case STRING:
+                return Boolean.parseBoolean(((AdmStringNode) value).get());
+            default:
+                throw new CompilationException(ErrorCode.FIELD_NOT_OF_TYPE, getSourceLocation(), optionName,
+                        ATypeTag.BOOLEAN, value.getType());
+        }
     }
 
     public Map<String, String> getResources() throws CompilationException {
-        return resources != null ? ConfigurationUtil.toProperties(resources) : Collections.emptyMap();
+        IAdmNode value = getOption(RESOURCES_FIELD_NAME);
+        if (value == null) {
+            return null;
+        }
+        if (value.getType() != ATypeTag.OBJECT) {
+            throw new CompilationException(ErrorCode.FIELD_NOT_OF_TYPE, getSourceLocation(), RESOURCES_FIELD_NAME,
+                    ATypeTag.OBJECT, value.getType());
+        }
+        return ConfigurationUtil.toProperties((AdmObjectNode) value);
     }
 
     @Override
@@ -153,6 +192,10 @@
         return Category.DDL;
     }
 
+    private IAdmNode getOption(String optionName) {
+        return options != null ? options.get(optionName) : null;
+    }
+
     private static List<Pair<VarIdentifier, TypeExpression>> requireNullTypes(
             List<Pair<VarIdentifier, TypeExpression>> paramList) {
         for (Pair<VarIdentifier, TypeExpression> p : paramList) {
@@ -162,4 +205,5 @@
         }
         return paramList;
     }
+
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DatasetDecl.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DatasetDecl.java
index c0ad1b8..942e39b 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DatasetDecl.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DatasetDecl.java
@@ -40,7 +40,6 @@
     protected final DataverseName dataverse;
     protected final TypeExpression itemType;
     protected final TypeExpression metaItemType;
-    protected final Identifier nodegroupName;
     protected final DatasetType datasetType;
     protected final IDatasetDetailsDecl datasetDetailsDecl;
     protected final Map<String, String> hints;
@@ -48,13 +47,12 @@
     protected final boolean ifNotExists;
 
     public DatasetDecl(DataverseName dataverse, Identifier name, TypeExpression itemType, TypeExpression metaItemType,
-            Identifier nodeGroupName, Map<String, String> hints, DatasetType datasetType, IDatasetDetailsDecl idd,
-            RecordConstructor withRecord, boolean ifNotExists) throws CompilationException {
+            Map<String, String> hints, DatasetType datasetType, IDatasetDetailsDecl idd, RecordConstructor withRecord,
+            boolean ifNotExists) throws CompilationException {
         this.dataverse = dataverse;
         this.name = name;
         this.itemType = itemType;
         this.metaItemType = metaItemType;
-        this.nodegroupName = nodeGroupName;
         this.hints = hints;
         this.withObjectNode = DatasetDeclParametersUtil.validateAndGetWithObjectNode(withRecord, datasetType);
         this.ifNotExists = ifNotExists;
@@ -86,8 +84,12 @@
         return metaItemType;
     }
 
-    public Identifier getNodegroupName() {
-        return nodegroupName;
+    public String getNodegroupName() {
+        AdmObjectNode nodeGroupObj = (AdmObjectNode) withObjectNode.get(DatasetDeclParametersUtil.NODE_GROUP_NAME);
+        if (nodeGroupObj == null) {
+            return null;
+        }
+        return nodeGroupObj.getOptionalString(DatasetDeclParametersUtil.NODE_GROUP_NAME_PARAMETER_NAME);
     }
 
     private AdmObjectNode getMergePolicyObject() {
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DataverseDropStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DataverseDropStatement.java
index c20bd32..fa6bc4e 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DataverseDropStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/DataverseDropStatement.java
@@ -28,10 +28,16 @@
 
     private DataverseName dataverseName;
     private boolean ifExists;
+    private boolean ifEmpty;
 
     public DataverseDropStatement(DataverseName dataverseName, boolean ifExists) {
+        this(dataverseName, ifExists, false);
+    }
+
+    public DataverseDropStatement(DataverseName dataverseName, boolean ifExists, boolean ifEmpty) {
         this.dataverseName = dataverseName;
         this.ifExists = ifExists;
+        this.ifEmpty = ifEmpty;
     }
 
     @Override
@@ -47,6 +53,10 @@
         return ifExists;
     }
 
+    public boolean getIfEmpty() {
+        return ifEmpty;
+    }
+
     @Override
     public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws CompilationException {
         return visitor.visit(this, arg);
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/FunctionDropStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/FunctionDropStatement.java
index 0496ecc..2c59ea9 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/FunctionDropStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/FunctionDropStatement.java
@@ -27,7 +27,7 @@
 public class FunctionDropStatement extends AbstractStatement {
 
     private final FunctionSignature signature;
-    private boolean ifExists;
+    private final boolean ifExists;
 
     public FunctionDropStatement(FunctionSignature signature, boolean ifExists) {
         this.signature = signature;
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InternalDetailsDecl.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InternalDetailsDecl.java
index f312ddd..3ddd261 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InternalDetailsDecl.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InternalDetailsDecl.java
@@ -20,18 +20,28 @@
 
 import java.util.List;
 
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+
 public class InternalDetailsDecl implements IDatasetDetailsDecl {
     private final List<List<String>> partitioningExprs;
     private final List<Integer> keySourceIndicators;
+    private final Integer filterSourceIndicator;
     private final boolean autogenerated;
     private final List<String> filterField;
 
     public InternalDetailsDecl(List<List<String>> partitioningExpr, List<Integer> keySourceIndicators,
-            boolean autogenerated, List<String> filterField) {
+            boolean autogenerated, Integer filterSourceIndicator, List<String> filterField)
+            throws CompilationException {
         this.partitioningExprs = partitioningExpr;
         this.keySourceIndicators = keySourceIndicators;
         this.autogenerated = autogenerated;
+        if (filterSourceIndicator == null && filterField != null
+                || filterSourceIndicator != null && filterField == null) {
+            throw new CompilationException(ErrorCode.INCONSISTENT_FILTER_INDICATOR);
+        }
         this.filterField = filterField;
+        this.filterSourceIndicator = filterSourceIndicator;
     }
 
     public List<List<String>> getPartitioningExprs() {
@@ -50,4 +60,7 @@
         return filterField;
     }
 
+    public Integer getFilterSourceIndicator() {
+        return filterSourceIndicator;
+    }
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/LibraryDropStatement.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/LibraryDropStatement.java
index 09ea3a8..ae8e90c 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/LibraryDropStatement.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/LibraryDropStatement.java
@@ -29,9 +29,12 @@
     private final DataverseName dataverseName;
     private final String libraryName;
 
-    public LibraryDropStatement(DataverseName dataverseName, String libraryName) {
+    private final boolean ifExists;
+
+    public LibraryDropStatement(DataverseName dataverseName, String libraryName, boolean ifExists) {
         this.dataverseName = dataverseName;
         this.libraryName = libraryName;
+        this.ifExists = ifExists;
     }
 
     public DataverseName getDataverseName() {
@@ -42,6 +45,10 @@
         return libraryName;
     }
 
+    public boolean getIfExists() {
+        return ifExists;
+    }
+
     @Override
     public Kind getKind() {
         return Kind.LIBRARY_DROP;
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
index 0d74272..28a50b1 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java
@@ -22,9 +22,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.asterix.common.functions.FunctionSignature;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-
 public class CommonFunctionMapUtil {
 
     // Maps from a function name to an another internal function name (i.e., AsterixDB internal name).
@@ -174,26 +171,6 @@
 
     }
 
-    /**
-     * Maps a user invoked function signature to a builtin internal function signature if possible.
-     *
-     * @param fs,
-     *            the signature of an user typed function.
-     * @return the corresponding system internal function signature if it exists, otherwise
-     *         the input function signature.
-     */
-    public static FunctionSignature normalizeBuiltinFunctionSignature(FunctionSignature fs) {
-        String name = fs.getName();
-        String lowerCaseName = name.toLowerCase();
-        String mappedName = getFunctionMapping(lowerCaseName);
-        if (mappedName != null) {
-            return new FunctionSignature(fs.getDataverseName(), mappedName, fs.getArity());
-        }
-        String understoreName = lowerCaseName.replace('_', '-');
-        FunctionSignature newFs = new FunctionSignature(fs.getDataverseName(), understoreName, fs.getArity());
-        return BuiltinFunctions.isBuiltinCompilerFunction(newFs, true) ? newFs : fs;
-    }
-
     public static String getFunctionMapping(String alias) {
         return FUNCTION_NAME_MAP.get(alias);
     }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
index 52285d9..552ca39 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
@@ -52,6 +52,12 @@
     public static final String STORAGE_BLOCK_COMPRESSION_SCHEME_PARAMETER_NAME = "scheme";
 
     /* ***********************************************
+     * Node Group Parameters
+     * ***********************************************
+     */
+    public static final String NODE_GROUP_NAME = "node-group";
+    public static final String NODE_GROUP_NAME_PARAMETER_NAME = "name";
+    /* ***********************************************
      * Private members
      * ***********************************************
      */
@@ -79,9 +85,11 @@
     }
 
     private static ARecordType getWithObjectType() {
-        final String[] withNames = { MERGE_POLICY_PARAMETER_NAME, STORAGE_BLOCK_COMPRESSION_PARAMETER_NAME };
+        final String[] withNames =
+                { MERGE_POLICY_PARAMETER_NAME, STORAGE_BLOCK_COMPRESSION_PARAMETER_NAME, NODE_GROUP_NAME };
         final IAType[] withTypes = { AUnionType.createUnknownableType(getMergePolicyType()),
-                AUnionType.createUnknownableType(getStorageBlockCompressionType()) };
+                AUnionType.createUnknownableType(getStorageBlockCompressionType()),
+                AUnionType.createUnknownableType(getNodeGroupType()) };
         return new ARecordType("withObject", withNames, withTypes, false);
     }
 
@@ -113,4 +121,10 @@
         final IAType[] schemeType = { BuiltinType.ASTRING };
         return new ARecordType(STORAGE_BLOCK_COMPRESSION_PARAMETER_NAME, schemeName, schemeType, false);
     }
+
+    private static ARecordType getNodeGroupType() {
+        final String[] schemeName = { NODE_GROUP_NAME_PARAMETER_NAME };
+        final IAType[] schemeType = { BuiltinType.ASTRING };
+        return new ARecordType(NODE_GROUP_NAME, schemeName, schemeType, false);
+    }
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DataverseNameUtils.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DataverseNameUtils.java
index 1eb3868..1a3f26a 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DataverseNameUtils.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DataverseNameUtils.java
@@ -76,7 +76,7 @@
         dataverseName.getParts(dataverseNameParts);
         for (int i = 0, ln = dataverseNameParts.size(); i < ln; i++) {
             if (i > 0) {
-                sb.append(DataverseName.SEPARATOR_CHAR);
+                sb.append(DataverseName.CANONICAL_FORM_SEPARATOR_CHAR);
             }
             sb.append(normalize(dataverseNameParts.get(i)));
         }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index 643d2a5..71cd759 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -22,9 +22,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
+import java.util.function.BiFunction;
 
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
@@ -40,11 +42,11 @@
 import org.apache.asterix.lang.common.expression.UnorderedListTypeDefinition;
 import org.apache.asterix.lang.common.parser.FunctionParser;
 import org.apache.asterix.lang.common.statement.FunctionDecl;
-import org.apache.asterix.metadata.MetadataManager;
-import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.BuiltinTypeMap;
+import org.apache.asterix.metadata.entities.Dataverse;
 import org.apache.asterix.metadata.entities.Function;
+import org.apache.asterix.om.functions.BuiltinFunctionInfo;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.TypeSignature;
@@ -54,9 +56,7 @@
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.algebricks.common.utils.Triple;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.functions.AlgebricksBuiltinFunctions;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 
 public class FunctionUtil {
@@ -68,21 +68,11 @@
 
     private static final String FN_DATASET_NAME = BuiltinFunctions.DATASET.getName();
 
-    public static IFunctionInfo getFunctionInfo(FunctionIdentifier fi) {
-        return BuiltinFunctions.getAsterixFunctionInfo(fi);
-    }
-
-    public static IFunctionInfo getFunctionInfo(FunctionSignature fs) {
-        return getFunctionInfo(fs.createFunctionIdentifier());
-    }
-
-    public static IFunctionInfo getBuiltinFunctionInfo(String functionName, int arity) {
-        IFunctionInfo fi =
-                getFunctionInfo(new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity));
-        if (fi == null) {
-            fi = getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity));
-        }
-        return fi;
+    /**
+     * @deprecated use {@link BuiltinFunctions#getBuiltinFunctionInfo(FunctionIdentifier)} instead
+     */
+    public static BuiltinFunctionInfo getFunctionInfo(FunctionIdentifier fi) {
+        return BuiltinFunctions.getBuiltinFunctionInfo(fi);
     }
 
     public static TypeSignature getTypeDependencyFromFunctionParameter(TypeExpression typeExpr,
@@ -116,10 +106,79 @@
         Set<CallExpr> getFunctionCalls(Expression expression) throws CompilationException;
     }
 
-    @FunctionalInterface
-    public interface IFunctionNormalizer {
-        FunctionSignature normalizeBuiltinFunctionSignature(FunctionSignature fs, SourceLocation sourceLoc)
-                throws CompilationException;
+    public static FunctionSignature resolveFunctionCall(FunctionSignature fs, SourceLocation sourceLoc,
+            MetadataProvider metadataProvider, Set<FunctionSignature> declaredFunctions,
+            BiFunction<String, Integer, FunctionSignature> builtinFunctionResolver) throws CompilationException {
+        int arity = fs.getArity();
+        DataverseName dataverse = fs.getDataverseName();
+        if (dataverse == null) {
+            dataverse = metadataProvider.getDefaultDataverseName();
+        }
+        boolean isBuiltinFuncDataverse =
+                dataverse.equals(FunctionConstants.ASTERIX_DV) || dataverse.equals(FunctionConstants.ALGEBRICKS_DV);
+
+        if (!isBuiltinFuncDataverse) {
+            // attempt to resolve to a user-defined function
+            FunctionSignature fsWithDv =
+                    fs.getDataverseName() == null ? new FunctionSignature(dataverse, fs.getName(), arity) : fs;
+            if (declaredFunctions.contains(fsWithDv)) {
+                return fsWithDv;
+            }
+            try {
+                Function function = metadataProvider.lookupUserDefinedFunction(fsWithDv);
+                if (function != null) {
+                    return fsWithDv;
+                }
+            } catch (AlgebricksException e) {
+                throw new CompilationException(ErrorCode.COMPILATION_ERROR, e, sourceLoc, e.getMessage());
+            }
+
+            // fail if the dataverse was specified in the function call but this dataverse does not exist
+            if (fs.getDataverseName() != null) {
+                Dataverse dv;
+                try {
+                    dv = metadataProvider.findDataverse(dataverse);
+                } catch (AlgebricksException e) {
+                    throw new CompilationException(ErrorCode.COMPILATION_ERROR, e, sourceLoc, e.getMessage());
+                }
+                if (dv == null) {
+                    throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, dataverse);
+                }
+            }
+        }
+
+        // attempt to resolve to a built-in function
+        String name = fs.getName().toLowerCase();
+        String mappedName = CommonFunctionMapUtil.getFunctionMapping(name);
+        if (mappedName != null) {
+            name = mappedName;
+        }
+        FunctionSignature fsBuiltin = builtinFunctionResolver.apply(name, arity);
+        if (fsBuiltin == null) {
+            throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, fs.toString(false));
+        }
+        return fsBuiltin;
+    }
+
+    public static BiFunction<String, Integer, FunctionSignature> createBuiltinFunctionResolver(
+            MetadataProvider metadataProvider) {
+        boolean includePrivateFunctions = getImportPrivateFunctions(metadataProvider);
+        return createBuiltinFunctionResolver(includePrivateFunctions);
+    }
+
+    public static BiFunction<String, Integer, FunctionSignature> createBuiltinFunctionResolver(
+            boolean includePrivateFunctions) {
+        return (name, arity) -> {
+            String builtinName = name.replace('_', '-');
+            BuiltinFunctionInfo finfo = BuiltinFunctions.resolveBuiltinFunction(builtinName, arity);
+            if (finfo == null) {
+                return null;
+            }
+            if (!includePrivateFunctions && finfo.isPrivate()) {
+                return null;
+            }
+            return new FunctionSignature(finfo.getFunctionIdentifier());
+        };
     }
 
     /**
@@ -137,92 +196,58 @@
      *            for collecting function calls in the <code>expression</code>
      * @param functionParser,
      *            for parsing stored functions in the string represetnation.
-     * @param functionNormalizer,
-     *            for normalizing function names.
+     * @param defaultDataverse
      * @throws CompilationException
      */
     public static List<FunctionDecl> retrieveUsedStoredFunctions(MetadataProvider metadataProvider,
             Expression expression, List<FunctionSignature> declaredFunctions, List<FunctionDecl> inputFunctionDecls,
-            IFunctionCollector functionCollector, FunctionParser functionParser, IFunctionNormalizer functionNormalizer)
+            IFunctionCollector functionCollector, FunctionParser functionParser, DataverseName defaultDataverse)
             throws CompilationException {
         List<FunctionDecl> functionDecls =
                 inputFunctionDecls == null ? new ArrayList<>() : new ArrayList<>(inputFunctionDecls);
         if (expression == null) {
             return functionDecls;
         }
-        String value = (String) metadataProvider.getConfig().get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS);
-        boolean includePrivateFunctions = (value != null) && Boolean.parseBoolean(value.toLowerCase());
         Set<CallExpr> functionCalls = functionCollector.getFunctionCalls(expression);
         for (CallExpr functionCall : functionCalls) {
-            FunctionSignature signature = functionCall.getFunctionSignature();
-            if (declaredFunctions != null && declaredFunctions.contains(signature)) {
+            FunctionSignature fs = functionCall.getFunctionSignature();
+            FunctionSignature fsWithDv = fs.getDataverseName() != null ? fs
+                    : new FunctionSignature(defaultDataverse, fs.getName(), fs.getArity());
+            if (declaredFunctions != null && declaredFunctions.contains(fsWithDv)) {
                 continue;
             }
-            if (signature.getDataverseName() == null) {
-                signature.setDataverseName(metadataProvider.getDefaultDataverseName());
-            }
-            DataverseName namespace = signature.getDataverseName();
-            // Checks the existence of the referred dataverse.
-            try {
-                if (!namespace.equals(FunctionConstants.ASTERIX_DV)
-                        && !namespace.equals(FunctionConstants.ALGEBRICKS_DV)
-                        && metadataProvider.findDataverse(namespace) == null) {
-                    throw new CompilationException(ErrorCode.COMPILATION_ERROR, functionCall.getSourceLocation(),
-                            "In function call \"" + namespace + "." + signature.getName() + "(...)\", the dataverse \""
-                                    + namespace + "\" cannot be found!");
-                }
-            } catch (AlgebricksException e) {
-                throw new CompilationException(e);
-            }
             Function function;
             try {
-                function = lookupUserDefinedFunctionDecl(metadataProvider.getMetadataTxnContext(), signature);
+                function = metadataProvider.lookupUserDefinedFunction(fsWithDv);
             } catch (AlgebricksException e) {
-                throw new CompilationException(e);
+                throw new CompilationException(ErrorCode.COMPILATION_ERROR, e, functionCall.getSourceLocation(),
+                        e.toString());
             }
-            if (function == null) {
-                FunctionSignature normalizedSignature = functionNormalizer == null ? signature
-                        : functionNormalizer.normalizeBuiltinFunctionSignature(signature,
-                                functionCall.getSourceLocation());
-                if (BuiltinFunctions.isBuiltinCompilerFunction(normalizedSignature, includePrivateFunctions)) {
-                    continue;
-                }
-                StringBuilder messageBuilder = new StringBuilder();
-                if (!functionDecls.isEmpty()) {
-                    messageBuilder.append("function " + functionDecls.get(functionDecls.size() - 1).getSignature()
-                            + " depends upon function " + signature + " which is undefined");
-                } else {
-                    messageBuilder.append("function " + signature + " is not defined");
-                }
-                throw new CompilationException(ErrorCode.COMPILATION_ERROR, functionCall.getSourceLocation(),
-                        messageBuilder.toString());
+            if (function == null || !functionParser.getLanguage().equals(function.getLanguage())) {
+                // the function is either unknown, builtin, or in a different language.
+                // either way we ignore it here because it will be handled by the function inlining rule later
+                continue;
             }
 
-            if (functionParser.getLanguage().equals(function.getLanguage())) {
-                FunctionDecl functionDecl = functionParser.getFunctionDecl(function);
-                if (functionDecl != null) {
-                    if (functionDecls.contains(functionDecl)) {
-                        throw new CompilationException(ErrorCode.COMPILATION_ERROR, functionCall.getSourceLocation(),
-                                "Recursive invocation " + functionDecls.get(functionDecls.size() - 1).getSignature()
-                                        + " <==> " + functionDecl.getSignature());
-                    }
-                    functionDecls.add(functionDecl);
-                    functionDecls = retrieveUsedStoredFunctions(metadataProvider, functionDecl.getFuncBody(),
-                            declaredFunctions, functionDecls, functionCollector, functionParser, functionNormalizer);
-                }
+            FunctionDecl functionDecl = functionParser.getFunctionDecl(function);
+            if (functionDecls.contains(functionDecl)) {
+                throw new CompilationException(ErrorCode.COMPILATION_ERROR, functionCall.getSourceLocation(),
+                        "Recursive invocation " + functionDecls.get(functionDecls.size() - 1).getSignature() + " <==> "
+                                + functionDecl.getSignature());
             }
+            functionDecls.add(functionDecl);
+            functionDecls = retrieveUsedStoredFunctions(metadataProvider, functionDecl.getFuncBody(), declaredFunctions,
+                    functionDecls, functionCollector, functionParser, function.getDataverseName());
         }
         return functionDecls;
     }
 
     public static List<List<Triple<DataverseName, String, String>>> getFunctionDependencies(IQueryRewriter rewriter,
-            Expression expression, MetadataProvider metadataProvider, Collection<TypeSignature> dependentTypes)
-            throws CompilationException {
+            Expression expression, MetadataProvider metadataProvider) throws CompilationException {
         Set<CallExpr> functionCalls = rewriter.getFunctionCalls(expression);
         //Get the List of used functions and used datasets
         List<Triple<DataverseName, String, String>> datasourceDependencies = new ArrayList<>();
         List<Triple<DataverseName, String, String>> functionDependencies = new ArrayList<>();
-        List<Triple<DataverseName, String, String>> typeDependencies = new ArrayList<>(dependentTypes.size());
         for (CallExpr functionCall : functionCalls) {
             FunctionSignature signature = functionCall.getFunctionSignature();
             if (isBuiltinDatasetFunction(signature)) {
@@ -230,18 +255,15 @@
                         metadataProvider.getDefaultDataverseName(), functionCall.getSourceLocation(),
                         ExpressionUtils::getStringLiteral);
                 datasourceDependencies.add(new Triple<>(datasetReference.first, datasetReference.second, null));
-            } else if (!BuiltinFunctions.isBuiltinCompilerFunction(signature, false)) {
+            } else if (BuiltinFunctions.getBuiltinFunctionInfo(signature.createFunctionIdentifier()) == null) {
                 functionDependencies.add(new Triple<>(signature.getDataverseName(), signature.getName(),
                         Integer.toString(signature.getArity())));
             }
         }
-        for (TypeSignature t : dependentTypes) {
-            typeDependencies.add(new Triple<>(t.getDataverseName(), t.getName(), null));
-        }
         List<List<Triple<DataverseName, String, String>>> dependencies = new ArrayList<>(3);
         dependencies.add(datasourceDependencies);
         dependencies.add(functionDependencies);
-        dependencies.add(typeDependencies);
+        dependencies.add(Collections.emptyList());
         return dependencies;
     }
 
@@ -260,14 +282,6 @@
         return dependencies;
     }
 
-    public static Function lookupUserDefinedFunctionDecl(MetadataTransactionContext mdTxnCtx,
-            FunctionSignature signature) throws AlgebricksException {
-        if (signature.getDataverseName() == null) {
-            return null;
-        }
-        return MetadataManager.INSTANCE.getFunction(mdTxnCtx, signature);
-    }
-
     public static boolean isBuiltinDatasetFunction(FunctionSignature fs) {
         return Objects.equals(FN_DATASET_DATAVERSE_NAME, fs.getDataverseName())
                 && Objects.equals(FN_DATASET_NAME, fs.getName());
@@ -325,4 +339,20 @@
     private static String getStringConstant(Mutable<ILogicalExpression> arg) {
         return ConstantExpressionUtil.getStringConstant(arg.getValue());
     }
+
+    private static boolean getImportPrivateFunctions(MetadataProvider metadataProvider) {
+        String value = (String) metadataProvider.getConfig().get(IMPORT_PRIVATE_FUNCTIONS);
+        return (value != null) && Boolean.parseBoolean(value.toLowerCase());
+    }
+
+    public static Set<FunctionSignature> getFunctionSignatures(List<FunctionDecl> declaredFunctions) {
+        if (declaredFunctions == null || declaredFunctions.isEmpty()) {
+            return Collections.emptySet();
+        }
+        Set<FunctionSignature> result = new HashSet<>();
+        for (FunctionDecl fd : declaredFunctions) {
+            result.add(fd.getSignature());
+        }
+        return result;
+    }
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/AbstractInlineUdfsVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/AbstractInlineUdfsVisitor.java
index 984ceb4..eb2fba6 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/AbstractInlineUdfsVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/AbstractInlineUdfsVisitor.java
@@ -390,14 +390,9 @@
 
     private Expression rewriteFunctionBody(FunctionDecl fnDecl) throws CompilationException {
         SourceLocation sourceLoc = fnDecl.getSourceLocation();
-        Query wrappedQuery = new Query(false);
-        wrappedQuery.setSourceLocation(sourceLoc);
-        wrappedQuery.setBody(fnDecl.getFuncBody());
-        wrappedQuery.setTopLevel(false);
 
         DataverseName fnDataverseName = fnDecl.getSignature().getDataverseName();
         Dataverse defaultDataverse = metadataProvider.getDefaultDataverse();
-
         Dataverse fnDataverse;
         if (fnDataverseName == null || fnDataverseName.equals(defaultDataverse.getDataverseName())) {
             fnDataverse = defaultDataverse;
@@ -411,10 +406,17 @@
 
         metadataProvider.setDefaultDataverse(fnDataverse);
         try {
+            Query wrappedQuery = new Query(false);
+            wrappedQuery.setSourceLocation(sourceLoc);
+            wrappedQuery.setBody(fnDecl.getFuncBody());
+            wrappedQuery.setTopLevel(false);
             IQueryRewriter queryRewriter = rewriterFactory.createQueryRewriter();
             queryRewriter.rewrite(declaredFunctions, wrappedQuery, metadataProvider, context, true,
                     fnDecl.getParamList());
             return wrappedQuery.getBody();
+        } catch (CompilationException e) {
+            throw new CompilationException(ErrorCode.COMPILATION_BAD_FUNCTION_DEFINITION, e, fnDecl.getSignature(),
+                    e.getMessage());
         } finally {
             metadataProvider.setDefaultDataverse(defaultDataverse);
         }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/CloneAndSubstituteVariablesVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/CloneAndSubstituteVariablesVisitor.java
index 567dd4a..97701e4 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/CloneAndSubstituteVariablesVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/CloneAndSubstituteVariablesVisitor.java
@@ -298,12 +298,11 @@
             VariableSubstitutionEnvironment env) throws CompilationException {
         Pair<ILangExpression, VariableSubstitutionEnvironment> p1 = ia.getExpr().accept(this, env);
         Expression indexExpr = null;
-        if (!ia.isAny()) {
+        if (ia.getIndexExpr() != null) {
             Pair<ILangExpression, VariableSubstitutionEnvironment> p2 = ia.getIndexExpr().accept(this, env);
             indexExpr = (Expression) p2.first;
         }
-        IndexAccessor i = new IndexAccessor((Expression) p1.first, indexExpr);
-        i.setAny(ia.isAny());
+        IndexAccessor i = new IndexAccessor((Expression) p1.first, ia.getIndexKind(), indexExpr);
         i.setSourceLocation(ia.getSourceLocation());
         i.addHints(ia.getHints());
         return new Pair<>(i, env);
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/FormatPrintVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/FormatPrintVisitor.java
index 62763d1..290f9ea 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/FormatPrintVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/FormatPrintVisitor.java
@@ -31,9 +31,9 @@
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
 import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
-import org.apache.asterix.external.dataset.adapter.AdapterIdentifier;
 import org.apache.asterix.lang.common.base.Expression;
 import org.apache.asterix.lang.common.base.Literal;
 import org.apache.asterix.lang.common.clause.LetClause;
@@ -356,13 +356,22 @@
     }
 
     @Override
-    public Void visit(IndexAccessor fa, Integer step) throws CompilationException {
-        fa.getExpr().accept(this, step + 1);
+    public Void visit(IndexAccessor ia, Integer step) throws CompilationException {
+        ia.getExpr().accept(this, step + 1);
         out.print("[");
-        if (fa.isAny()) {
-            out.print("?");
-        } else {
-            fa.getIndexExpr().accept(this, step + 1);
+        switch (ia.getIndexKind()) {
+            case ANY:
+                out.print("?");
+                break;
+            case STAR:
+                out.print("*");
+                break;
+            case ELEMENT:
+                ia.getIndexExpr().accept(this, step + 1);
+                break;
+            default:
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, ia.getSourceLocation(),
+                        ia.getIndexKind());
         }
         out.print("]");
         return null;
@@ -456,10 +465,6 @@
             out.print(" using " + revertStringToQuoted(externalDetails.getAdapter()));
             printConfiguration(externalDetails.getProperties());
         }
-        Identifier nodeGroupName = dd.getNodegroupName();
-        if (nodeGroupName != null) {
-            out.print(" on " + nodeGroupName.getValue());
-        }
         Map<String, String> hints = dd.getHints();
         if (dd.getHints().size() > 0) {
             out.print(" hints ");
@@ -792,7 +797,7 @@
 
     @Override
     public Void visit(CreateFunctionStatement cfs, Integer step) throws CompilationException {
-        out.print(skip(step) + CREATE + " function ");
+        out.print(skip(step) + CREATE + generateOrReplace(cfs.getReplaceIfExists()) + " function ");
         out.print(generateIfNotExists(cfs.getIfNotExists()));
         out.print(this.generateFullName(cfs.getFunctionSignature().getDataverseName(),
                 cfs.getFunctionSignature().getName()));
@@ -818,7 +823,7 @@
     @Override
     public Void visit(CreateAdapterStatement cfs, Integer step) throws CompilationException {
         out.print(skip(step) + CREATE + " adapter");
-        out.print(this.generateFullName(cfs.getAdapterId().getDataverseName(), cfs.getAdapterId().getName()));
+        out.print(this.generateFullName(cfs.getDataverseName(), cfs.getAdapterName()));
         out.println(SEMICOLON);
         out.println();
         return null;
@@ -827,9 +832,8 @@
     @Override
     public Void visit(AdapterDropStatement del, Integer step) throws CompilationException {
         out.print(skip(step) + "drop adapter ");
-        AdapterIdentifier funcSignature = del.getAdapterIdentifier();
-        out.print(funcSignature.toString());
-        out.println(SEMICOLON);
+        out.print(generateFullName(del.getDataverseName(), del.getAdapterName()));
+        out.println(generateIfExists(del.getIfExists()) + SEMICOLON);
         return null;
     }
 
@@ -1022,7 +1026,7 @@
         dataverseName.getParts(dataverseNameParts);
         for (int i = 0, ln = dataverseNameParts.size(); i < ln; i++) {
             if (i > 0) {
-                sb.append(DataverseName.SEPARATOR_CHAR);
+                sb.append(".");
             }
             sb.append(normalize(dataverseNameParts.get(i)));
         }
@@ -1048,6 +1052,10 @@
         return ifExits ? " if exists" : "";
     }
 
+    protected String generateOrReplace(boolean orReplace) {
+        return orReplace ? " or replace" : "";
+    }
+
     protected String generateIndexTypeString(IndexType type) {
         switch (type) {
             case BTREE:
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
index 3d7b467..858729c 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
@@ -113,11 +113,9 @@
     @Override
     public Void visit(IndexAccessor ia, Void arg) throws CompilationException {
         ia.getExpr().accept(this, arg);
-
-        if (!ia.isAny()) {
+        if (ia.getIndexExpr() != null) {
             ia.getIndexExpr().accept(this, arg);
         }
-
         return null;
     }
 
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/QueryPrintVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/QueryPrintVisitor.java
index f83a89e..64d97f3 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/QueryPrintVisitor.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/QueryPrintVisitor.java
@@ -24,6 +24,7 @@
 
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.lang.common.base.Expression;
 import org.apache.asterix.lang.common.base.Literal;
@@ -163,7 +164,7 @@
         return null;
     }
 
-    private static void printFunctionSignature(PrintWriter out, FunctionSignature fs, int arity) {
+    protected static void printFunctionSignature(PrintWriter out, FunctionSignature fs, int arity) {
         out.print(fs.toString(false));
         if (arity != FunctionIdentifier.VARARGS) {
             out.print("@");
@@ -291,14 +292,23 @@
     }
 
     @Override
-    public Void visit(IndexAccessor fa, Integer step) throws CompilationException {
+    public Void visit(IndexAccessor ia, Integer step) throws CompilationException {
         out.println(skip(step) + "IndexAccessor [");
-        fa.getExpr().accept(this, step + 1);
+        ia.getExpr().accept(this, step + 1);
         out.print(skip(step + 1) + "Index: ");
-        if (fa.isAny()) {
-            out.println("ANY");
-        } else {
-            fa.getIndexExpr().accept(this, step + 1);
+        switch (ia.getIndexKind()) {
+            case ANY:
+                out.println("ANY");
+                break;
+            case STAR:
+                out.println("STAR");
+                break;
+            case ELEMENT:
+                ia.getIndexExpr().accept(this, step + 1);
+                break;
+            default:
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, ia.getSourceLocation(),
+                        ia.getIndexKind());
         }
         out.println(skip(step) + "]");
         return null;
diff --git a/asterixdb/asterix-lang-sqlpp/pom.xml b/asterixdb/asterix-lang-sqlpp/pom.xml
index 9a1e7b3..da49124 100644
--- a/asterixdb/asterix-lang-sqlpp/pom.xml
+++ b/asterixdb/asterix-lang-sqlpp/pom.xml
@@ -52,6 +52,13 @@
               <javaUnicodeEscape>true</javaUnicodeEscape>
             </configuration>
           </execution>
+          <execution>
+            <id>javacc-jjdoc</id>
+            <goals>
+              <goal>jjdoc</goal>
+            </goals>
+            <phase>generate-test-sources</phase>
+          </execution>
         </executions>
       </plugin>
       <plugin>
@@ -106,35 +113,6 @@
     </pluginManagement>
   </build>
 
-  <profiles>
-    <profile>
-      <id>jjdoc</id>
-      <activation>
-        <property>
-          <name>jjdoc.skip</name>
-          <value>!true</value>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>javacc-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>javacc-jjdoc</id>
-                <goals>
-                  <goal>jjdoc</goal>
-                </goals>
-                <phase>generate-test-sources</phase>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.hyracks</groupId>
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectBlock.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectBlock.java
index c934e32..9c743ad 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectBlock.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectBlock.java
@@ -64,10 +64,18 @@
         return selectClause;
     }
 
+    public void setSelectClause(SelectClause selectClause) {
+        this.selectClause = selectClause;
+    }
+
     public FromClause getFromClause() {
         return fromClause;
     }
 
+    public void setFromClause(FromClause fromClause) {
+        this.fromClause = fromClause;
+    }
+
     public List<AbstractClause> getLetWhereList() {
         return letWhereClauses;
     }
@@ -76,6 +84,10 @@
         return groupbyClause;
     }
 
+    public void setGroupbyClause(GroupbyClause groupbyClause) {
+        this.groupbyClause = groupbyClause;
+    }
+
     public List<AbstractClause> getLetHavingListAfterGroupby() {
         return letHavingClausesAfterGby;
     }
@@ -96,10 +108,6 @@
         return !letHavingClausesAfterGby.isEmpty();
     }
 
-    public void setGroupbyClause(GroupbyClause groupbyClause) {
-        this.groupbyClause = groupbyClause;
-    }
-
     @Override
     public int hashCode() {
         return Objects.hash(fromClause, groupbyClause, letWhereClauses, letHavingClausesAfterGby, selectClause);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectClause.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectClause.java
index 2627870..3b550a3 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectClause.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/SelectClause.java
@@ -68,6 +68,10 @@
         return distinct;
     }
 
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
     @Override
     public String toString() {
         return "select " + (distinct ? "distinct " : "")
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppFunctionBodyRewriter.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppFunctionBodyRewriter.java
index e7104dd..a89ca5b 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppFunctionBodyRewriter.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppFunctionBodyRewriter.java
@@ -42,6 +42,9 @@
         // Sets up parameters.
         setup(declaredFunctions, topStatement, metadataProvider, context, externalVars);
 
+        // Resolves function calls
+        resolveFunctionCalls();
+
         // Generates column names.
         generateColumnNames();
 
@@ -64,11 +67,14 @@
         // Must run after rewriteSetOperations() and before variableCheckAndRewrite()
         rewriteGroupingSets();
 
+        // Window expression core rewrites.
+        rewriteWindowExpressions();
+
         // Generate ids for variables (considering scopes) and replace global variable access with the dataset function.
         variableCheckAndRewrite();
 
         //  Extracts SQL-92 aggregate functions from CASE/IF expressions into LET clauses
-        rewriteCaseExpressions();
+        extractAggregatesFromCaseExpressions();
 
         // Rewrites SQL-92 global aggregations.
         rewriteGroupByAggregationSugar();
@@ -79,6 +85,9 @@
         // Rewrites like/not-like expressions.
         rewriteOperatorExpression();
 
+        // Normalizes CASE expressions and rewrites simple ones into switch-case()
+        rewriteCaseExpressions();
+
         // Rewrites several variable-arg functions into their corresponding internal list-input functions.
         rewriteListInputFunctions();
 
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 1674940..3f93dd0 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
@@ -20,6 +20,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -63,19 +64,20 @@
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.InlineWithExpressionVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.OperatorExpressionVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SetOperationVisitor;
-import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppBuiltinFunctionRewriteVisitor;
-import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppCaseRewriteVisitor;
+import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppCaseAggregateExtractionVisitor;
+import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppCaseExpressionVisitor;
+import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppFunctionCallResolverVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppGroupByAggregationSugarVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppGroupByVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppGroupingSetsVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppInlineUdfsVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppListInputFunctionRewriteVisitor;
+import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppSpecialFunctionNameRewriteVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppWindowAggregationSugarVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SqlppWindowRewriteVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.SubstituteGroupbyExpressionWithVariableVisitor;
 import org.apache.asterix.lang.sqlpp.rewrites.visitor.VariableCheckAndRewriteVisitor;
 import org.apache.asterix.lang.sqlpp.struct.SetOperationRight;
-import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
 import org.apache.asterix.lang.sqlpp.util.SqlppAstPrintUtil;
 import org.apache.asterix.lang.sqlpp.util.SqlppVariableUtil;
 import org.apache.asterix.lang.sqlpp.visitor.base.ISqlppVisitor;
@@ -112,7 +114,7 @@
         this.context = context;
         this.declaredFunctions = declaredFunctions;
         this.metadataProvider = metadataProvider;
-        this.externalVars = externalVars;
+        this.externalVars = externalVars != null ? externalVars : Collections.emptyList();
         this.isLogEnabled = LOGGER.isTraceEnabled();
         logExpression("Starting AST rewrites on", "");
     }
@@ -128,6 +130,9 @@
         // Sets up parameters.
         setup(declaredFunctions, topStatement, metadataProvider, context, externalVars);
 
+        // Resolves function calls
+        resolveFunctionCalls();
+
         // Generates column names.
         generateColumnNames();
 
@@ -154,7 +159,7 @@
         variableCheckAndRewrite();
 
         //  Extracts SQL-92 aggregate functions from CASE/IF expressions into LET clauses
-        rewriteCaseExpressions();
+        extractAggregatesFromCaseExpressions();
 
         // Rewrites SQL-92 aggregate functions
         rewriteGroupByAggregationSugar();
@@ -165,19 +170,27 @@
         // Rewrites like/not-like expressions.
         rewriteOperatorExpression();
 
+        // Normalizes CASE expressions and rewrites simple ones into switch-case()
+        rewriteCaseExpressions();
+
         // Rewrites several variable-arg functions into their corresponding internal list-input functions.
         rewriteListInputFunctions();
 
         // Inlines functions.
         inlineDeclaredUdfs(inlineUdfs);
 
-        // Rewrites function names.
-        // This should be done after inlineDeclaredUdfs() because user-defined function
-        // names could be case sensitive.
-        rewriteFunctionNames();
+        // Rewrites SQL++ core aggregate function names into internal names
+        rewriteSpecialFunctionNames();
 
         // Inlines WITH expressions after variableCheckAndRewrite(...) so that the variable scoping for WITH
         // expression is correct.
+        //
+        // Must run after rewriteSpecialFunctionNames() because it needs to have FunctionInfo
+        // for all functions to avoid inlining non-deterministic expressions.
+        // (CallExprs with special function names do not have FunctionInfo)
+        //
+        // Must run after inlineDeclaredUdfs() because we only maintain deterministic modifiers for built-in
+        // and external UDFs, therefore need to inline SQL++ UDFs to check the deterministic property.
         inlineWithExpressions();
 
         // Sets the var counter of the query.
@@ -185,7 +198,7 @@
     }
 
     protected void rewriteGroupByAggregationSugar() throws CompilationException {
-        SqlppGroupByAggregationSugarVisitor visitor = new SqlppGroupByAggregationSugarVisitor(context);
+        SqlppGroupByAggregationSugarVisitor visitor = new SqlppGroupByAggregationSugarVisitor(context, externalVars);
         rewriteTopExpr(visitor, null);
     }
 
@@ -194,9 +207,15 @@
         rewriteTopExpr(listInputFunctionVisitor, null);
     }
 
-    protected void rewriteFunctionNames() throws CompilationException {
-        SqlppBuiltinFunctionRewriteVisitor functionNameMapVisitor = new SqlppBuiltinFunctionRewriteVisitor();
-        rewriteTopExpr(functionNameMapVisitor, null);
+    protected void resolveFunctionCalls() throws CompilationException {
+        SqlppFunctionCallResolverVisitor visitor =
+                new SqlppFunctionCallResolverVisitor(metadataProvider, declaredFunctions);
+        rewriteTopExpr(visitor, null);
+    }
+
+    protected void rewriteSpecialFunctionNames() throws CompilationException {
+        SqlppSpecialFunctionNameRewriteVisitor visitor = new SqlppSpecialFunctionNameRewriteVisitor();
+        rewriteTopExpr(visitor, null);
     }
 
     protected void inlineWithExpressions() throws CompilationException {
@@ -267,8 +286,14 @@
         rewriteTopExpr(windowVisitor, null);
     }
 
+    protected void extractAggregatesFromCaseExpressions() throws CompilationException {
+        SqlppCaseAggregateExtractionVisitor visitor = new SqlppCaseAggregateExtractionVisitor(context);
+        rewriteTopExpr(visitor, null);
+    }
+
     protected void rewriteCaseExpressions() throws CompilationException {
-        SqlppCaseRewriteVisitor visitor = new SqlppCaseRewriteVisitor(context);
+        // Normalizes CASE expressions and rewrites simple ones into switch-case()
+        SqlppCaseExpressionVisitor visitor = new SqlppCaseExpressionVisitor();
         rewriteTopExpr(visitor, null);
     }
 
@@ -280,16 +305,14 @@
 
         List<FunctionDecl> usedStoredFunctionDecls = new ArrayList<>();
         for (Expression topLevelExpr : topExpr.getDirectlyEnclosedExpressions()) {
-            usedStoredFunctionDecls
-                    .addAll(FunctionUtil.retrieveUsedStoredFunctions(metadataProvider, topLevelExpr, funIds, null,
-                            expr -> getFunctionCalls(expr), functionParser, (signature, sourceLoc) -> FunctionMapUtil
-                                    .normalizeBuiltinFunctionSignature(signature, false, sourceLoc)));
+            usedStoredFunctionDecls.addAll(FunctionUtil.retrieveUsedStoredFunctions(metadataProvider, topLevelExpr,
+                    funIds, null, this::getFunctionCalls, functionParser, metadataProvider.getDefaultDataverseName()));
         }
         declaredFunctions.addAll(usedStoredFunctionDecls);
         if (inlineUdfs && !declaredFunctions.isEmpty()) {
-            SqlppInlineUdfsVisitor visitor = new SqlppInlineUdfsVisitor(context,
-                    new SqlppFunctionBodyRewriterFactory(
-                            parserFactory) /* the rewriter for function bodies expressions*/,
+            SqlppFunctionBodyRewriterFactory functionBodyRewriterFactory =
+                    new SqlppFunctionBodyRewriterFactory(parserFactory);
+            SqlppInlineUdfsVisitor visitor = new SqlppInlineUdfsVisitor(context, functionBodyRewriterFactory,
                     declaredFunctions, metadataProvider);
             while (rewriteTopExpr(visitor, declaredFunctions)) {
                 // loop until no more changes
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/OperatorExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/OperatorExpressionVisitor.java
index 6d07a7b..c47634e 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/OperatorExpressionVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/OperatorExpressionVisitor.java
@@ -103,6 +103,7 @@
         comparison.addOperand(itemExpr);
         comparison.addOperand(bindingVar);
         comparison.setCurrentop(true);
+        comparison.addHints(operatorExpr.getHints());
         comparison.setSourceLocation(operatorExpr.getSourceLocation());
         if (opType == OperatorType.IN) {
             comparison.addOperator(OperatorType.EQ);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SetOperationVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SetOperationVisitor.java
index fe86cfc..da8b5f2 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SetOperationVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SetOperationVisitor.java
@@ -21,6 +21,7 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.function.BiFunction;
 
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.common.base.Expression;
@@ -87,7 +88,7 @@
         // Wraps the set operation part with a subquery.
         SelectExpression nestedSelectExpression = new SelectExpression(null, selectSetOperation, null, null, true);
         nestedSelectExpression.setSourceLocation(sourceLoc);
-        SelectBlock selectBlock = createSelectBlock(nestedSelectExpression, context);
+        SelectBlock selectBlock = createSelectBlock(nestedSelectExpression, false, null, null, context);
         SelectSetOperation newSelectSetOperation =
                 new SelectSetOperation(new SetOperationInput(selectBlock, null), null);
         newSelectSetOperation.setSourceLocation(sourceLoc);
@@ -98,7 +99,9 @@
         return super.visit(newSelectExpression, arg);
     }
 
-    static SelectBlock createSelectBlock(Expression inputExpr, LangRewritingContext context) {
+    static <P> SelectBlock createSelectBlock(Expression inputExpr, boolean distinct,
+            BiFunction<? super VariableExpr, P, Expression> valueExprTransformer, P valueExprTransformerArg,
+            LangRewritingContext context) {
         SourceLocation sourceLoc = inputExpr.getSourceLocation();
         VariableExpr newBindingVar = new VariableExpr(context.newVariable()); // Binding variable for the subquery.
         newBindingVar.setSourceLocation(sourceLoc);
@@ -106,7 +109,9 @@
         newFromTerm.setSourceLocation(sourceLoc);
         FromClause newFromClause = new FromClause(new ArrayList<>(Collections.singletonList(newFromTerm)));
         newFromClause.setSourceLocation(sourceLoc);
-        SelectClause selectClause = new SelectClause(new SelectElement(newBindingVar), null, false);
+        Expression valueExpr = valueExprTransformer != null
+                ? valueExprTransformer.apply(newBindingVar, valueExprTransformerArg) : newBindingVar;
+        SelectClause selectClause = new SelectClause(new SelectElement(valueExpr), null, distinct);
         selectClause.setSourceLocation(sourceLoc);
         SelectBlock selectBlock = new SelectBlock(selectClause, newFromClause, null, null, null);
         selectBlock.setSourceLocation(sourceLoc);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppBuiltinFunctionRewriteVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppBuiltinFunctionRewriteVisitor.java
deleted file mode 100644
index 82284f3..0000000
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppBuiltinFunctionRewriteVisitor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.lang.sqlpp.rewrites.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.functions.FunctionSignature;
-import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.base.ILangExpression;
-import org.apache.asterix.lang.common.expression.CallExpr;
-import org.apache.asterix.lang.common.expression.LiteralExpr;
-import org.apache.asterix.lang.common.expression.OperatorExpr;
-import org.apache.asterix.lang.common.literal.TrueLiteral;
-import org.apache.asterix.lang.common.struct.OperatorType;
-import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
-import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
-import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
-import org.apache.asterix.lang.sqlpp.util.SqlppRewriteUtil;
-import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-
-public class SqlppBuiltinFunctionRewriteVisitor extends AbstractSqlppSimpleExpressionVisitor {
-
-    @Override
-    public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
-        //TODO(buyingyi): rewrite SQL temporal functions
-        callExpr.setFunctionSignature(FunctionMapUtil.normalizeBuiltinFunctionSignature(callExpr.getFunctionSignature(),
-                true, callExpr.getSourceLocation()));
-        return super.visit(callExpr, arg);
-    }
-
-    @Override
-    public Expression visit(WindowExpression winExpr, ILangExpression arg) throws CompilationException {
-        winExpr.setFunctionSignature(FunctionMapUtil.normalizeBuiltinFunctionSignature(winExpr.getFunctionSignature(),
-                true, winExpr.getSourceLocation()));
-        return super.visit(winExpr, arg);
-    }
-
-    @Override
-    public Expression visit(CaseExpression caseExpr, ILangExpression arg) throws CompilationException {
-        Expression expr = super.visit(caseExpr, arg); // Visits it as usual first.
-        if (expr != caseExpr) {
-            return expr.accept(this, arg);
-        }
-        CaseExpression newCaseExpr = normalizeCaseExpr(caseExpr);
-        if (SqlppRewriteUtil.constainsSubquery(newCaseExpr)) {
-            // If the CASE expression contains a subquery, we do not rewrite it to a switch-case function call.
-            return newCaseExpr;
-        }
-        // If the CASE expression does not contain a subquery, we rewrite it to a switch-case function call.
-        FunctionSignature functionSignature = new FunctionSignature(BuiltinFunctions.SWITCH_CASE);
-        List<Expression> whenExprList = newCaseExpr.getWhenExprs();
-        List<Expression> thenExprList = newCaseExpr.getThenExprs();
-        List<Expression> newExprList = new ArrayList<>();
-        newExprList.add(newCaseExpr.getConditionExpr());
-        for (int index = 0; index < whenExprList.size(); ++index) {
-            newExprList.add(whenExprList.get(index));
-            newExprList.add(thenExprList.get(index));
-        }
-        newExprList.add(newCaseExpr.getElseExpr());
-        CallExpr callExpr = new CallExpr(functionSignature, newExprList);
-        callExpr.setSourceLocation(caseExpr.getSourceLocation());
-        return callExpr;
-    }
-
-    // Normalizes WHEN expressions so that it can have correct NULL/MISSING semantics as well
-    // as type promotion semantics.
-    private CaseExpression normalizeCaseExpr(CaseExpression caseExpr) throws CompilationException {
-        LiteralExpr trueLiteral = new LiteralExpr(TrueLiteral.INSTANCE);
-        trueLiteral.setSourceLocation(caseExpr.getSourceLocation());
-        Expression conditionExpr = caseExpr.getConditionExpr();
-        if (trueLiteral.equals(conditionExpr)) {
-            return caseExpr;
-        }
-        List<Expression> normalizedWhenExprs = new ArrayList<>();
-        for (Expression expr : caseExpr.getWhenExprs()) {
-            OperatorExpr operatorExpr = new OperatorExpr();
-            operatorExpr.addOperand((Expression) SqlppRewriteUtil.deepCopy(expr));
-            operatorExpr.addOperand(caseExpr.getConditionExpr());
-            operatorExpr.addOperator(OperatorType.EQ);
-            operatorExpr.setSourceLocation(expr.getSourceLocation());
-            normalizedWhenExprs.add(operatorExpr);
-        }
-        CaseExpression newCaseExpr =
-                new CaseExpression(trueLiteral, normalizedWhenExprs, caseExpr.getThenExprs(), caseExpr.getElseExpr());
-        newCaseExpr.setSourceLocation(caseExpr.getSourceLocation());
-        return newCaseExpr;
-    }
-
-}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseAggregateExtractionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseAggregateExtractionVisitor.java
new file mode 100644
index 0000000..4204880
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseAggregateExtractionVisitor.java
@@ -0,0 +1,108 @@
+/*
+ * 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.lang.sqlpp.rewrites.visitor;
+
+import java.util.List;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.lang.common.base.AbstractClause;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.clause.GroupbyClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.expression.IfExpr;
+import org.apache.asterix.lang.common.expression.VariableExpr;
+import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
+import org.apache.asterix.lang.common.struct.VarIdentifier;
+import org.apache.asterix.lang.sqlpp.clause.FromClause;
+import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
+import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
+import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+
+/**
+ * Extracts SQL-92 aggregate functions from CASE/IF expressions into LET clauses,
+ * so they can be pushed into GROUPBY subplans by the optimizer.
+ */
+public final class SqlppCaseAggregateExtractionVisitor extends AbstractSqlppExpressionExtractionVisitor {
+
+    public SqlppCaseAggregateExtractionVisitor(LangRewritingContext context) {
+        super(context);
+    }
+
+    @Override
+    protected void visitLetWhereClauses(List<AbstractClause> letWhereList, ILangExpression arg,
+            List<Pair<Expression, VarIdentifier>> extractionList) {
+        // do not perform the extraction
+    }
+
+    @Override
+    protected void visitGroupByClause(GroupbyClause groupbyClause, ILangExpression arg,
+            List<Pair<Expression, VarIdentifier>> extractionList, List<AbstractClause> letWhereList) {
+        // do not perform the extraction
+    }
+
+    @Override
+    public Expression visit(CaseExpression caseExpr, ILangExpression arg) throws CompilationException {
+        Expression resultExpr = super.visit(caseExpr, arg);
+        resultExpr.accept(new Sql92AggregateExtractionVisitor(), arg);
+        return resultExpr;
+    }
+
+    @Override
+    public Expression visit(IfExpr ifExpr, ILangExpression arg) throws CompilationException {
+        Expression resultExpr = super.visit(ifExpr, arg);
+        resultExpr.accept(new Sql92AggregateExtractionVisitor(), arg);
+        return resultExpr;
+    }
+
+    @Override
+    void handleUnsupportedClause(FromClause clause) throws CompilationException {
+        throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_USE_OF_IDENTIFIER, clause.getSourceLocation(),
+                BuiltinFunctions.SWITCH_CASE.getName());
+    }
+
+    private final class Sql92AggregateExtractionVisitor extends AbstractSqlppSimpleExpressionVisitor {
+
+        @Override
+        public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
+            CallExpr resultExpr = (CallExpr) super.visit(callExpr, arg);
+            if (FunctionMapUtil.isSql92AggregateFunction(resultExpr.getFunctionSignature())) {
+                StackElement stackElement = stack.peek();
+                if (stackElement != null && stackElement.getSelectBlock().hasGroupbyClause()) {
+                    VarIdentifier v = stackElement.addPendingLetClause(resultExpr);
+                    VariableExpr vExpr = new VariableExpr(v);
+                    vExpr.setSourceLocation(callExpr.getSourceLocation());
+                    return vExpr;
+                }
+            }
+            return resultExpr;
+        }
+
+        @Override
+        public Expression visit(SelectExpression selectExpression, ILangExpression arg) {
+            // don't visit sub-queries
+            return selectExpression;
+        }
+    }
+}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseExpressionVisitor.java
new file mode 100644
index 0000000..59996df
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseExpressionVisitor.java
@@ -0,0 +1,103 @@
+/*
+ * 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.lang.sqlpp.rewrites.visitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.expression.LiteralExpr;
+import org.apache.asterix.lang.common.expression.OperatorExpr;
+import org.apache.asterix.lang.common.literal.TrueLiteral;
+import org.apache.asterix.lang.common.struct.OperatorType;
+import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
+import org.apache.asterix.lang.sqlpp.util.SqlppRewriteUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+
+/**
+ * CASE expression rewritings:
+ * <ul>
+ * <li>
+ * Normalize WHEN expressions so that it can have correct NULL/MISSING semantics as well
+ * as type promotion semantics.
+ * </li>
+ * <li>
+ * If the CASE expression does not contain a subquery then rewrite it to a switch-case function call.
+ * </li>
+ * </ul>
+ */
+public final class SqlppCaseExpressionVisitor extends AbstractSqlppSimpleExpressionVisitor {
+
+    @Override
+    public Expression visit(CaseExpression caseExpr, ILangExpression arg) throws CompilationException {
+        Expression expr = super.visit(caseExpr, arg); // Visits it as usual first.
+        if (expr != caseExpr) {
+            return expr.accept(this, arg);
+        }
+        CaseExpression newCaseExpr = normalizeCaseExpr(caseExpr);
+        if (SqlppRewriteUtil.constainsSubquery(newCaseExpr)) {
+            // If the CASE expression contains a subquery, we do not rewrite it to a switch-case function call.
+            return newCaseExpr;
+        }
+        // If the CASE expression does not contain a subquery, we rewrite it to a switch-case function call.
+        FunctionSignature functionSignature = new FunctionSignature(BuiltinFunctions.SWITCH_CASE);
+        List<Expression> whenExprList = newCaseExpr.getWhenExprs();
+        List<Expression> thenExprList = newCaseExpr.getThenExprs();
+        List<Expression> newExprList = new ArrayList<>();
+        newExprList.add(newCaseExpr.getConditionExpr());
+        for (int index = 0; index < whenExprList.size(); ++index) {
+            newExprList.add(whenExprList.get(index));
+            newExprList.add(thenExprList.get(index));
+        }
+        newExprList.add(newCaseExpr.getElseExpr());
+        CallExpr callExpr = new CallExpr(functionSignature, newExprList);
+        callExpr.setSourceLocation(caseExpr.getSourceLocation());
+        return callExpr;
+    }
+
+    // Normalizes WHEN expressions so that it can have correct NULL/MISSING semantics as well
+    // as type promotion semantics.
+    private CaseExpression normalizeCaseExpr(CaseExpression caseExpr) throws CompilationException {
+        Expression conditionExpr = caseExpr.getConditionExpr();
+        if (conditionExpr.getKind() == Expression.Kind.LITERAL_EXPRESSION
+                && ((LiteralExpr) conditionExpr).getValue().equals(TrueLiteral.INSTANCE)) {
+            return caseExpr;
+        }
+        List<Expression> normalizedWhenExprs = new ArrayList<>();
+        for (Expression expr : caseExpr.getWhenExprs()) {
+            OperatorExpr operatorExpr = new OperatorExpr();
+            operatorExpr.addOperand((Expression) SqlppRewriteUtil.deepCopy(expr));
+            operatorExpr.addOperand(caseExpr.getConditionExpr());
+            operatorExpr.addOperator(OperatorType.EQ);
+            operatorExpr.setSourceLocation(expr.getSourceLocation());
+            normalizedWhenExprs.add(operatorExpr);
+        }
+        LiteralExpr trueLiteral = new LiteralExpr(TrueLiteral.INSTANCE);
+        trueLiteral.setSourceLocation(caseExpr.getSourceLocation());
+        CaseExpression newCaseExpr =
+                new CaseExpression(trueLiteral, normalizedWhenExprs, caseExpr.getThenExprs(), caseExpr.getElseExpr());
+        newCaseExpr.setSourceLocation(caseExpr.getSourceLocation());
+        return newCaseExpr;
+    }
+}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseRewriteVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseRewriteVisitor.java
deleted file mode 100644
index cfe41ed..0000000
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppCaseRewriteVisitor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.lang.sqlpp.rewrites.visitor;
-
-import java.util.List;
-
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.lang.common.base.AbstractClause;
-import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.base.ILangExpression;
-import org.apache.asterix.lang.common.clause.GroupbyClause;
-import org.apache.asterix.lang.common.expression.CallExpr;
-import org.apache.asterix.lang.common.expression.IfExpr;
-import org.apache.asterix.lang.common.expression.VariableExpr;
-import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
-import org.apache.asterix.lang.common.struct.VarIdentifier;
-import org.apache.asterix.lang.sqlpp.clause.FromClause;
-import org.apache.asterix.lang.sqlpp.expression.CaseExpression;
-import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
-import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
-import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.hyracks.algebricks.common.utils.Pair;
-
-/**
- * Extracts SQL-92 aggregate functions from CASE/IF expressions into LET clauses,
- * so they can be pushed into GROUPBY subplans by the optimizer.
- */
-public final class SqlppCaseRewriteVisitor extends AbstractSqlppExpressionExtractionVisitor {
-
-    public SqlppCaseRewriteVisitor(LangRewritingContext context) {
-        super(context);
-    }
-
-    @Override
-    protected void visitLetWhereClauses(List<AbstractClause> letWhereList, ILangExpression arg,
-            List<Pair<Expression, VarIdentifier>> extractionList) {
-        // do not perform the extraction
-    }
-
-    @Override
-    protected void visitGroupByClause(GroupbyClause groupbyClause, ILangExpression arg,
-            List<Pair<Expression, VarIdentifier>> extractionList, List<AbstractClause> letWhereList) {
-        // do not perform the extraction
-    }
-
-    @Override
-    public Expression visit(CaseExpression caseExpr, ILangExpression arg) throws CompilationException {
-        Expression resultExpr = super.visit(caseExpr, arg);
-        resultExpr.accept(new Sql92AggregateExtractionVisitor(), arg);
-        return resultExpr;
-    }
-
-    @Override
-    public Expression visit(IfExpr ifExpr, ILangExpression arg) throws CompilationException {
-        Expression resultExpr = super.visit(ifExpr, arg);
-        resultExpr.accept(new Sql92AggregateExtractionVisitor(), arg);
-        return resultExpr;
-    }
-
-    @Override
-    void handleUnsupportedClause(FromClause clause) throws CompilationException {
-        throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_USE_OF_IDENTIFIER, clause.getSourceLocation(),
-                BuiltinFunctions.SWITCH_CASE.getName());
-    }
-
-    private final class Sql92AggregateExtractionVisitor extends AbstractSqlppSimpleExpressionVisitor {
-
-        @Override
-        public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
-            CallExpr resultExpr = (CallExpr) super.visit(callExpr, arg);
-            if (FunctionMapUtil.isSql92AggregateFunction(resultExpr.getFunctionSignature())) {
-                StackElement stackElement = stack.peek();
-                if (stackElement != null && stackElement.getSelectBlock().hasGroupbyClause()) {
-                    VarIdentifier v = stackElement.addPendingLetClause(resultExpr);
-                    VariableExpr vExpr = new VariableExpr(v);
-                    vExpr.setSourceLocation(callExpr.getSourceLocation());
-                    return vExpr;
-                }
-            }
-            return resultExpr;
-        }
-
-        @Override
-        public Expression visit(SelectExpression selectExpression, ILangExpression arg) {
-            // don't visit sub-queries
-            return selectExpression;
-        }
-    }
-}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppFunctionCallResolverVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppFunctionCallResolverVisitor.java
new file mode 100644
index 0000000..ce2ff2b
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppFunctionCallResolverVisitor.java
@@ -0,0 +1,88 @@
+/*
+ * 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.lang.sqlpp.rewrites.visitor;
+
+import java.util.List;
+import java.util.Set;
+import java.util.function.BiFunction;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.functions.FunctionConstants;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.statement.FunctionDecl;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
+import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
+import org.apache.asterix.metadata.declared.MetadataProvider;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+
+public final class SqlppFunctionCallResolverVisitor extends AbstractSqlppSimpleExpressionVisitor {
+
+    private final MetadataProvider metadataProvider;
+
+    private final Set<FunctionSignature> declaredFunctions;
+
+    private final BiFunction<String, Integer, FunctionSignature> builtinFunctionResolver;
+
+    private final BiFunction<String, Integer, FunctionSignature> callExprResolver;
+
+    public SqlppFunctionCallResolverVisitor(MetadataProvider metadataProvider, List<FunctionDecl> declaredFunctions) {
+        this.metadataProvider = metadataProvider;
+        this.declaredFunctions = FunctionUtil.getFunctionSignatures(declaredFunctions);
+        this.builtinFunctionResolver = FunctionUtil.createBuiltinFunctionResolver(metadataProvider);
+        this.callExprResolver = this::resolveCallExpr;
+    }
+
+    @Override
+    public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
+        FunctionSignature fs = FunctionUtil.resolveFunctionCall(callExpr.getFunctionSignature(),
+                callExpr.getSourceLocation(), metadataProvider, declaredFunctions, callExprResolver);
+        callExpr.setFunctionSignature(fs);
+        return super.visit(callExpr, arg);
+    }
+
+    @Override
+    public Expression visit(WindowExpression winExpr, ILangExpression arg) throws CompilationException {
+        FunctionSignature fs = FunctionUtil.resolveFunctionCall(winExpr.getFunctionSignature(),
+                winExpr.getSourceLocation(), metadataProvider, declaredFunctions, callExprResolver);
+        winExpr.setFunctionSignature(fs);
+        return super.visit(winExpr, arg);
+    }
+
+    private FunctionSignature resolveCallExpr(String name, int arity) {
+        FunctionSignature fs = builtinFunctionResolver.apply(name, arity);
+        if (fs != null) {
+            return fs;
+        }
+        fs = new FunctionSignature(FunctionConstants.ASTERIX_DV, name, arity);
+        return isAggregateFunction(fs) || isWindowFunction(fs) ? fs : null;
+    }
+
+    private static boolean isAggregateFunction(FunctionSignature fs) {
+        return FunctionMapUtil.isSql92AggregateFunction(fs) || FunctionMapUtil.isCoreAggregateFunction(fs);
+    }
+
+    private static boolean isWindowFunction(FunctionSignature fs) {
+        return BuiltinFunctions.getWindowFunction(fs.createFunctionIdentifier()) != null;
+    }
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupByAggregationSugarVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupByAggregationSugarVisitor.java
index baf3f46..f4c8085 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupByAggregationSugarVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupByAggregationSugarVisitor.java
@@ -40,6 +40,7 @@
 import org.apache.asterix.lang.common.expression.VariableExpr;
 import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
 import org.apache.asterix.lang.common.struct.Identifier;
+import org.apache.asterix.lang.common.struct.VarIdentifier;
 import org.apache.asterix.lang.sqlpp.clause.FromClause;
 import org.apache.asterix.lang.sqlpp.clause.SelectBlock;
 import org.apache.asterix.lang.sqlpp.clause.SelectClause;
@@ -81,8 +82,11 @@
  */
 public class SqlppGroupByAggregationSugarVisitor extends AbstractSqlppExpressionScopingVisitor {
 
-    public SqlppGroupByAggregationSugarVisitor(LangRewritingContext context) {
+    private final Collection<VarIdentifier> externalVars;
+
+    public SqlppGroupByAggregationSugarVisitor(LangRewritingContext context, Collection<VarIdentifier> externalVars) {
         super(context);
+        this.externalVars = externalVars;
     }
 
     @Override
@@ -177,7 +181,7 @@
 
             // Gets the final free variables.
             freeVariables.addAll(freeVariablesInGbyLets);
-            freeVariables.removeIf(SqlppVariableUtil::isExternalVariableReference);
+            removeExternalVariables(freeVariables);
 
             if (!groupbyClause.isGroupAll()) {
                 // Gets outer scope variables.
@@ -213,6 +217,12 @@
         return null;
     }
 
+    private void removeExternalVariables(Collection<VariableExpr> freeVariables) {
+        if (!externalVars.isEmpty()) {
+            freeVariables.removeIf(ve -> externalVars.contains(ve.getVar()));
+        }
+    }
+
     static Map<VariableExpr, Identifier> createGroupVarFieldMap(List<Pair<Expression, Identifier>> fieldList) {
         Map<VariableExpr, Identifier> fieldVars = new HashMap<>();
         for (Pair<Expression, Identifier> p : fieldList) {
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupingSetsVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupingSetsVisitor.java
index a6892c1..c474ee3 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupingSetsVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppGroupingSetsVisitor.java
@@ -22,12 +22,16 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.lang.common.base.Clause;
 import org.apache.asterix.lang.common.base.Expression;
 import org.apache.asterix.lang.common.base.ILangExpression;
@@ -39,24 +43,32 @@
 import org.apache.asterix.lang.common.expression.VariableExpr;
 import org.apache.asterix.lang.common.literal.LongIntegerLiteral;
 import org.apache.asterix.lang.common.literal.NullLiteral;
+import org.apache.asterix.lang.common.literal.StringLiteral;
 import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
+import org.apache.asterix.lang.sqlpp.clause.Projection;
 import org.apache.asterix.lang.sqlpp.clause.SelectBlock;
+import org.apache.asterix.lang.sqlpp.clause.SelectClause;
+import org.apache.asterix.lang.sqlpp.clause.SelectElement;
+import org.apache.asterix.lang.sqlpp.clause.SelectRegular;
 import org.apache.asterix.lang.sqlpp.clause.SelectSetOperation;
 import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
 import org.apache.asterix.lang.sqlpp.optype.SetOpType;
 import org.apache.asterix.lang.sqlpp.struct.SetOperationInput;
 import org.apache.asterix.lang.sqlpp.struct.SetOperationRight;
 import org.apache.asterix.lang.sqlpp.util.SqlppRewriteUtil;
-import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
+import org.apache.asterix.lang.sqlpp.util.SqlppVariableUtil;
+import org.apache.asterix.lang.sqlpp.visitor.FreeVariableVisitor;
+import org.apache.asterix.lang.sqlpp.visitor.SqlppSubstituteExpressionVisitor;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppExpressionScopingVisitor;
 import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.hyracks.algebricks.common.utils.ListSet;
+import org.apache.hyracks.algebricks.common.utils.Pair;
 
 /**
  * Rewrites GROUP BY clauses with multiple grouping sets into UNION ALL.
  * Also rewrites valid GROUPING(...) operations into constants.
  */
-public final class SqlppGroupingSetsVisitor extends AbstractSqlppSimpleExpressionVisitor {
-
-    private final LangRewritingContext context;
+public final class SqlppGroupingSetsVisitor extends AbstractSqlppExpressionScopingVisitor {
 
     private final List<List<GbyVariableExpressionPair>> tmpGroupingSets = new ArrayList<>(1);
 
@@ -67,7 +79,7 @@
     private final Set<VariableExpr> tmpCurrentGroupingSetVars = new LinkedHashSet<>();
 
     public SqlppGroupingSetsVisitor(LangRewritingContext context) {
-        this.context = context;
+        super(context);
     }
 
     @Override
@@ -76,15 +88,30 @@
 
         SetOperationInput setOpInputLeft = setOp.getLeftInput();
         SelectBlock selectBlockLeft = setOpInputLeft.getSelectBlock();
+
         if (selectBlockLeft != null && selectBlockLeft.hasGroupbyClause()) {
-            setOpInputLeft.setSelectBlock(rewriteSelectBlock(selectBlockLeft));
+            SelectExpression selectExpression = (SelectExpression) arg;
+            boolean hasPostSetOpClauses = selectExpression.hasOrderby() || selectExpression.hasLimit();
+            Map<VariableExpr, String> extraProjections = Collections.emptyMap();
+            if (hasPostSetOpClauses && !setOp.hasRightInputs() && isMultiGroupingSets(selectBlockLeft)) {
+                // We need to make sure that ORDER BY/LIMIT free vars are still available after UNION ALL rewriting.
+                // To do that we expose these variables by adding them to SELECT so they can be used after UNION ALL.
+                // Then we rewrite ORDERBY/LIMIT to replace these free vars with field accessors on top of SELECT.
+                // Then we remove these extra projections from the final output.
+                extraProjections = rewritePostSetOpClauses(selectExpression, selectBlockLeft);
+            }
+
+            SelectBlock newSelectBlockLeft = rewriteSelectBlock(selectBlockLeft, extraProjections);
+            setOpInputLeft.setSelectBlock(newSelectBlockLeft);
         }
+
         if (setOp.hasRightInputs()) {
             for (SetOperationRight setOpRight : setOp.getRightInputs()) {
                 SetOperationInput setOpInputRight = setOpRight.getSetOperationRightInput();
                 SelectBlock selectBlockRight = setOpInputRight.getSelectBlock();
                 if (selectBlockRight != null && selectBlockRight.hasGroupbyClause()) {
-                    setOpInputRight.setSelectBlock(rewriteSelectBlock(selectBlockRight));
+                    SelectBlock newSelectBlockRight = rewriteSelectBlock(selectBlockRight, Collections.emptyMap());
+                    setOpInputRight.setSelectBlock(newSelectBlockRight);
                 }
             }
         }
@@ -92,13 +119,170 @@
         return null;
     }
 
-    private SelectBlock rewriteSelectBlock(SelectBlock selectBlock) throws CompilationException {
-        return selectBlock.getGroupbyClause().getGbyPairList().size() <= 1 ? rewriteZeroOrOneGroupingSet(selectBlock)
-                : rewriteMultipleGroupingSets(selectBlock);
+    private Map<VariableExpr, String> rewritePostSetOpClauses(SelectExpression selectExpression,
+            SelectBlock selectBlockLeft) throws CompilationException {
+        // 1. Get free variables in ORDERBY/LIMIT
+        Set<VariableExpr> freeVarsPostSetOp = getFreeVarsPostSetOp(selectExpression);
+        if (freeVarsPostSetOp.isEmpty()) {
+            return Collections.emptyMap();
+        }
+
+        // 2. Compute substitution map for ORDERBY/LIMIT to replace free vars with field accessors
+        Pair<Map<VariableExpr, VariableExpr>, Map<VariableExpr, String>> p =
+                computePostSetOpSubstMap(selectBlockLeft, freeVarsPostSetOp);
+        Map<VariableExpr, VariableExpr> freeVarsPostSetOpSubstMap = p.first;
+        Map<VariableExpr, String> extraProjections = p.second;
+
+        // 3. Rewrite ORDERBY/LIMIT using this substitution
+        SqlppSubstituteExpressionVisitor substVisitor =
+                new SqlppSubstituteExpressionVisitor(context, freeVarsPostSetOpSubstMap);
+        if (selectExpression.hasOrderby()) {
+            selectExpression.getOrderbyClause().accept(substVisitor, selectExpression);
+        }
+        if (selectExpression.hasLimit()) {
+            selectExpression.getLimitClause().accept(substVisitor, selectExpression);
+        }
+
+        // 4. return extra projections that should be added to SELECT
+        return extraProjections;
+    }
+
+    private Pair<Map<VariableExpr, VariableExpr>, Map<VariableExpr, String>> computePostSetOpSubstMap(
+            SelectBlock selectBlockLeft, Set<VariableExpr> freeVarsPostSetOp) throws CompilationException {
+        SelectClause selectClause = selectBlockLeft.getSelectClause();
+        if (selectClause.selectRegular()) {
+            return computePostSetOpSubstMapForSelectRegular(freeVarsPostSetOp, selectBlockLeft);
+        } else if (selectClause.selectElement()) {
+            return computePostSetOpSubstMapForSelectElement(freeVarsPostSetOp);
+        } else {
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, selectBlockLeft.getSourceLocation(),
+                    "");
+        }
+    }
+
+    private Pair<Map<VariableExpr, VariableExpr>, Map<VariableExpr, String>> computePostSetOpSubstMapForSelectRegular(
+            Set<VariableExpr> freeVarsPostSetOp, SelectBlock selectBlock) throws CompilationException {
+        // For regular SELECT we need to add ORDERBY/LIMIT free variables to the projection list of the SELECT clause,
+        // so they can be accessed using field-access-by-name after SELECT.
+        // Some of these variables might be already projected by SELECT, so we need to account for that.
+        // We currently do not support (fail) SELECT v.* because in this case we cannot statically compute
+        // the schema of the record produced by the SELECT and therefore cannot guarantee that the field
+        // names we generate will not conflict with the existing fields in the SELECT output.
+        // The added projections will be later removed by the outer query.
+
+        Map<VariableExpr, String> extraProjections = Collections.emptyMap();
+        Map<VariableExpr, VariableExpr> freeVarsPostSetOpSubstMap = new HashMap<>();
+
+        List<Projection> projectionList = selectBlock.getSelectClause().getSelectRegular().getProjections();
+        List<VariableExpr> gbyBindingVars = null, postGbyBindingVars = null;
+        for (VariableExpr freeVarPostSetOp : freeVarsPostSetOp) {
+            String projectionName = null;
+            for (int i = projectionList.size() - 1; i >= 0; i--) {
+                Projection projection = projectionList.get(i);
+                if (projection.varStar()) {
+                    throw new CompilationException(ErrorCode.UNSUPPORTED_GBY_OBY_SELECT_COMBO,
+                            selectBlock.getSourceLocation());
+                } else if (projection.star()) {
+                    if (gbyBindingVars == null) {
+                        gbyBindingVars = SqlppVariableUtil.getBindingVariables(selectBlock.getGroupbyClause());
+                    }
+                    if (postGbyBindingVars == null) {
+                        postGbyBindingVars = selectBlock.hasLetHavingClausesAfterGroupby()
+                                ? SqlppVariableUtil.getLetBindingVariables(selectBlock.getLetHavingListAfterGroupby())
+                                : Collections.emptyList();
+                    }
+                    if (gbyBindingVars.contains(freeVarPostSetOp) || postGbyBindingVars.contains(freeVarPostSetOp)) {
+                        projectionName = SqlppVariableUtil
+                                .variableNameToDisplayedFieldName(freeVarPostSetOp.getVar().getValue());
+                        break;
+                    }
+                } else if (projection.hasName()) {
+                    if (projection.getExpression().equals(freeVarPostSetOp)) {
+                        projectionName = projection.getName();
+                        break;
+                    }
+                } else {
+                    throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, selectBlock.getSourceLocation(),
+                            "");
+                }
+            }
+
+            boolean newProjection = false;
+            if (projectionName == null) {
+                newProjection = true;
+                projectionName = generateProjectionName(projectionList);
+            }
+
+            VariableExpr substExpr = new VariableExpr(SqlppVariableUtil.toInternalVariableIdentifier(projectionName));
+            substExpr.setSourceLocation(freeVarPostSetOp.getSourceLocation());
+            freeVarsPostSetOpSubstMap.put(freeVarPostSetOp, substExpr);
+
+            if (newProjection) {
+                if (extraProjections.isEmpty()) {
+                    extraProjections = new LinkedHashMap<>();
+                }
+                extraProjections.put(freeVarPostSetOp, projectionName);
+            }
+        }
+
+        return new Pair<>(freeVarsPostSetOpSubstMap, extraProjections);
+    }
+
+    private Pair<Map<VariableExpr, VariableExpr>, Map<VariableExpr, String>> computePostSetOpSubstMapForSelectElement(
+            Set<VariableExpr> freeVarsPostSetOp) {
+        // For SELECT VALUE we first need to convert it to the regular SELECT, so we can then
+        // add ORDERBY/LIMIT free variables to the projection list of this regular SELECT clause.
+        // They can be accessed using field-access-by-name after SELECT.
+        // SELECT VALUE to regular conversion will be reversed later.
+        Map<VariableExpr, VariableExpr> freeVarsPostSetOpSubstMap = new HashMap<>();
+        Map<VariableExpr, String> extraProjections = new LinkedHashMap<>();
+        for (VariableExpr freeVarPostSelect : freeVarsPostSetOp) {
+            String projectionName =
+                    SqlppVariableUtil.variableNameToDisplayedFieldName(context.newVariable().getValue());
+            VariableExpr substExpr = new VariableExpr(SqlppVariableUtil.toInternalVariableIdentifier(projectionName));
+            substExpr.setSourceLocation(freeVarPostSelect.getSourceLocation());
+            freeVarsPostSetOpSubstMap.put(freeVarPostSelect, substExpr);
+            extraProjections.put(freeVarPostSelect, projectionName);
+        }
+
+        return new Pair<>(freeVarsPostSetOpSubstMap, extraProjections);
+    }
+
+    private Set<VariableExpr> getFreeVarsPostSetOp(SelectExpression selectExpression) throws CompilationException {
+        if (selectExpression.hasOrderby() || selectExpression.hasLimit()) {
+            Set<VariableExpr> freeVars = new ListSet<>();
+            FreeVariableVisitor freeVarsVisitor = new FreeVariableVisitor();
+            if (selectExpression.hasOrderby()) {
+                selectExpression.getOrderbyClause().accept(freeVarsVisitor, freeVars);
+            }
+            if (selectExpression.hasLimit()) {
+                selectExpression.getLimitClause().accept(freeVarsVisitor, freeVars);
+            }
+            return freeVars;
+        } else {
+            return Collections.emptySet();
+        }
+    }
+
+    private boolean isMultiGroupingSets(SelectBlock selectBlock) {
+        return selectBlock.getGroupbyClause().getGbyPairList().size() > 1;
+    }
+
+    private SelectBlock rewriteSelectBlock(SelectBlock selectBlock, Map<VariableExpr, String> extraProjections)
+            throws CompilationException {
+        if (isMultiGroupingSets(selectBlock)) {
+            return rewriteMultipleGroupingSets(selectBlock, extraProjections);
+        } else {
+            if (!extraProjections.isEmpty()) {
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, selectBlock.getSourceLocation(),
+                        extraProjections.toString());
+            }
+            return rewriteZeroOrOneGroupingSet(selectBlock);
+        }
     }
 
     private SelectBlock rewriteZeroOrOneGroupingSet(SelectBlock selectBlock) throws CompilationException {
-        // no UNION ALL, we only need to rewrite GROUPING(..) operations
+        // no UNION ALL if there's only one grouping set (or zero), but we still need to rewrite GROUPING(..) operations
         GroupbyClause gby = selectBlock.getGroupbyClause();
         List<List<GbyVariableExpressionPair>> groupingSets = gby.getGbyPairList();
         if (groupingSets.size() > 1) {
@@ -110,17 +294,29 @@
         return selectBlock;
     }
 
-    private SelectBlock rewriteMultipleGroupingSets(SelectBlock selectBlock) throws CompilationException {
+    private SelectBlock rewriteMultipleGroupingSets(SelectBlock selectBlock, Map<VariableExpr, String> extraProjections)
+            throws CompilationException {
         GroupbyClause gby = selectBlock.getGroupbyClause();
         List<List<GbyVariableExpressionPair>> groupingSets = gby.getGbyPairList();
-        if (groupingSets.size() <= 1 || !gby.getDecorPairList().isEmpty()) {
+        int nGroupingSets = groupingSets.size();
+        if (nGroupingSets <= 1 || !gby.getDecorPairList().isEmpty()) {
             throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, gby.getSourceLocation(), "");
         }
 
+        SelectClause selectClause = selectBlock.getSelectClause();
+        boolean distinct = selectClause.distinct();
+        boolean selectElement = selectClause.selectElement();
+        boolean selectElementConvertToRegular = selectElement && !extraProjections.isEmpty();
+
+        // If we're converting SELECT VALUE to regular SELECT then we need to generate a field name
+        // that'll hold SELECT VALUE expression after the conversion.
+        // SELECT VALUE expr -> SELECT expr AS main_projection_name
+        String selectElementMainProjectionName = selectElementConvertToRegular
+                ? SqlppVariableUtil.variableNameToDisplayedFieldName(context.newVariable().getValue()) : null;
+
         tmpAllGroupingSetsVars.clear();
         getAllGroupingSetsVars(groupingSets, tmpAllGroupingSetsVars);
 
-        int nGroupingSets = groupingSets.size();
         List<SetOperationRight> newSetOpRightInputs = new ArrayList<>(nGroupingSets - 1);
 
         // process 2nd and following grouping sets
@@ -136,12 +332,12 @@
             gby.setGbyPairList(tmpGroupingSets); // will be cloned by deepCopy() below
 
             tmpDecorPairList.clear();
-            computeDecorVars(tmpAllGroupingSetsVars, tmpCurrentGroupingSetVars, tmpDecorPairList);
+            computeDecorVars(tmpCurrentGroupingSetVars, tmpAllGroupingSetsVars, tmpDecorPairList);
             gby.setDecorPairList(tmpDecorPairList); // will be cloned by deepCopy() below
 
             SelectBlock newSelectBlock = (SelectBlock) SqlppRewriteUtil.deepCopy(selectBlock);
-
-            rewriteGroupingOperations(newSelectBlock, tmpAllGroupingSetsVars, tmpCurrentGroupingSetVars);
+            rewriteGroupingOperations(newSelectBlock, tmpCurrentGroupingSetVars, tmpAllGroupingSetsVars);
+            rewriteSelectClause(newSelectBlock, extraProjections, selectElementMainProjectionName);
 
             SetOperationRight newSetOpRight =
                     new SetOperationRight(SetOpType.UNION, false, new SetOperationInput(newSelectBlock, null));
@@ -157,10 +353,11 @@
         getGroupingSetVars(groupingSet, tmpCurrentGroupingSetVars);
 
         List<GbyVariableExpressionPair> newDecorPairList = new ArrayList<>();
-        computeDecorVars(tmpAllGroupingSetsVars, tmpCurrentGroupingSetVars, newDecorPairList);
+        computeDecorVars(tmpCurrentGroupingSetVars, tmpAllGroupingSetsVars, newDecorPairList);
         gby.setDecorPairList(newDecorPairList);
 
-        rewriteGroupingOperations(selectBlock, tmpAllGroupingSetsVars, tmpCurrentGroupingSetVars);
+        rewriteGroupingOperations(selectBlock, tmpCurrentGroupingSetVars, tmpAllGroupingSetsVars);
+        rewriteSelectClause(selectBlock, extraProjections, selectElementMainProjectionName);
 
         SetOperationInput newSetOpInput = new SetOperationInput(selectBlock, null);
 
@@ -170,7 +367,100 @@
         SelectExpression newSelectExpr = new SelectExpression(null, newSetOp, null, null, true);
         newSelectExpr.setSourceLocation(selectBlock.getSourceLocation());
 
-        return SetOperationVisitor.createSelectBlock(newSelectExpr, context);
+        return selectElement
+                ? SetOperationVisitor.createSelectBlock(newSelectExpr, distinct,
+                        selectElementConvertToRegular ? SqlppGroupingSetsVisitor::getFieldByName : null,
+                        selectElementConvertToRegular ? selectElementMainProjectionName : null, context)
+                : SetOperationVisitor.createSelectBlock(newSelectExpr, distinct,
+                        SqlppGroupingSetsVisitor::removeFieldsByName, extraProjections.values(), context);
+    }
+
+    private static void rewriteSelectClause(SelectBlock selectBlock, Map<VariableExpr, String> extraProjections,
+            String selectElementMainProjectionName) throws CompilationException {
+        SelectClause selectClause = selectBlock.getSelectClause();
+        // unset distinct. we'll have it in the outer select if needed
+        selectClause.setDistinct(false);
+        if (!extraProjections.isEmpty()) {
+            if (selectClause.selectElement()) {
+                selectClause = convertSelectElementToRegular(selectClause, selectElementMainProjectionName);
+            }
+            insertExtraProjections(selectClause, extraProjections);
+        }
+        selectBlock.setSelectClause(selectClause);
+    }
+
+    private static SelectClause convertSelectElementToRegular(SelectClause selectClause, String mainProjectionName)
+            throws CompilationException {
+        if (!selectClause.selectElement() || selectClause.distinct()) {
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, selectClause.getSourceLocation(), "");
+        }
+        SelectElement selectElement = selectClause.getSelectElement();
+        List<Projection> projectionList = new ArrayList<>(1);
+        projectionList.add(new Projection(selectElement.getExpression(), mainProjectionName, false, false));
+        SelectRegular newSelectRegular = new SelectRegular(projectionList);
+        newSelectRegular.setSourceLocation(selectElement.getSourceLocation());
+        SelectClause newSelectClause = new SelectClause(null, newSelectRegular, selectClause.distinct());
+        newSelectClause.setSourceLocation(selectClause.getSourceLocation());
+        return newSelectClause;
+    }
+
+    private static void insertExtraProjections(SelectClause selectClause, Map<VariableExpr, String> projections)
+            throws CompilationException {
+        if (!selectClause.selectRegular()) {
+            // "SELECT VALUE expr" should've been rewritten earlier into "SELECT expr AS $n"
+            throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, selectClause.getSourceLocation(), "");
+        }
+        SelectRegular selectRegular = selectClause.getSelectRegular();
+        for (Map.Entry<VariableExpr, String> me : projections.entrySet()) {
+            Projection newProjection =
+                    new Projection((VariableExpr) SqlppRewriteUtil.deepCopy(me.getKey()), me.getValue(), false, false);
+            selectRegular.getProjections().add(newProjection);
+        }
+    }
+
+    private static Expression removeFieldsByName(Expression inExpr, Collection<String> fieldNames) {
+        //TODO(dmitry): need to enhance RECORD_REMOVE to accept an array of field names the should be removed.
+        //Until that's implemented we can only remove them one by one.
+        Expression resultExpr = inExpr;
+        for (String fieldName : fieldNames) {
+            LiteralExpr fieldNameExpr = new LiteralExpr(new StringLiteral(fieldName));
+            fieldNameExpr.setSourceLocation(resultExpr.getSourceLocation());
+            List<Expression> argList = new ArrayList<>(2);
+            argList.add(resultExpr);
+            argList.add(fieldNameExpr);
+            CallExpr callExpr = new CallExpr(new FunctionSignature(BuiltinFunctions.RECORD_REMOVE), argList);
+            callExpr.setSourceLocation(resultExpr.getSourceLocation());
+            resultExpr = callExpr;
+        }
+        return resultExpr;
+    }
+
+    private static Expression getFieldByName(Expression inExpr, String fieldName) {
+        LiteralExpr fieldNameExpr = new LiteralExpr(new StringLiteral(fieldName));
+        fieldNameExpr.setSourceLocation(inExpr.getSourceLocation());
+        List<Expression> argList = new ArrayList<>(2);
+        argList.add(inExpr);
+        argList.add(fieldNameExpr);
+        CallExpr callExpr = new CallExpr(new FunctionSignature(BuiltinFunctions.FIELD_ACCESS_BY_NAME), argList);
+        callExpr.setSourceLocation(inExpr.getSourceLocation());
+        return callExpr;
+    }
+
+    private String generateProjectionName(List<Projection> projectionList) {
+        String projectionName;
+        do {
+            projectionName = SqlppVariableUtil.variableNameToDisplayedFieldName(context.newVariable().getValue());
+        } while (findProjectionByName(projectionList, projectionName) != null);
+        return projectionName;
+    }
+
+    private static Projection findProjectionByName(List<Projection> projectionList, String name) {
+        for (Projection projection : projectionList) {
+            if (projection.hasName() && projection.getName().equals(name)) {
+                return projection;
+            }
+        }
+        return null;
     }
 
     /**
@@ -180,16 +470,16 @@
      * The remaining GROUPING() operations are invalid and will lead to a compile-time failure later
      * because there's no runtime for GROUPING() function.
      */
-    private void rewriteGroupingOperations(SelectBlock selectBlock, Set<VariableExpr> allGroupingSetsVars,
-            Set<VariableExpr> currentGroupingSetVars) throws CompilationException {
+    private static void rewriteGroupingOperations(SelectBlock selectBlock, Set<VariableExpr> currentGroupingSetVars,
+            Set<VariableExpr> allGroupingSetsVars) throws CompilationException {
         if (selectBlock.hasLetHavingClausesAfterGroupby()) {
             for (Clause clause : selectBlock.getLetHavingListAfterGroupby()) {
                 if (clause.getClauseType() == Clause.ClauseType.LET_CLAUSE) {
                     LetClause letClause = (LetClause) clause;
                     Expression letExpr = letClause.getBindingExpr();
                     if (SqlppGroupByVisitor.isGroupingOperation(letExpr)) {
-                        Expression newLetExpr = rewriteGroupingOperation((CallExpr) letExpr, allGroupingSetsVars,
-                                currentGroupingSetVars);
+                        Expression newLetExpr = rewriteGroupingOperation((CallExpr) letExpr, currentGroupingSetVars,
+                                allGroupingSetsVars);
                         letClause.setBindingExpr(newLetExpr);
                     }
                 }
@@ -197,8 +487,8 @@
         }
     }
 
-    private Expression rewriteGroupingOperation(CallExpr callExpr, Set<VariableExpr> allGroupingSetsVars,
-            Set<VariableExpr> currentGroupingSetVars) throws CompilationException {
+    private static Expression rewriteGroupingOperation(CallExpr callExpr, Set<VariableExpr> currentGroupingSetVars,
+            Set<VariableExpr> allGroupingSetsVars) throws CompilationException {
         List<Expression> argList = callExpr.getExprList();
         if (argList.isEmpty()) {
             throw new CompilationException(ErrorCode.COMPILATION_INVALID_NUM_OF_ARGS, callExpr.getSourceLocation(),
@@ -247,8 +537,8 @@
         }
     }
 
-    private static void computeDecorVars(Set<VariableExpr> allGroupingSetsVars,
-            Set<VariableExpr> currentGroupingSetVars, List<GbyVariableExpressionPair> outDecorPairList) {
+    private static void computeDecorVars(Set<VariableExpr> currentGroupingSetVars,
+            Set<VariableExpr> allGroupingSetsVars, List<GbyVariableExpressionPair> outDecorPairList) {
         for (VariableExpr var : allGroupingSetsVars) {
             if (!currentGroupingSetVars.contains(var)) {
                 LiteralExpr nullExpr = new LiteralExpr(NullLiteral.INSTANCE);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppSpecialFunctionNameRewriteVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppSpecialFunctionNameRewriteVisitor.java
new file mode 100644
index 0000000..7d892d6
--- /dev/null
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppSpecialFunctionNameRewriteVisitor.java
@@ -0,0 +1,68 @@
+/*
+ * 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.lang.sqlpp.rewrites.visitor;
+
+import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.common.functions.FunctionConstants;
+import org.apache.asterix.common.functions.FunctionSignature;
+import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.base.ILangExpression;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
+import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
+import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
+
+public final class SqlppSpecialFunctionNameRewriteVisitor extends AbstractSqlppSimpleExpressionVisitor {
+
+    @Override
+    public Expression visit(CallExpr callExpr, ILangExpression arg) throws CompilationException {
+        callExpr.setFunctionSignature(
+                rewriteCoreAggregateFunction(callExpr.getFunctionSignature(), callExpr.getSourceLocation()));
+        return super.visit(callExpr, arg);
+    }
+
+    @Override
+    public Expression visit(WindowExpression winExpr, ILangExpression arg) throws CompilationException {
+        winExpr.setFunctionSignature(
+                rewriteCoreAggregateFunction(winExpr.getFunctionSignature(), winExpr.getSourceLocation()));
+        return super.visit(winExpr, arg);
+    }
+
+    private static FunctionSignature rewriteCoreAggregateFunction(FunctionSignature fs, SourceLocation sourceLoc)
+            throws CompilationException {
+        FunctionIdentifier coreAggregate = FunctionMapUtil.findInternalCoreAggregateFunction(fs);
+        if (coreAggregate != null) {
+            return new FunctionSignature(FunctionConstants.ASTERIX_DV, coreAggregate.getName(), fs.getArity());
+        }
+        if (FunctionMapUtil.isSql92AggregateFunction(fs)) {
+            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                    fs.getName() + " is a SQL-92 aggregate function. The SQL++ core aggregate function "
+                            + FunctionMapUtil.sql92ToCoreAggregateFunction(fs).getName()
+                            + " could potentially express the intent.");
+        }
+        if (FunctionMapUtil.getInternalWindowFunction(fs) != null) {
+            throw new CompilationException(ErrorCode.COMPILATION_UNEXPECTED_WINDOW_EXPRESSION, sourceLoc);
+        }
+        return fs;
+    }
+}
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 95ca9b1..a46f10b 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
@@ -25,8 +25,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.FunctionConstants;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.lang.common.expression.CallExpr;
@@ -36,7 +34,6 @@
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-import org.apache.hyracks.api.exceptions.SourceLocation;
 
 public class FunctionMapUtil {
 
@@ -112,49 +109,28 @@
      *         false otherwise.
      */
     public static boolean isCoreAggregateFunction(FunctionSignature fs) {
-        String internalName = getInternalCoreAggregateFunctionName(fs);
-        if (internalName != null) {
-            FunctionIdentifier fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, internalName, fs.getArity());
-            IFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi);
-            return finfo != null && BuiltinFunctions.getAggregateFunction(finfo.getFunctionIdentifier()) != null;
-        }
-        return false;
+        return findInternalCoreAggregateFunction(fs) != null;
     }
 
     /**
-     * Maps a user invoked function signature to a system internal function signature.
+     * Returns a function identifier of an internal core aggregate function
+     * that this SQL++ core aggregate function maps to.
+     * Returns {@code null} if given function is not a SQL++ core aggregate function
      *
-     * @param fs
-     *            the user typed function.
-     * @param checkSql92Aggregate
-     *            enable check if the function is a SQL-92 aggregate function
-     * @param sourceLoc
-     *            the source location of the function call
-     * @return the system internal function.
-     * @throws CompilationException
-     *             if checkSql92Aggregate is true and the function is a SQL-92 aggregate function
+     * @param fs the function signature.
      */
-    public static FunctionSignature normalizeBuiltinFunctionSignature(FunctionSignature fs, boolean checkSql92Aggregate,
-            SourceLocation sourceLoc) throws CompilationException {
-        FunctionSignature ns = CommonFunctionMapUtil.normalizeBuiltinFunctionSignature(fs);
-        String internalName = getInternalCoreAggregateFunctionName(ns);
-        if (internalName != null) {
-            FunctionIdentifier fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, internalName, ns.getArity());
-            IFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi);
-            if (finfo != null && BuiltinFunctions.getAggregateFunction(finfo.getFunctionIdentifier()) != null) {
-                return new FunctionSignature(FunctionConstants.ASTERIX_DV, internalName, ns.getArity());
-            }
-        } else if (checkSql92Aggregate) {
-            if (isSql92AggregateFunction(ns)) {
-                throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
-                        fs.getName() + " is a SQL-92 aggregate function. The SQL++ core aggregate function "
-                                + sql92ToCoreAggregateFunction(ns).getName()
-                                + " could potentially express the intent.");
-            } else if (getInternalWindowFunction(ns) != null) {
-                throw new CompilationException(ErrorCode.COMPILATION_UNEXPECTED_WINDOW_EXPRESSION, sourceLoc);
-            }
+    public static FunctionIdentifier findInternalCoreAggregateFunction(FunctionSignature fs) {
+        String internalName = getInternalCoreAggregateFunctionName(fs);
+        if (internalName == null) {
+            return null;
         }
-        return new FunctionSignature(ns.getDataverseName(), ns.getName(), ns.getArity());
+        FunctionIdentifier fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, internalName, fs.getArity());
+        IFunctionInfo finfo = FunctionUtil.getFunctionInfo(fi);
+        if (finfo == null) {
+            return null;
+        }
+        FunctionIdentifier fid = finfo.getFunctionIdentifier();
+        return BuiltinFunctions.getAggregateFunction(fid) != null ? fid : null;
     }
 
     /**
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppStatementUtil.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppStatementUtil.java
index 9336c79..5281dd9 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppStatementUtil.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppStatementUtil.java
@@ -34,6 +34,9 @@
     public static final String DROP_INDEX = "DROP INDEX ";
     public static final String ON = " ON ";
     public static final String WHERE = " WHERE ";
+    public static final String AND = " AND ";
+    public static final String OR = " OR ";
+    public static final String NOT = " NOT ";
     public static final char SEMI_COLON = ';';
     public static final char DOT = '.';
     public static final char COLON = ':';
@@ -108,7 +111,7 @@
 
     /**
      * Encloses each part of the {@param dataverseName} in back-ticks and concatenates them with
-     * {@link DataverseName#SEPARATOR_CHAR} separator
+     * {@link #DOT} separator
      * @param stringBuilder where the dataverse name will be appended
      * @param dataverseName a dataverse name which could be a valid one or one that needs to be delimited
      * @return {@param stringBuilder} with the <i>delimited</i> dataverseName appended
@@ -117,7 +120,7 @@
         List<String> parts = dataverseName.getParts();
         for (int i = 0, ln = parts.size(); i < ln; i++) {
             if (i > 0) {
-                stringBuilder.append(DataverseName.SEPARATOR_CHAR);
+                stringBuilder.append(DOT);
             }
             enclose(stringBuilder, parts.get(i));
         }
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
index 7a8f47f..d6ee1fc 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java
@@ -23,10 +23,10 @@
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.lang.common.expression.CallExpr;
-import org.apache.asterix.lang.common.util.FunctionUtil;
 import org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Function;
+import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
 
@@ -44,20 +44,26 @@
     @Override
     public Boolean visit(CallExpr callExpr, Void arg) throws CompilationException {
         FunctionSignature fs = callExpr.getFunctionSignature();
-        IFunctionInfo fi = FunctionUtil.getBuiltinFunctionInfo(fs.getName(), fs.getArity());
-        if (fi != null) {
-            if (!fi.isFunctional()) {
+        IFunctionInfo finfo = BuiltinFunctions.getBuiltinFunctionInfo(fs.createFunctionIdentifier());
+        if (finfo != null) {
+            if (!finfo.isFunctional()) {
                 return true;
             }
         } else {
+            Function function;
             try {
-                Function function =
-                        FunctionUtil.lookupUserDefinedFunctionDecl(metadataProvider.getMetadataTxnContext(), fs);
-                if (function != null && function.getDeterministic() != null && !function.getDeterministic()) {
-                    return true;
-                }
+                function = metadataProvider.lookupUserDefinedFunction(fs);
             } catch (AlgebricksException e) {
-                throw new CompilationException(ErrorCode.METADATA_ERROR, e, callExpr.getSourceLocation());
+                throw new CompilationException(ErrorCode.METADATA_ERROR, e, callExpr.getSourceLocation(), e.toString());
+            }
+            if (function == null || function.getDeterministic() == null) {
+                // fail if function not found because all functions must have been resolved at this point
+                // fail if function does not define deterministic property (because it's a SQL++ function
+                // and they were supposed to be inlined at this point)
+                throw new CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE, callExpr.getSourceLocation(), fs);
+            }
+            if (!function.getDeterministic()) {
+                return true;
             }
         }
         return super.visit(callExpr, arg);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckSql92AggregateVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckSql92AggregateVisitor.java
index a2dafbd..027560c 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckSql92AggregateVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckSql92AggregateVisitor.java
@@ -128,7 +128,7 @@
             return true;
         }
 
-        if (!ia.isAny() && ia.getIndexExpr().accept(this, parentSelectBlock)) {
+        if (ia.getIndexExpr() != null && ia.getIndexExpr().accept(this, parentSelectBlock)) {
             return true;
         }
 
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java
index 70ebcfc..684a738 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java
@@ -481,7 +481,7 @@
         if (ia.getIndexExpr() != null) {
             indexExpr = (Expression) ia.getIndexExpr().accept(this, arg);
         }
-        IndexAccessor copy = new IndexAccessor(expr, indexExpr);
+        IndexAccessor copy = new IndexAccessor(expr, ia.getIndexKind(), indexExpr);
         copy.setSourceLocation(ia.getSourceLocation());
         copy.addHints(ia.getHints());
         return copy;
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppAstPrintVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppAstPrintVisitor.java
index 7c9a4a7..038be3e 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppAstPrintVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppAstPrintVisitor.java
@@ -57,9 +57,7 @@
 import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
 import org.apache.asterix.lang.sqlpp.expression.WindowExpression;
 import org.apache.asterix.lang.sqlpp.struct.SetOperationRight;
-import org.apache.asterix.lang.sqlpp.util.FunctionMapUtil;
 import org.apache.asterix.lang.sqlpp.visitor.base.ISqlppVisitor;
-import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 
 public class SqlppAstPrintVisitor extends QueryPrintVisitor implements ISqlppVisitor<Void, Integer> {
@@ -252,11 +250,6 @@
     @Override
     public Void visit(CallExpr callExpr, Integer step) throws CompilationException {
         FunctionSignature functionSignature = callExpr.getFunctionSignature();
-        FunctionSignature normalizedFunctionSignature = FunctionMapUtil
-                .normalizeBuiltinFunctionSignature(functionSignature, false, callExpr.getSourceLocation());
-        if (BuiltinFunctions.isBuiltinCompilerFunction(normalizedFunctionSignature, true)) {
-            functionSignature = normalizedFunctionSignature;
-        }
         //TODO(MULTI_PART_DATAVERSE_NAME):temporary workaround to preserve AST reference results
         if (FunctionUtil.isBuiltinDatasetFunction(functionSignature)) {
             String singleArg = callExpr.getExprList().stream().map(LiteralExpr.class::cast).map(LiteralExpr::getValue)
@@ -366,7 +359,9 @@
 
     @Override
     public Void visit(WindowExpression winExpr, Integer step) throws CompilationException {
-        out.println(skip(step) + "WINDOW " + winExpr.getFunctionSignature() + "[");
+        out.print(skip(step) + "WINDOW ");
+        printFunctionSignature(out, winExpr.getFunctionSignature(), winExpr.getFunctionSignature().getArity());
+        out.println("[");
         for (Expression expr : winExpr.getExprList()) {
             expr.accept(this, step + 1);
         }
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppSubstituteExpressionVisitor.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppSubstituteExpressionVisitor.java
index 636f8a6..127e17a 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppSubstituteExpressionVisitor.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppSubstituteExpressionVisitor.java
@@ -39,7 +39,8 @@
 
     private final Map<Expression, Expression> exprMap = new HashMap<>();
 
-    public SqlppSubstituteExpressionVisitor(LangRewritingContext context, Map<Expression, Expression> exprMap) {
+    public SqlppSubstituteExpressionVisitor(LangRewritingContext context,
+            Map<? extends Expression, ? extends Expression> exprMap) {
         super(context);
         this.exprMap.putAll(exprMap);
     }
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index e1b93b9..b23492a 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -59,6 +59,7 @@
 import org.apache.asterix.common.annotations.InsertRandIntDataGen;
 import org.apache.asterix.common.annotations.ListDataGen;
 import org.apache.asterix.common.annotations.ListValFileDataGen;
+import org.apache.asterix.common.annotations.RangeAnnotation;
 import org.apache.asterix.common.annotations.SkipSecondaryIndexSearchExpressionAnnotation;
 import org.apache.asterix.common.annotations.TypeDataGen;
 import org.apache.asterix.common.annotations.UndeclaredFieldsDataGen;
@@ -118,6 +119,7 @@
 import org.apache.asterix.lang.common.literal.StringLiteral;
 import org.apache.asterix.lang.common.literal.TrueLiteral;
 import org.apache.asterix.lang.common.parser.ScopeChecker;
+import org.apache.asterix.lang.common.statement.AdapterDropStatement;
 import org.apache.asterix.lang.common.statement.CompactStatement;
 import org.apache.asterix.lang.common.statement.ConnectFeedStatement;
 import org.apache.asterix.lang.common.statement.StartFeedStatement;
@@ -231,13 +233,8 @@
     private static final String SETS = "SETS";
     private static final String TIES = "TIES";
     private static final String UNBOUNDED = "UNBOUNDED";
-    private static final String ACTION = "ACTION";
-    private static final String LANGUAGE = "LANGUAGE";
-    private static final String CALL = "CALL";
-    private static final String DETERMINISTIC = "DETERMINISTIC";
+    private static final String REPLACE = "REPLACE";
     private static final String RETURNS = "RETURNS";
-    private static final String INLINE = "INLINE";
-
 
     private static final String INT_TYPE_NAME = "int";
 
@@ -268,7 +265,7 @@
        public DataverseName dataverse;
        public String library;
        public String function;
-       public SqlppHint hint;
+       public Token hintToken;
        public SourceLocation sourceLoc;
     }
 
@@ -346,7 +343,8 @@
         });
     }
 
-    private Expression parseExpression() throws CompilationException {
+    @Override
+    public Expression parseExpression() throws CompilationException {
         return parseImpl(new ParseFunction<Expression>() {
             @Override
             public Expression parse() throws ParseException {
@@ -468,12 +466,20 @@
     }
 
     private boolean isToken(String image) {
+      return isToken(token, image);
+    }
+
+    private static boolean isToken(Token token, String image) {
       return token.image.equalsIgnoreCase(image);
     }
 
     private void expectToken(String image) throws SqlppParseException {
-      if (!isToken(image)) {
-        throw createUnexpectedTokenError();
+      expectToken(token, image);
+    }
+
+    private static void expectToken(Token token, String image) throws SqlppParseException {
+      if (!isToken(token, image)) {
+        throw createUnexpectedTokenError(token);
       }
     }
 
@@ -481,7 +487,7 @@
       return createUnexpectedTokenError(token, null);
     }
 
-    private SqlppParseException createUnexpectedTokenError(Token t) {
+    private static SqlppParseException createUnexpectedTokenError(Token t) {
       return createUnexpectedTokenError(t, null);
     }
 
@@ -489,7 +495,7 @@
       return createUnexpectedTokenError(token, expected);
     }
 
-    private SqlppParseException createUnexpectedTokenError(Token t, String expected) {
+    private static SqlppParseException createUnexpectedTokenError(Token t, String expected) {
       String message = "Unexpected token: " + LogRedactionUtil.userData(t.image) +
         (expected == null ? "" : ". Expected: " + LogRedactionUtil.userData(expected));
       return new SqlppParseException(getSourceLocation(t), message);
@@ -561,6 +567,13 @@
           "Unexpected return type declaration for function " + fnName);
       }
     }
+
+    private void ensureIntegerLiteral(LiteralExpr expr, String errorPrefix)  throws SqlppParseException {
+        Literal lit = expr.getValue();
+        if (lit.getLiteralType() != Literal.Type.INTEGER && lit.getLiteralType() != Literal.Type.LONG) {
+            throw new SqlppParseException(expr.getSourceLocation(), errorPrefix + " should be an INTEGER");
+        }
+    }
 }
 
 PARSER_END(SQLPPParser)
@@ -656,12 +669,13 @@
 {
   <CREATE> { startToken = token; }
   (
-    stmt = CreateTypeStatement(startToken)
+    stmt = CreateOrReplaceStatement(startToken)
+    | stmt = CreateTypeStatement(startToken)
     | stmt = CreateNodegroupStatement(startToken)
     | stmt = CreateDatasetStatement(startToken)
     | stmt = CreateIndexStatement(startToken)
     | stmt = CreateDataverseStatement(startToken)
-    | stmt = CreateFunctionStatement(startToken)
+    | stmt = CreateFunctionStatement(startToken, false)
     | stmt = CreateAdapterStatement(startToken)
     | stmt = CreateSynonymStatement(startToken)
     | stmt = CreateFeedStatement(startToken)
@@ -672,6 +686,23 @@
   }
 }
 
+Statement CreateOrReplaceStatement(Token startStmtToken) throws ParseException:
+{
+  Statement stmt = null;
+  Token replaceToken = null;
+}
+{
+  <OR> <IDENTIFIER> { replaceToken = token; }
+  (
+    stmt = CreateFunctionStatement(startStmtToken, true)
+  )
+  {
+    // check expected token here to make the grammar extension plugin happy
+    expectToken(replaceToken, REPLACE);
+    return stmt;
+  }
+}
+
 TypeDecl CreateTypeStatement(Token startStmtToken) throws ParseException:
 {
   TypeDecl stmt = null;
@@ -777,7 +808,6 @@
   TypeExpression typeExpr = null;
   TypeExpression metaTypeExpr = null;
   Pair<List<Integer>, List<List<String>>> primaryKeyFields = null;
-  String nodeGroupName = null;
   Map<String,String> hints = new HashMap<String,String>();
   DatasetDecl stmt = null;
   boolean autogenerated = false;
@@ -802,21 +832,15 @@
   ifNotExists = IfNotExists()
   primaryKeyFields = PrimaryKey()
   (<AUTOGENERATED> { autogenerated = true; } )?
-  (<ON> nodeGroupName = Identifier() )?
   ( <HINTS> hints = Properties() )?
   ( LOOKAHEAD(2) <WITH> <FILTER> <ON>  filterField = NestedField() )?
   ( <WITH> withRecord = RecordConstructor() )?
   {
-    if(filterField!=null && filterField.first!=0){
-      throw new SqlppParseException(getSourceLocation(startStmtToken),
-        "A filter field can only be a field in the main record of the dataset.");
-    }
-    InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second, primaryKeyFields.first, autogenerated,
-      filterField == null? null : filterField.second);
     try {
-      stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, metaTypeExpr,
-        nodeGroupName != null ? new Identifier(nodeGroupName) : null, hints, DatasetType.INTERNAL, idd, withRecord,
-        ifNotExists);
+      InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second, primaryKeyFields.first, autogenerated,
+        filterField == null? null : filterField.first, filterField == null? null : filterField.second);
+      stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, metaTypeExpr, hints,
+        DatasetType.INTERNAL, idd, withRecord, ifNotExists);
       return addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
@@ -831,7 +855,6 @@
   boolean ifNotExists = false;
   String adapterName = null;
   Map<String,String> properties = null;
-  String nodeGroupName = null;
   Map<String,String> hints = new HashMap<String,String>();
   DatasetDecl stmt = null;
   RecordConstructor withRecord = null;
@@ -841,7 +864,6 @@
   typeExpr = DatasetTypeSpecification()
   ifNotExists = IfNotExists()
   <USING> adapterName = AdapterName() properties = Configuration()
-  ( <ON> nodeGroupName = Identifier() )?
   ( <HINTS> hints = Properties() )?
   ( <WITH> withRecord = RecordConstructor() )?
   {
@@ -849,9 +871,8 @@
     edd.setAdapter(adapterName);
     edd.setProperties(properties);
     try {
-      stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, null,
-        nodeGroupName != null? new Identifier(nodeGroupName): null, hints, DatasetType.EXTERNAL, edd, withRecord,
-        ifNotExists);
+      stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, null, hints, DatasetType.EXTERNAL,
+        edd, withRecord, ifNotExists);
       return addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
@@ -1100,18 +1121,6 @@
   }
 }
 
-CreateFunctionStatement CreateFunctionStatement(Token startStmtToken) throws ParseException:
-{
-  CreateFunctionStatement stmt = null;
-}
-{
-  <FUNCTION> stmt = FunctionSpecification(startStmtToken)
-  {
-    return stmt;
-  }
-}
-
-
 CreateAdapterStatement CreateAdapterStatement(Token startStmtToken) throws ParseException:
 {
   CreateAdapterStatement stmt = null;
@@ -1125,49 +1134,48 @@
 
 CreateAdapterStatement AdapterSpecification(Token startStmtToken) throws ParseException:
 {
-  AdapterIdentifier signature = null;
-  Token beginPos;
-  Token endPos;
-  Pair<DataverseName,Identifier> adaptName = null;
-  DataverseName currentDataverse = defaultDataverse;
-  String lang = null;
-  String libName ="";
-  String externalIdent = "";
-  ListConstructor resources = null;
+  Pair<DataverseName,Identifier> adapterName = null;
+  Pair<DataverseName,Identifier> libraryName = null;
+  List<String> externalIdentifier = null;
   boolean ifNotExists = false;
 }
 {
-  adaptName = QualifiedName()
-  <IDENTIFIER> {expectToken(LANGUAGE);} lang = Identifier() <AS> libName = ConstantString() <COMMA>  externalIdent = ConstantString() ifNotExists = IfNotExists()
-    {
-      signature = new AdapterIdentifier(adaptName.getFirst(),adaptName.getSecond().getValue());
-      CreateAdapterStatement stmt =
-        new CreateAdapterStatement(signature, lang, libName, externalIdent,  ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
-    }
-
+  adapterName = QualifiedName()
+  ifNotExists = IfNotExists()
+  <AS> externalIdentifier = FunctionExternalIdentifier()
+  <AT> libraryName = QualifiedName()
+  {
+    CreateAdapterStatement stmt = new CreateAdapterStatement(adapterName.first, adapterName.second.getValue(),
+      libraryName.first, libraryName.second.getValue(), externalIdentifier, ifNotExists);
+    return addSourceLocation(stmt, startStmtToken);
+  }
 }
 
-CreateFunctionStatement FunctionSpecification(Token startStmtToken) throws ParseException:
+CreateFunctionStatement CreateFunctionStatement(Token startStmtToken, boolean orReplace) throws ParseException:
+{
+  CreateFunctionStatement stmt = null;
+}
+{
+  <FUNCTION> stmt = FunctionSpecification(startStmtToken, orReplace)
+  {
+    return stmt;
+  }
+}
+
+CreateFunctionStatement FunctionSpecification(Token startStmtToken, boolean orReplace) throws ParseException:
 {
   FunctionSignature signature = null;
-  boolean ifNotExists = false;
-  String functionBody = null;
-  VarIdentifier var = null;
-  Expression functionBodyExpr = null;
-  Token beginPos;
-  Token endPos;
   FunctionName fctName = null;
-  DataverseName currentDataverse = defaultDataverse;
-  TypeExpression returnType = null;
-  boolean deterministic = false;
-  boolean nullCall = false;
-  String lang = null;
-  String libName ="";
-  String externalIdent = "";
-  List<String> externalIdentList = null;
   List<Pair<VarIdentifier,TypeExpression>> params = null;
-  RecordConstructor resources = null;
+  TypeExpression returnType = null;
+  Token beginPos = null, endPos = null;
+  Expression functionBodyExpr = null;
+  Pair<DataverseName,Identifier> libraryName = null;
+  List<String> externalIdentifier = null;
+  RecordConstructor withOptions = null;
+  boolean ifNotExists = false;
+  CreateFunctionStatement stmt = null;
+  DataverseName currentDataverse = defaultDataverse;
 }
 {
   fctName = FunctionName()
@@ -1181,69 +1189,41 @@
     (
       <LEFTBRACE>
       {
-          createNewScope();
-          beginPos = token;
+        beginPos = token;
+        createNewScope();
       }
       functionBodyExpr = FunctionBody()
-      <RIGHTBRACE>{
-          endPos = token;
-          functionBody = extractFragment(beginPos.beginLine, beginPos.beginColumn, endPos.beginLine, endPos.beginColumn);
-          signature = new FunctionSignature(fctName.dataverse, fctName.function, params.size());
-          getCurrentScope().addFunctionDescriptor(signature, false);
-          removeCurrentScope();
-          defaultDataverse = currentDataverse;
-          ensureNoTypeDeclsInFunction(fctName.function, params, returnType, startStmtToken);
-          CreateFunctionStatement stmt = new CreateFunctionStatement(signature, params, functionBody, functionBodyExpr, ifNotExists);
-          return addSourceLocation(stmt, startStmtToken);
-        }
+      <RIGHTBRACE>
+      {
+        endPos = token;
+        String functionBody = extractFragment(beginPos.beginLine, beginPos.beginColumn, endPos.beginLine,
+          endPos.beginColumn);
+        signature = new FunctionSignature(fctName.dataverse, fctName.function, params.size());
+        getCurrentScope().addFunctionDescriptor(signature, false);
+        removeCurrentScope();
+        defaultDataverse = currentDataverse;
+        ensureNoTypeDeclsInFunction(fctName.function, params, returnType, startStmtToken);
+        stmt = new CreateFunctionStatement(signature, params, functionBody, functionBodyExpr, orReplace, ifNotExists);
+        return addSourceLocation(stmt, startStmtToken);
+      }
     )
   |
-     <IDENTIFIER> {expectToken(LANGUAGE);}
-     (
-        LOOKAHEAD({laIdentifier(INLINE)})
-        (
-              <IDENTIFIER> <AS>
-              {
-                  createNewScope();
-                  beginPos = token;
-              }
-              functionBodyExpr = FunctionBody()
-              {
-                  endPos = token;
-                  functionBody = extractFragment(beginPos.endLine, beginPos.beginColumn+1, endPos.endLine, endPos.endColumn+1);
-                  signature = new FunctionSignature(fctName.dataverse, fctName.function, params.size());
-                  getCurrentScope().addFunctionDescriptor(signature, false);
-                  removeCurrentScope();
-                  defaultDataverse = currentDataverse;
-                  ensureNoTypeDeclsInFunction(fctName.function, params, returnType, startStmtToken);
-                  CreateFunctionStatement stmt = new CreateFunctionStatement(signature, params, functionBody, functionBodyExpr, ifNotExists);
-                  return addSourceLocation(stmt, startStmtToken);
-              }
-        )
-        |
-        (
-              lang = Identifier()
-              ( (<NOT> <IDENTIFIER> {expectToken(DETERMINISTIC); deterministic = false;}) | (<IDENTIFIER> {expectToken(DETERMINISTIC); deterministic = true;}) )?
-              (<NULL> <IDENTIFIER> { expectToken(CALL); nullCall = true;})?
-              <AS> libName = ConstantString()
-              { externalIdentList = new ArrayList<String>(2); }
-              ( <COMMA>  externalIdent = ConstantString() { externalIdentList.add(externalIdent); } )+
-              (<WITH> resources = RecordConstructor())?
-              {
-                  signature = new FunctionSignature(fctName.dataverse, fctName.function, params.size());
-                  defaultDataverse = currentDataverse;
-                  CreateFunctionStatement stmt = null;
-                  try{
-                      stmt =
-                      new CreateFunctionStatement(signature, params, returnType, deterministic, nullCall,
-                                                   lang, libName, externalIdentList, resources,  ifNotExists);
-                  } catch (AlgebricksException e) {
-                      throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
-                  }
-                  return addSourceLocation(stmt, startStmtToken);
-              }
-        )
-     )
+    (
+      <AS> externalIdentifier = FunctionExternalIdentifier()
+      <AT> libraryName = QualifiedName()
+      (<WITH> withOptions = RecordConstructor())?
+      {
+        signature = new FunctionSignature(fctName.dataverse, fctName.function, params.size());
+        defaultDataverse = currentDataverse;
+        try {
+          stmt = new CreateFunctionStatement(signature, params, returnType, libraryName.first,
+            libraryName.second.getValue(), externalIdentifier, withOptions, orReplace, ifNotExists);
+        } catch (AlgebricksException e) {
+            throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
+        }
+        return addSourceLocation(stmt, startStmtToken);
+      }
+    )
   )
 }
 
@@ -1306,6 +1286,19 @@
   }
 }
 
+List<String> FunctionExternalIdentifier() throws ParseException:
+{
+  String ident = null;
+  List<String> identList = new ArrayList(2);
+}
+{
+  ident = StringLiteral() { identList.add(ident.trim()); }
+  ( <COMMA> ident = StringLiteral() { identList.add(ident.trim()); } )*
+  {
+    return identList;
+  }
+}
+
 CreateFeedStatement CreateFeedStatement(Token startStmtToken) throws ParseException:
 {
   CreateFeedStatement stmt = null;
@@ -1378,7 +1371,6 @@
   }
 }
 
-
 CreateSynonymStatement CreateSynonymStatement(Token startStmtToken) throws ParseException:
 {
   CreateSynonymStatement stmt = null;
@@ -1455,20 +1447,38 @@
 FunctionSignature FunctionSignature() throws ParseException:
 {
   FunctionName fctName = null;
+  List<Pair<VarIdentifier,TypeExpression>> params = null;
   int arity = 0;
 }
 {
-  fctName = FunctionName() <ATT> <INTEGER_LITERAL>
-    {
-      arity = new Integer(token.image);
-      if (arity < 0 && arity != FunctionIdentifier.VARARGS) {
-        throw new SqlppParseException(getSourceLocation(token), "Invalid arity:" + arity);
-      }
+  fctName = FunctionName()
+  (
+    LOOKAHEAD(2) params = FunctionParameters() { arity = params.size(); }
+  | ( <LEFTPAREN> arity = FunctionArity() <RIGHTPAREN> )
+  | ( <ATT> arity = FunctionArity() ) // back-compat
+  )
+  {
+    return new FunctionSignature(fctName.dataverse, fctName.function, arity);
+  }
+}
 
-      // TODO use fctName.library
-      String fqFunctionName = fctName.library == null ? fctName.function : fctName.library + "#" + fctName.function;
-      return new FunctionSignature(fctName.dataverse, fqFunctionName, arity);
+int FunctionArity() throws ParseException:
+{
+  int arity;
+}
+{
+  <INTEGER_LITERAL>
+  {
+    try {
+      arity = Integer.parseInt(token.image);
+    } catch (NumberFormatException e) {
+      throw new SqlppParseException(getSourceLocation(token), "Invalid arity: " + token.image);
     }
+    if (arity < 0 && arity != FunctionIdentifier.VARARGS) {
+      throw new SqlppParseException(getSourceLocation(token), "Invalid arity: " + arity);
+    }
+    return arity;
+  }
 }
 
 Pair<List<Integer>, List<List<String>>> PrimaryKey() throws ParseException:
@@ -1507,6 +1517,7 @@
     | stmt = DropNodeGroupStatement(startToken)
     | stmt = DropTypeStatement(startToken)
     | stmt = DropDataverseStatement(startToken)
+    | stmt = DropAdapterStatement(startToken)
     | stmt = DropFunctionStatement(startToken)
     | stmt = DropFeedStatement(startToken)
     | stmt = DropFeedPolicyStatement(startToken)
@@ -1637,6 +1648,30 @@
   }
 }
 
+AdapterDropStatement DropAdapterStatement(Token startStmtToken) throws ParseException:
+{
+  AdapterDropStatement stmt = null;
+}
+{
+  <ADAPTER> stmt = DropAdapterSpecification(startStmtToken)
+  {
+    return stmt;
+  }
+}
+
+AdapterDropStatement DropAdapterSpecification(Token startStmtToken) throws ParseException:
+{
+  Pair<DataverseName,Identifier> adapterName = null;
+  boolean ifExists = false;
+}
+{
+  adapterName = QualifiedName() ifExists = IfExists()
+  {
+    AdapterDropStatement stmt = new AdapterDropStatement(adapterName.first, adapterName.second.getValue(), ifExists);
+    return addSourceLocation(stmt, startStmtToken);
+  }
+}
+
 FunctionDropStatement DropFunctionStatement(Token startStmtToken) throws ParseException:
 {
   FunctionDropStatement stmt = null;
@@ -2294,19 +2329,19 @@
 
 FunctionName FunctionName() throws ParseException:
 {
-  Triple<List<String>, SourceLocation, SqlppHint> prefix = null;
+  Triple<List<String>, SourceLocation, Token> prefix = null;
   String suffix = null;
 }
 {
   // Note: there's a copy of this production in PrimaryExpr() (LOOKAHEAD for FunctionCallExpr())
   //       that copy must be kept in sync with this code
   prefix = MultipartIdentifierWithHints(SqlppHint.INDEXED_NESTED_LOOP_JOIN_HINT,
-    SqlppHint.SKIP_SECONDARY_INDEX_SEARCH_HINT)
+    SqlppHint.SKIP_SECONDARY_INDEX_SEARCH_HINT, SqlppHint.RANGE_HINT)
   (<SHARP> suffix = Identifier())?
   {
     FunctionName result = new FunctionName();
     result.sourceLoc = prefix.second;
-    result.hint = prefix.third;
+    result.hintToken = prefix.third;
     List<String> list = prefix.first;
     int ln = list.size();
     String last = list.get(ln - 1);
@@ -2450,7 +2485,7 @@
 
 List<String> MultipartIdentifier() throws ParseException:
 {
-  Triple<List<String>, SourceLocation, SqlppHint> result = null;
+  Triple<List<String>, SourceLocation, Token> result = null;
 }
 {
   result = MultipartIdentifierWithHints(null)
@@ -2459,12 +2494,12 @@
   }
 }
 
-Triple<List<String>, SourceLocation, SqlppHint> MultipartIdentifierWithHints(SqlppHint... expectedHints)
+Triple<List<String>, SourceLocation, Token> MultipartIdentifierWithHints(SqlppHint... expectedHints)
   throws ParseException:
 {
   List<String> list = new ArrayList<String>();
   SourceLocation sourceLoc = null;
-  SqlppHint hint = null;
+  Token hint = null;
   String item = null;
 }
 {
@@ -2473,15 +2508,12 @@
     list.add(item);
     sourceLoc = getSourceLocation(token);
     if (expectedHints != null && expectedHints.length > 0) {
-      Token hintToken = fetchHint(token, expectedHints);
-      if (hintToken != null) {
-        hint = hintToken.hint;
-      }
+      hint = fetchHint(token, expectedHints);
     }
   }
   (<DOT> item = Identifier() { list.add(item); } )*
   {
-    return new Triple<List<String>, SourceLocation, SqlppHint>(list, sourceLoc, hint);
+    return new Triple<List<String>, SourceLocation, Token>(list, sourceLoc, hint);
   }
 }
 
@@ -3060,49 +3092,33 @@
 AbstractAccessor IndexAccessor(Expression inputExpr) throws ParseException:
 {
   Token startToken = null;
-  boolean isListSliceExpression = false;
-  AbstractAccessor resultExpression = null;
-  Expression argumentExpression1 = null;
-  Expression argumentExpression2 = null;
+  boolean star = false, slice = false;
+  Expression expr1 = null, expr2 = null;
 }
 {
   <LEFTBRACKET> { startToken = token; }
-  ( argumentExpression1 = Expression()
-    {
-        if (argumentExpression1.getKind() == Expression.Kind.LITERAL_EXPRESSION)
-        {
-            Literal lit = ((LiteralExpr)argumentExpression1).getValue();
-            if (lit.getLiteralType() != Literal.Type.INTEGER &&
-                lit.getLiteralType() != Literal.Type.LONG) {
-                throw new SqlppParseException(argumentExpression1.getSourceLocation(), "Index should be an INTEGER");
-            }
-        }
-    }
+  (
+    <MUL> { star = true; }
+    |
+    ( expr1 = Expression() ( <COLON> { slice = true; } ( expr2 = Expression() )? )? )
   )
-  (<COLON>
-  {
-    isListSliceExpression = true;
-  }
-  ( argumentExpression2 = Expression()
-    {
-      if (argumentExpression2.getKind() == Expression.Kind.LITERAL_EXPRESSION) {
-          Literal lit = ((LiteralExpr)argumentExpression2).getValue();
-          if (lit.getLiteralType() != Literal.Type.INTEGER &&
-              lit.getLiteralType() != Literal.Type.LONG) {
-                  throw new SqlppParseException(argumentExpression2.getSourceLocation(), "Index should be an INTEGER");
-          }
-      }
-    })?
-  )?
   <RIGHTBRACKET>
   {
-    if (!isListSliceExpression) {
-        resultExpression = new IndexAccessor(inputExpr, argumentExpression1);
-    } else {
-        resultExpression = new ListSliceExpression(inputExpr, argumentExpression1, argumentExpression2);
+    if (expr1 != null && expr1.getKind() == Expression.Kind.LITERAL_EXPRESSION) {
+      ensureIntegerLiteral( (LiteralExpr) expr1, "Index");
     }
-
-    return addSourceLocation(resultExpression, startToken);
+    if (expr2 != null && expr2.getKind() == Expression.Kind.LITERAL_EXPRESSION) {
+      ensureIntegerLiteral( (LiteralExpr) expr2, "Index");
+    }
+    AbstractAccessor resultAccessor;
+    if (slice) {
+      resultAccessor = new ListSliceExpression(inputExpr, expr1, expr2);
+    } else if (star) {
+      resultAccessor = new IndexAccessor(inputExpr, IndexAccessor.IndexKind.STAR, null);
+    } else {
+      resultAccessor = new IndexAccessor(inputExpr, IndexAccessor.IndexKind.ELEMENT, expr1);
+    }
+    return addSourceLocation(resultAccessor, startToken);
   }
 }
 
@@ -3450,14 +3466,27 @@
       return windowExpr;
     } else {
       CallExpr callExpr = new CallExpr(signature, argList, filterExpr);
-      if (funcName.hint != null) {
-        switch (funcName.hint) {
+      if (funcName.hintToken != null) {
+        switch (funcName.hintToken.hint) {
           case INDEXED_NESTED_LOOP_JOIN_HINT:
             callExpr.addHint(IndexedNLJoinExpressionAnnotation.INSTANCE);
             break;
           case SKIP_SECONDARY_INDEX_SEARCH_HINT:
             callExpr.addHint(SkipSecondaryIndexSearchExpressionAnnotation.INSTANCE);
             break;
+          case RANGE_HINT:
+            try {
+              RangeAnnotation rangeAnn = new RangeAnnotation();
+              rangeAnn.setObject((Object) RangeMapBuilder.parseHint(parseExpression(funcName.hintToken.hintParams)));
+              callExpr.addHint(rangeAnn);
+            } catch (CompilationException e) {
+              {
+                  SqlppParseException e2 = new SqlppParseException(getSourceLocation(funcName.hintToken), e.getMessage());
+                  e2.initCause(e);
+                  throw e2;
+              }
+            }
+            break;
         }
       }
       FunctionMapUtil.normalizedListInputFunctions(callExpr);
diff --git a/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java b/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
index 52b2be5..d47e9a6 100644
--- a/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
+++ b/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.LineNumberReader;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -324,7 +325,7 @@
         }
         String innerBlock2String = null;
         if (baseBlocks.second != null) {
-            BufferedReader blockReader = stringToReader(baseBlocks.second);
+            LineNumberReader blockReader = stringToReader(baseBlocks.second);
             Position blockPosition = new Position();
             blockPosition.index = 0;
             blockPosition.line = blockReader.readLine();
@@ -337,7 +338,8 @@
                 blockPosition.line = blockReader.readLine();
             }
             if (blockPosition.line == null) {
-                throw new MojoExecutionException(errorMessage);
+                throw new MojoExecutionException(errorMessage + " at line " + blockReader.getLineNumber() + " of "
+                        + StringUtils.abbreviate(baseBlocks.second, 100));
             }
             int block2Open = blockPosition.line.indexOf(OPEN_BRACE);
             blockPosition.line = blockPosition.line.substring(block2Open + 1);
@@ -350,7 +352,8 @@
                 blockPosition.line = blockReader.readLine();
             }
             if (blockPosition.line == null) {
-                throw new MojoExecutionException(errorMessage);
+                throw new MojoExecutionException(errorMessage + " at line " + blockReader.getLineNumber() + " of "
+                        + StringUtils.abbreviate(baseBlocks.second, 100));
             }
             int innerBlock1Open = blockPosition.line.indexOf(OPEN_PAREN);
             writer.write("  ");
@@ -372,7 +375,8 @@
             }
             int innerBlock2Open = blockPosition.line.indexOf(OPEN_BRACE);
             if (innerBlock2Open < 0) {
-                throw new MojoExecutionException(errorMessage);
+                throw new MojoExecutionException(errorMessage + " at line " + blockReader.getLineNumber() + " of "
+                        + StringUtils.abbreviate(baseBlocks.second, 100));
             }
             blockPosition.index = innerBlock2Open;
             readBlock(blockReader, OPEN_BRACE, CLOSE_BRACE, blockPosition);
@@ -989,9 +993,9 @@
         }
     }
 
-    private BufferedReader stringToReader(String aString) {
+    private LineNumberReader stringToReader(String aString) {
         InputStream is = new ByteArrayInputStream(aString.getBytes(StandardCharsets.UTF_8));
-        return new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
+        return new LineNumberReader(new InputStreamReader(is, StandardCharsets.UTF_8));
     }
 
     private File prepareOutputFile() throws MojoExecutionException {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
index 7f50cab..268a9c0 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
@@ -180,6 +180,16 @@
     }
 
     @Override
+    public boolean isDataverseNotEmpty(MetadataTransactionContext ctx, DataverseName dataverseName)
+            throws AlgebricksException {
+        try {
+            return metadataNode.isDataverseNotEmpty(ctx.getTxnId(), dataverseName);
+        } catch (RemoteException e) {
+            throw new MetadataException(ErrorCode.REMOTE_EXCEPTION_WHEN_CALLING_METADATA_NODE, e);
+        }
+    }
+
+    @Override
     public List<Dataverse> getDataverses(MetadataTransactionContext ctx) throws AlgebricksException {
         try {
             return metadataNode.getDataverses(ctx.getTxnId());
@@ -566,7 +576,7 @@
     public Function getFunction(MetadataTransactionContext ctx, FunctionSignature functionSignature)
             throws AlgebricksException {
         // First look in the context to see if this transaction created the
-        // requested dataset itself (but the dataset is still uncommitted).
+        // requested function itself (but the function is still uncommitted).
         Function function = ctx.getFunction(functionSignature);
         if (function != null) {
             // Don't add this dataverse to the cache, since it is still
@@ -974,6 +984,30 @@
     }
 
     @Override
+    public void updateFunction(MetadataTransactionContext ctx, Function function) throws AlgebricksException {
+        try {
+            metadataNode.updateFunction(ctx.getTxnId(), function);
+        } catch (RemoteException e) {
+            throw new MetadataException(ErrorCode.REMOTE_EXCEPTION_WHEN_CALLING_METADATA_NODE, e);
+        }
+        // reflect the function into the cache
+        ctx.dropFunction(function.getSignature());
+        ctx.addFunction(function);
+    }
+
+    @Override
+    public void updateDatatype(MetadataTransactionContext ctx, Datatype datatype) throws AlgebricksException {
+        try {
+            metadataNode.updateDatatype(ctx.getTxnId(), datatype);
+        } catch (RemoteException e) {
+            throw new MetadataException(ErrorCode.REMOTE_EXCEPTION_WHEN_CALLING_METADATA_NODE, e);
+        }
+        // reflect the datatype into the cache
+        ctx.dropDataDatatype(datatype.getDataverseName(), datatype.getDatatypeName());
+        ctx.addDatatype(datatype);
+    }
+
+    @Override
     public <T extends IExtensionMetadataEntity> void addEntity(MetadataTransactionContext mdTxnCtx, T entity)
             throws AlgebricksException {
         try {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
index d5d181f..88098f8 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
@@ -86,6 +86,7 @@
 import org.apache.asterix.metadata.entitytupletranslators.NodeTupleTranslator;
 import org.apache.asterix.metadata.entitytupletranslators.SynonymTupleTranslator;
 import org.apache.asterix.metadata.utils.DatasetUtil;
+import org.apache.asterix.metadata.utils.TypeUtil;
 import org.apache.asterix.metadata.valueextractors.MetadataEntityValueExtractor;
 import org.apache.asterix.metadata.valueextractors.TupleCopyValueExtractor;
 import org.apache.asterix.om.base.AInt32;
@@ -433,15 +434,12 @@
             // Insert into the 'function' dataset.
             FunctionTupleTranslator tupleReaderWriter =
                     tupleTranslatorProvider.getFunctionTupleTranslator(txnId, this, true);
-
             ITupleReference functionTuple = tupleReaderWriter.getTupleFromMetadataEntity(function);
             insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.FUNCTION_DATASET, functionTuple);
-
         } catch (HyracksDataException e) {
             if (e.getComponent().equals(ErrorCode.HYRACKS) && e.getErrorCode() == ErrorCode.DUPLICATE_KEY) {
-                throw new AlgebricksException("A function with this name " + function.getName() + " and arity "
-                        + function.getArity() + " already exists in dataverse '" + function.getDataverseName() + "'.",
-                        e);
+                throw new AlgebricksException("A function with this name " + function.getSignature()
+                        + " already exists in dataverse '" + function.getDataverseName() + "'.", e);
             } else {
                 throw new AlgebricksException(e);
             }
@@ -547,8 +545,7 @@
             // As a side effect, acquires an S lock on the 'Function' dataset on behalf of txnId.
             List<Function> dataverseFunctions = getDataverseFunctions(txnId, dataverseName);
             for (Function function : dataverseFunctions) {
-                dropFunction(txnId, new FunctionSignature(dataverseName, function.getName(), function.getArity()),
-                        true);
+                dropFunction(txnId, function.getSignature(), true);
             }
 
             // Drop all adapters in this dataverse.
@@ -596,6 +593,18 @@
     }
 
     @Override
+    public boolean isDataverseNotEmpty(TxnId txnId, DataverseName dataverseName) throws AlgebricksException {
+        return !getDataverseDatatypes(txnId, dataverseName).isEmpty()
+                || !getDataverseDatasets(txnId, dataverseName).isEmpty()
+                || !getDataverseLibraries(txnId, dataverseName).isEmpty()
+                || !getDataverseAdapters(txnId, dataverseName).isEmpty()
+                || !getDataverseFunctions(txnId, dataverseName).isEmpty()
+                || !getDataverseFeedPolicies(txnId, dataverseName).isEmpty()
+                || !getDataverseFeeds(txnId, dataverseName).isEmpty()
+                || !getDataverseSynonyms(txnId, dataverseName).isEmpty();
+    }
+
+    @Override
     public void dropDataset(TxnId txnId, DataverseName dataverseName, String datasetName) throws AlgebricksException {
         dropDataset(txnId, dataverseName, datasetName, false);
     }
@@ -709,9 +718,14 @@
 
     @Override
     public void dropDatatype(TxnId txnId, DataverseName dataverseName, String datatypeName) throws AlgebricksException {
+        dropDatatype(txnId, dataverseName, datatypeName, false);
+    }
 
-        confirmDatatypeIsUnused(txnId, dataverseName, datatypeName);
-
+    private void dropDatatype(TxnId txnId, DataverseName dataverseName, String datatypeName, boolean force)
+            throws AlgebricksException {
+        if (!force) {
+            confirmDatatypeIsUnused(txnId, dataverseName, datatypeName);
+        }
         // Delete the datatype entry, including all it's nested anonymous types.
         try {
             ITupleReference searchKey = createTuple(dataverseName, datatypeName);
@@ -876,16 +890,7 @@
     }
 
     public List<Function> getAllFunctions(TxnId txnId) throws AlgebricksException {
-        try {
-            FunctionTupleTranslator tupleReaderWriter =
-                    tupleTranslatorProvider.getFunctionTupleTranslator(txnId, this, false);
-            IValueExtractor<Function> valueExtractor = new MetadataEntityValueExtractor<>(tupleReaderWriter);
-            List<Function> results = new ArrayList<>();
-            searchIndex(txnId, MetadataPrimaryIndexes.FUNCTION_DATASET, null, valueExtractor, results);
-            return results;
-        } catch (HyracksDataException e) {
-            throw new AlgebricksException(e);
-        }
+        return getFunctionsImpl(txnId, null);
     }
 
     public List<Datatype> getAllDatatypes(TxnId txnId) throws AlgebricksException {
@@ -937,15 +942,16 @@
                 continue;
             }
             if (set.getItemTypeDataverseName().equals(dataverseName)) {
-                throw new AlgebricksException(
-                        "Cannot drop dataverse. Type " + dataverseName + "." + set.getItemTypeName()
-                                + " used by dataset " + set.getDataverseName() + "." + set.getDatasetName());
+                throw new AlgebricksException("Cannot drop dataverse. Type "
+                        + TypeUtil.getFullyQualifiedDisplayName(set.getItemTypeDataverseName(), set.getItemTypeName())
+                        + " used by dataset " + DatasetUtil.getFullyQualifiedDisplayName(set));
             }
             if (set.getMetaItemTypeDataverseName() != null
                     && set.getMetaItemTypeDataverseName().equals(dataverseName)) {
-                throw new AlgebricksException(
-                        "Cannot drop dataverse. Type " + dataverseName + "." + set.getMetaItemTypeName()
-                                + " used by dataset " + set.getDataverseName() + "." + set.getDatasetName());
+                throw new AlgebricksException("Cannot drop dataverse. Type "
+                        + TypeUtil.getFullyQualifiedDisplayName(set.getMetaItemTypeDataverseName(),
+                                set.getMetaItemTypeName())
+                        + " used by dataset " + DatasetUtil.getFullyQualifiedDisplayName(set));
             }
         }
 
@@ -959,24 +965,22 @@
             }
             for (Triple<DataverseName, String, String> datasetDependency : function.getDependencies().get(0)) {
                 if (datasetDependency.first.equals(dataverseName)) {
-                    throw new AlgebricksException("Cannot drop dataverse. Function " + function.getDataverseName() + "."
-                            + function.getName() + "@" + function.getArity() + " depends on dataset "
-                            + datasetDependency.first + "." + datasetDependency.second);
+                    throw new AlgebricksException("Cannot drop dataverse. Function " + function.getSignature()
+                            + " depends on dataset " + DatasetUtil.getFullyQualifiedDisplayName(datasetDependency.first,
+                                    datasetDependency.second));
                 }
             }
             for (Triple<DataverseName, String, String> functionDependency : function.getDependencies().get(1)) {
                 if (functionDependency.first.equals(dataverseName)) {
-                    throw new AlgebricksException(
-                            "Cannot drop dataverse. Function " + function.getDataverseName() + "." + function.getName()
-                                    + "@" + function.getArity() + " depends on function " + functionDependency.first
-                                    + "." + functionDependency.second + "@" + functionDependency.third);
+                    throw new AlgebricksException("Cannot drop dataverse. Function " + function.getSignature()
+                            + " depends on function " + new FunctionSignature(functionDependency.first,
+                                    functionDependency.second, Integer.parseInt(functionDependency.third)));
                 }
             }
             for (Triple<DataverseName, String, String> type : function.getDependencies().get(2)) {
                 if (type.first.equals(dataverseName)) {
-                    throw new AlgebricksException(
-                            "Cannot drop dataverse. Function " + function.getDataverseName() + "." + function.getName()
-                                    + "@" + function.getArity() + " depends on type " + type.first + "." + type.second);
+                    throw new AlgebricksException("Cannot drop dataverse. Function " + function.getSignature()
+                            + " depends on type " + TypeUtil.getFullyQualifiedDisplayName(type.first, type.second));
                 }
             }
         }
@@ -990,10 +994,9 @@
             }
             for (FunctionSignature functionSignature : feedConnection.getAppliedFunctions()) {
                 if (dataverseName.equals(functionSignature.getDataverseName())) {
-                    throw new AlgebricksException("Cannot drop dataverse. Feed connection "
-                            + feedConnection.getDataverseName() + "." + feedConnection.getFeedName()
-                            + " depends on function " + functionSignature.getDataverseName() + "."
-                            + functionSignature.getName() + "@" + functionSignature.getArity());
+                    throw new AlgebricksException(
+                            "Cannot drop dataverse. Feed connection " + feedConnection.getDataverseName() + "."
+                                    + feedConnection.getFeedName() + " depends on function " + functionSignature);
                 }
             }
         }
@@ -1007,8 +1010,8 @@
                 if (functionalDependency.first.equals(signature.getDataverseName())
                         && functionalDependency.second.equals(signature.getName())
                         && functionalDependency.third.equals(Integer.toString(signature.getArity()))) {
-                    throw new AlgebricksException("Cannot drop function " + signature + " being used by function "
-                            + function.getDataverseName() + "." + function.getName() + "@" + function.getArity());
+                    throw new AlgebricksException(
+                            "Cannot drop function " + signature + " being used by function " + function.getSignature());
                 }
             }
         }
@@ -1032,8 +1035,7 @@
                 if (datasetDependency.first.equals(dataverseName) && datasetDependency.second.equals(datasetName)) {
                     throw new AlgebricksException("Cannot drop dataset "
                             + DatasetUtil.getFullyQualifiedDisplayName(dataverseName, datasetName)
-                            + " being used by function " + function.getDataverseName() + "." + function.getName() + "@"
-                            + function.getArity());
+                            + " being used by function " + function.getSignature());
                 }
             }
         }
@@ -1049,10 +1051,10 @@
             throws AlgebricksException {
         List<Function> functions = getAllFunctions(txnId);
         for (Function function : functions) {
-            if (libraryName.equals(function.getLibrary()) && dataverseName.equals(function.getDataverseName())) {
-                throw new AlgebricksException(
-                        "Cannot drop library " + dataverseName + '.' + libraryName + " being used by funciton "
-                                + function.getDataverseName() + '.' + function.getName() + '@' + function.getArity());
+            if (libraryName.equals(function.getLibraryName())
+                    && dataverseName.equals(function.getLibraryDataverseName())) {
+                throw new AlgebricksException("Cannot drop library " + dataverseName + '.' + libraryName
+                        + " being used by funciton " + function.getSignature());
             }
         }
     }
@@ -1062,7 +1064,7 @@
         List<DatasourceAdapter> adapters = getAllAdapters(txnId);
         for (DatasourceAdapter adapter : adapters) {
             if (libraryName.equals(adapter.getLibraryName())
-                    && adapter.getAdapterIdentifier().getDataverseName().equals(dataverseName)) {
+                    && dataverseName.equals(adapter.getLibraryDataverseName())) {
                 throw new AlgebricksException("Cannot drop library " + dataverseName + '.' + libraryName
                         + " being used by adapter " + adapter.getAdapterIdentifier().getDataverseName() + '.'
                         + adapter.getAdapterIdentifier().getName());
@@ -1083,8 +1085,9 @@
         List<Dataset> datasets = getAllDatasets(txnId);
         for (Dataset set : datasets) {
             if (set.getItemTypeName().equals(datatypeName) && set.getItemTypeDataverseName().equals(dataverseName)) {
-                throw new AlgebricksException("Cannot drop type " + dataverseName + "." + datatypeName
-                        + " being used by dataset " + set.getDataverseName() + "." + set.getDatasetName());
+                throw new AlgebricksException(
+                        "Cannot drop type " + TypeUtil.getFullyQualifiedDisplayName(dataverseName, datatypeName)
+                                + " being used by dataset " + DatasetUtil.getFullyQualifiedDisplayName(set));
             }
         }
     }
@@ -1106,8 +1109,9 @@
             }
             AbstractComplexType recType = (AbstractComplexType) dataType.getDatatype();
             if (recType.containsType(typeToBeDropped)) {
-                throw new AlgebricksException("Cannot drop type " + dataverseName + "." + datatypeName
-                        + " being used by type " + dataverseName + "." + recType.getTypeName());
+                throw new AlgebricksException("Cannot drop type "
+                        + TypeUtil.getFullyQualifiedDisplayName(dataverseName, datatypeName) + " being used by type "
+                        + TypeUtil.getFullyQualifiedDisplayName(dataverseName, recType.getTypeName()));
             }
         }
     }
@@ -1119,9 +1123,9 @@
         for (Function function : functions) {
             for (Triple<DataverseName, String, String> datasetDependency : function.getDependencies().get(2)) {
                 if (datasetDependency.first.equals(dataverseName) && datasetDependency.second.equals(dataTypeName)) {
-                    throw new AlgebricksException("Cannot drop type " + dataverseName + "." + dataTypeName
-                            + " is being used by function " + function.getDataverseName() + "." + function.getName()
-                            + "@" + function.getArity());
+                    throw new AlgebricksException(
+                            "Cannot drop type " + TypeUtil.getFullyQualifiedDisplayName(dataverseName, dataTypeName)
+                                    + " is being used by function " + function.getSignature());
                 }
             }
         }
@@ -1240,27 +1244,18 @@
 
     @Override
     public Function getFunction(TxnId txnId, FunctionSignature functionSignature) throws AlgebricksException {
-        try {
-            ITupleReference searchKey = createTuple(functionSignature.getDataverseName(), functionSignature.getName(),
-                    Integer.toString(functionSignature.getArity()));
-            FunctionTupleTranslator tupleReaderWriter =
-                    tupleTranslatorProvider.getFunctionTupleTranslator(txnId, this, false);
-            List<Function> results = new ArrayList<>();
-            IValueExtractor<Function> valueExtractor = new MetadataEntityValueExtractor<>(tupleReaderWriter);
-            searchIndex(txnId, MetadataPrimaryIndexes.FUNCTION_DATASET, searchKey, valueExtractor, results);
-            if (results.isEmpty()) {
-                return null;
-            }
-            return results.get(0);
-        } catch (HyracksDataException e) {
-            throw new AlgebricksException(e);
-        }
+        List<Function> functions = getFunctionsImpl(txnId, createTuple(functionSignature.getDataverseName(),
+                functionSignature.getName(), Integer.toString(functionSignature.getArity())));
+        return functions.isEmpty() ? null : functions.get(0);
     }
 
     @Override
     public List<Function> getDataverseFunctions(TxnId txnId, DataverseName dataverseName) throws AlgebricksException {
+        return getFunctionsImpl(txnId, createTuple(dataverseName));
+    }
+
+    private List<Function> getFunctionsImpl(TxnId txnId, ITupleReference searchKey) throws AlgebricksException {
         try {
-            ITupleReference searchKey = createTuple(dataverseName);
             FunctionTupleTranslator tupleReaderWriter =
                     tupleTranslatorProvider.getFunctionTupleTranslator(txnId, this, false);
             List<Function> results = new ArrayList<>();
@@ -1282,25 +1277,19 @@
         if (!force) {
             confirmFunctionCanBeDeleted(txnId, functionSignature);
         }
-        Function function = getFunction(txnId, functionSignature);
-        if (function == null) {
-            throw new AlgebricksException(
-                    "Cannot drop function '" + functionSignature.toString() + "' because it doesn't exist.");
-        }
         try {
             // Delete entry from the 'function' dataset.
             ITupleReference searchKey = createTuple(functionSignature.getDataverseName(), functionSignature.getName(),
                     Integer.toString(functionSignature.getArity()));
-            // Searches the index for the tuple to be deleted. Acquires an S
-            // lock on the 'function' dataset.
+            // Searches the index for the tuple to be deleted. Acquires an S lock on the 'function' dataset.
             ITupleReference functionTuple =
                     getTupleToBeDeleted(txnId, MetadataPrimaryIndexes.FUNCTION_DATASET, searchKey);
             deleteTupleFromIndex(txnId, MetadataPrimaryIndexes.FUNCTION_DATASET, functionTuple);
         } catch (HyracksDataException e) {
             if (e.getComponent().equals(ErrorCode.HYRACKS)
                     && e.getErrorCode() == ErrorCode.UPDATE_OR_DELETE_NON_EXISTENT_KEY) {
-                throw new AlgebricksException("There is no function with the name " + functionSignature.getName()
-                        + " and arity " + functionSignature.getArity(), e);
+                throw new AlgebricksException(
+                        "Cannot drop function '" + functionSignature + "' because it doesn't exist", e);
             } else {
                 throw new AlgebricksException(e);
             }
@@ -1648,7 +1637,6 @@
             LibraryTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getLibraryTupleTranslator(true);
             ITupleReference libraryTuple = tupleReaderWriter.getTupleFromMetadataEntity(library);
             insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, libraryTuple);
-
         } catch (HyracksDataException e) {
             if (e.getComponent().equals(ErrorCode.HYRACKS) && e.getErrorCode() == ErrorCode.DUPLICATE_KEY) {
                 throw new AlgebricksException("A library with this name " + library.getDataverseName()
@@ -1661,13 +1649,18 @@
 
     @Override
     public void dropLibrary(TxnId txnId, DataverseName dataverseName, String libraryName) throws AlgebricksException {
-        confirmLibraryCanBeDeleted(txnId, dataverseName, libraryName);
+        dropLibrary(txnId, dataverseName, libraryName, false);
+    }
 
+    private void dropLibrary(TxnId txnId, DataverseName dataverseName, String libraryName, boolean force)
+            throws AlgebricksException {
+        if (!force) {
+            confirmLibraryCanBeDeleted(txnId, dataverseName, libraryName);
+        }
         try {
             // Delete entry from the 'Library' dataset.
             ITupleReference searchKey = createTuple(dataverseName, libraryName);
-            // Searches the index for the tuple to be deleted. Acquires an S
-            // lock on the 'Adapter' dataset.
+            // Searches the index for the tuple to be deleted. Acquires an S lock on the 'Library' dataset.
             ITupleReference datasetTuple =
                     getTupleToBeDeleted(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, searchKey);
             deleteTupleFromIndex(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, datasetTuple);
@@ -2088,40 +2081,41 @@
             // This method will delete previous entry of the dataset and insert the new one
             // Delete entry from the 'datasets' dataset.
             ITupleReference searchKey = createTuple(dataset.getDataverseName(), dataset.getDatasetName());
-            // Searches the index for the tuple to be deleted. Acquires an S
-            // lock on the 'dataset' dataset.
+            // Searches the index for the tuple to be deleted. Acquires an S lock on the 'dataset' dataset.
             ITupleReference datasetTuple =
                     getTupleToBeDeleted(txnId, MetadataPrimaryIndexes.DATASET_DATASET, searchKey);
             deleteTupleFromIndex(txnId, MetadataPrimaryIndexes.DATASET_DATASET, datasetTuple);
-            // Previous tuple was deleted
             // Insert into the 'dataset' dataset.
             DatasetTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getDatasetTupleTranslator(true);
             datasetTuple = tupleReaderWriter.getTupleFromMetadataEntity(dataset);
             insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.DATASET_DATASET, datasetTuple);
         } catch (HyracksDataException e) {
-            throw new AlgebricksException(e);
+            if (e.getComponent().equals(ErrorCode.HYRACKS)
+                    && e.getErrorCode() == ErrorCode.UPDATE_OR_DELETE_NON_EXISTENT_KEY) {
+                throw new AlgebricksException(
+                        "Cannot drop dataset '" + dataset.getDatasetName() + "' because it doesn't exist");
+            } else {
+                throw new AlgebricksException(e);
+            }
         }
     }
 
     @Override
     public void updateLibrary(TxnId txnId, Library library) throws AlgebricksException {
-        try {
-            // This method will delete previous entry of the library and insert the new one
-            // Delete entry from the 'library' dataset.
-            ITupleReference searchKey = createTuple(library.getDataverseName(), library.getName());
-            // Searches the index for the tuple to be deleted. Acquires an S
-            // lock on the 'library' dataset.
-            ITupleReference libraryTuple =
-                    getTupleToBeDeleted(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, searchKey);
-            deleteTupleFromIndex(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, libraryTuple);
-            // Previous tuple was deleted
-            // Insert into the 'library' dataset.
-            LibraryTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getLibraryTupleTranslator(true);
-            libraryTuple = tupleReaderWriter.getTupleFromMetadataEntity(library);
-            insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.LIBRARY_DATASET, libraryTuple);
-        } catch (HyracksDataException e) {
-            throw new AlgebricksException(e);
-        }
+        dropLibrary(txnId, library.getDataverseName(), library.getName(), true);
+        addLibrary(txnId, library);
+    }
+
+    @Override
+    public void updateFunction(TxnId txnId, Function function) throws AlgebricksException {
+        dropFunction(txnId, function.getSignature(), true);
+        addFunction(txnId, function);
+    }
+
+    @Override
+    public void updateDatatype(TxnId txnId, Datatype datatype) throws AlgebricksException {
+        dropDatatype(txnId, datatype.getDataverseName(), datatype.getDatatypeName(), true);
+        addDatatype(txnId, datatype);
     }
 
     public ITxnIdFactory getTxnIdFactory() {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataTransactionContext.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataTransactionContext.java
index 90fe3a5..0bf8c3d 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataTransactionContext.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataTransactionContext.java
@@ -158,14 +158,15 @@
     }
 
     public void dropFunction(FunctionSignature signature) {
-        Function function = new Function(signature, null, null, null, null, null, null, null, false, false, null, null);
+        Function function =
+                new Function(signature, null, null, null, null, null, null, null, null, null, false, false, null, null);
         droppedCache.addFunctionIfNotExists(function);
         logAndApply(new MetadataLogicalOperation(function, false));
     }
 
     public void dropAdapter(DataverseName dataverseName, String adapterName) {
         AdapterIdentifier adapterIdentifier = new AdapterIdentifier(dataverseName, adapterName);
-        DatasourceAdapter adapter = new DatasourceAdapter(adapterIdentifier, null, null);
+        DatasourceAdapter adapter = new DatasourceAdapter(adapterIdentifier, null, null, null, null);
         droppedCache.addAdapterIfNotExists(adapter);
         logAndApply(new MetadataLogicalOperation(adapter, false));
     }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
index 09a4a94..1646a93 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
@@ -150,6 +150,16 @@
     void dropDataverse(MetadataTransactionContext ctx, DataverseName dataverseName) throws AlgebricksException;
 
     /**
+     * Returns {@code true} if the dataverse with given name is not empty
+     * (i.e. contains any datatypes, datasets or any other entities).
+     *  @param ctx
+     *            MetadataTransactionContext of an active metadata transaction.
+     * @param dataverseName
+     *            Name of the dataverse.
+     */
+    boolean isDataverseNotEmpty(MetadataTransactionContext ctx, DataverseName dataverseName) throws AlgebricksException;
+
+    /**
      * Inserts a new dataset into the metadata.
      *
      * @param ctx
@@ -713,6 +723,24 @@
     void updateLibrary(MetadataTransactionContext ctx, Library library) throws AlgebricksException;
 
     /**
+     * @param mdTxnCtx
+     *            MetadataTransactionContext of an active metadata transaction.
+     * @param function
+     *            An instance of type Function that represents the function being
+     *            updated
+     */
+    void updateFunction(MetadataTransactionContext mdTxnCtx, Function function) throws AlgebricksException;
+
+    /**
+     * @param mdTxnCtx
+     *            MetadataTransactionContext of an active metadata transaction.
+     * @param datatype
+     *            An instance of type Datatype that represents the datatype being
+     *            updated
+     */
+    void updateDatatype(MetadataTransactionContext mdTxnCtx, Datatype datatype) throws AlgebricksException;
+
+    /**
      * Add an extension entity to its extension dataset under the ongoing metadata
      * transaction
      *
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
index 0330008..bca4171 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java
@@ -140,14 +140,24 @@
      *
      * @param txnId
      *            A globally unique id for an active metadata transaction.
-     * @return A list of dataset instances.
+     * @param dataverseName
+     *            Name of the dataverse to drop.
      * @throws AlgebricksException
      *             For example, if the dataverse does not exist.
-     * @throws RemoteException
      */
     void dropDataverse(TxnId txnId, DataverseName dataverseName) throws AlgebricksException, RemoteException;
 
     /**
+     * Returns {@code true} if given dataverse is not empty
+     * (i.e. contains any datatypes, datasets or any other entities).
+     *  @param txnId
+     *            A globally unique id for an active metadata transaction.
+     * @param dataverseName
+     *            Name of the dataverse
+     */
+    boolean isDataverseNotEmpty(TxnId txnId, DataverseName dataverseName) throws AlgebricksException, RemoteException;
+
+    /**
      * Inserts a new dataset into the metadata, acquiring local locks on behalf of
      * the given transaction id.
      *
@@ -814,6 +824,28 @@
     void updateLibrary(TxnId txnId, Library library) throws AlgebricksException, RemoteException;
 
     /**
+     * update an existing function in the metadata, acquiring local locks on behalf
+     * of the given transaction id.
+     *
+     * @param txnId
+     *            A globally unique id for an active metadata transaction.
+     * @param function
+     *            updated Function instance.
+     */
+    void updateFunction(TxnId txnId, Function function) throws AlgebricksException, RemoteException;
+
+    /**
+     * update an existing datatype in the metadata, acquiring local locks on behalf
+     * of the given transaction id.
+     *
+     * @param txnId
+     *            A globally unique id for an active metadata transaction.
+     * @param datatype
+     *            updated Datatype instance.
+     */
+    void updateDatatype(TxnId txnId, Datatype datatype) throws AlgebricksException, RemoteException;
+
+    /**
      * Adds an extension entity under the ongoing transaction job id
      *
      * @param txnId
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index d85422d..cf089fa 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -211,7 +211,7 @@
         for (int i = 0; i < indexes.length; i++) {
             IDatasetDetails id = new InternalDatasetDetails(FileStructure.BTREE, PartitioningStrategy.HASH,
                     indexes[i].getPartitioningExpr(), indexes[i].getPartitioningExpr(), null,
-                    indexes[i].getPartitioningExprType(), false, null);
+                    indexes[i].getPartitioningExprType(), false, null, null);
             MetadataManager.INSTANCE.addDataset(mdTxnCtx,
                     new Dataset(indexes[i].getDataverseName(), indexes[i].getIndexedDatasetName(),
                             indexes[i].getDataverseName(), indexes[i].getPayloadRecordType().getTypeName(),
@@ -318,7 +318,7 @@
             String adapterName =
                     ((ITypedAdapterFactory) (Class.forName(adapterFactoryClassName).newInstance())).getAlias();
             return new DatasourceAdapter(new AdapterIdentifier(MetadataConstants.METADATA_DATAVERSE_NAME, adapterName),
-                    adapterFactoryClassName, IDataSourceAdapter.AdapterType.INTERNAL);
+                    IDataSourceAdapter.AdapterType.INTERNAL, adapterFactoryClassName, null, null);
         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
             throw new MetadataException("Unable to instantiate builtin Adapter", e);
         }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataRecordTypes.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataRecordTypes.java
index a1d6743..8430f44 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataRecordTypes.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataRecordTypes.java
@@ -75,6 +75,7 @@
     public static final String FIELD_NAME_IS_PRIMARY = "IsPrimary";
     public static final String FIELD_NAME_KIND = "Kind";
     public static final String FIELD_NAME_LANGUAGE = "Language";
+    public static final String FIELD_NAME_LIBRARY_DATAVERSE_NAME = "LibraryDataverseName";
     public static final String FIELD_NAME_LIBRARY_NAME = "LibraryName";
     public static final String FIELD_NAME_LAST_REFRESH_TIME = "LastRefreshTime";
     public static final String FIELD_NAME_METATYPE_DATAVERSE_NAME = "MetatypeDataverseName";
@@ -340,11 +341,15 @@
     public static final int FUNCTION_ARECORD_FUNCTION_KIND_FIELD_INDEX = 7;
     public static final int FUNCTION_ARECORD_FUNCTION_DEPENDENCIES_FIELD_INDEX = 8;
     //open types
-    public static final String FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME = "WithParams";
-    public static final String FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME = "Library";
+    public static final String FUNCTION_ARECORD_FUNCTION_RESOURCES_FIELD_NAME = "Resources";
     public static final String FUNCTION_ARECORD_FUNCTION_NULLCALL_FIELD_NAME = "NullCall";
     public static final String FUNCTION_ARECORD_FUNCTION_DETERMINISTIC_FIELD_NAME = "Deterministic";
     public static final String FUNCTION_ARECORD_FUNCTION_PARAMTYPES_FIELD_NAME = "ParamTypes";
+    public static final String FUNCTION_ARECORD_FUNCTION_EXTERNAL_IDENTIFIER_FIELD_NAME = "ExternalIdentifier";
+    @Deprecated // back-compat
+    public static final String FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME = "Library";
+    @Deprecated // back-compat
+    public static final String FUNCTION_ARECORD_FUNCTION_WITHPARAMS_FIELD_NAME = "WithParams";
 
     public static final ARecordType FUNCTION_RECORDTYPE = createRecordType(
             // RecordTypeName
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java
index 93927dd..1303b21 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java
@@ -52,11 +52,19 @@
 
 public abstract class FunctionDataSource extends DataSource {
 
-    public FunctionDataSource(DataSourceId id, INodeDomain domain) throws AlgebricksException {
+    protected final FunctionIdentifier functionId;
+
+    public FunctionDataSource(DataSourceId id, FunctionIdentifier functionId, INodeDomain domain)
+            throws AlgebricksException {
         super(id, RecordUtil.FULLY_OPEN_RECORD_TYPE, null, DataSource.Type.FUNCTION, domain);
+        this.functionId = functionId;
         schemaTypes = new IAType[] { itemType };
     }
 
+    public FunctionIdentifier getFunctionId() {
+        return functionId;
+    }
+
     @Override
     public boolean isScanAccessPathALeaf() {
         return true;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 8597a21..d84cade 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -29,7 +29,6 @@
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.function.Function;
 
 import org.apache.asterix.common.cluster.IClusterStateManager;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
@@ -41,6 +40,7 @@
 import org.apache.asterix.common.dataflow.LSMTreeInsertDeleteOperatorDescriptor;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.external.IDataSourceAdapter;
+import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.common.metadata.LockList;
 import org.apache.asterix.common.storage.ICompressionManager;
@@ -81,6 +81,7 @@
 import org.apache.asterix.metadata.entities.Feed;
 import org.apache.asterix.metadata.entities.FeedConnection;
 import org.apache.asterix.metadata.entities.FeedPolicyEntity;
+import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.metadata.entities.Synonym;
 import org.apache.asterix.metadata.feeds.FeedMetadataUtil;
@@ -130,12 +131,14 @@
 import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
 import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
+import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IResultSerializerFactory;
 import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
 import org.apache.hyracks.api.exceptions.IWarningCollector;
 import org.apache.hyracks.api.io.FileSplit;
+import org.apache.hyracks.api.job.IOperatorDescriptorRegistry;
 import org.apache.hyracks.api.job.JobSpecification;
 import org.apache.hyracks.api.result.IResultMetadata;
 import org.apache.hyracks.api.result.ResultSetId;
@@ -180,7 +183,7 @@
     private boolean blockingOperatorDisabled = false;
 
     public static MetadataProvider create(ICcApplicationContext appCtx, Dataverse defaultDataverse) {
-        Function<ICcApplicationContext, IMetadataProvider<?, ?>> factory =
+        java.util.function.Function<ICcApplicationContext, IMetadataProvider<?, ?>> factory =
                 ((ICCExtensionManager) appCtx.getExtensionManager()).getMetadataProviderFactory();
         MetadataProvider mp = factory != null ? (MetadataProvider) factory.apply(appCtx) : new MetadataProvider(appCtx);
         mp.setDefaultDataverse(defaultDataverse);
@@ -443,7 +446,14 @@
 
     @Override
     public IFunctionInfo lookupFunction(FunctionIdentifier fid) {
-        return BuiltinFunctions.lookupFunction(fid);
+        return BuiltinFunctions.getBuiltinFunctionInfo(fid);
+    }
+
+    public Function lookupUserDefinedFunction(FunctionSignature signature) throws AlgebricksException {
+        if (signature.getDataverseName() == null) {
+            return null;
+        }
+        return MetadataManager.INSTANCE.getFunction(mdTxnCtx, signature);
     }
 
     @Override
@@ -718,9 +728,10 @@
     public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getDeleteRuntime(
             IDataSource<DataSourceId> dataSource, IOperatorSchema propagatedSchema, IVariableTypeEnvironment typeEnv,
             List<LogicalVariable> keys, LogicalVariable payload, List<LogicalVariable> additionalNonKeyFields,
-            RecordDescriptor inputRecordDesc, JobGenContext context, JobSpecification spec) throws AlgebricksException {
+            List<LogicalVariable> additionalNonFilteringFields, RecordDescriptor inputRecordDesc, JobGenContext context,
+            JobSpecification spec) throws AlgebricksException {
         return getInsertOrDeleteRuntime(IndexOperation.DELETE, dataSource, propagatedSchema, keys, payload,
-                additionalNonKeyFields, inputRecordDesc, context, spec, false, null);
+                additionalNonKeyFields, inputRecordDesc, context, spec, false, additionalNonFilteringFields);
     }
 
     @Override
@@ -955,22 +966,33 @@
         }
         // set the record permutation
         fieldPermutation[i++] = inputSchema.findVariable(payload);
-        // set the filters' permutations.
-        if (numFilterFields > 0) {
-            int idx = inputSchema.findVariable(filterKeys.get(0));
-            fieldPermutation[i++] = idx;
-        }
 
+        // set the meta record permutation
         if (additionalNonFilterFields != null) {
             for (LogicalVariable var : additionalNonFilterFields) {
                 int idx = inputSchema.findVariable(var);
                 fieldPermutation[i++] = idx;
             }
         }
-        return DatasetUtil.createPrimaryIndexUpsertOp(spec, this, dataset, recordDesc, fieldPermutation,
+
+        // set the filters' permutations.
+        if (numFilterFields > 0) {
+            int idx = inputSchema.findVariable(filterKeys.get(0));
+            fieldPermutation[i++] = idx;
+        }
+
+        return createPrimaryIndexUpsertOp(spec, this, dataset, recordDesc, fieldPermutation,
                 context.getMissingWriterFactory());
     }
 
+    protected Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> createPrimaryIndexUpsertOp(JobSpecification spec,
+            MetadataProvider metadataProvider, Dataset dataset, RecordDescriptor inputRecordDesc,
+            int[] fieldPermutation, IMissingWriterFactory missingWriterFactory) throws AlgebricksException {
+        // this can be used by extensions to pick up their own operators
+        return DatasetUtil.createPrimaryIndexUpsertOp(spec, this, dataset, inputRecordDesc, fieldPermutation,
+                missingWriterFactory);
+    }
+
     public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildExternalDatasetDataScannerRuntime(
             JobSpecification jobSpec, IAType itemType, ITypedAdapterFactory adapterFactory) throws AlgebricksException {
         if (itemType.getTypeTag() != ATypeTag.OBJECT) {
@@ -1064,12 +1086,7 @@
             i++;
         }
         fieldPermutation[i++] = propagatedSchema.findVariable(payload);
-        int[] filterFields = new int[numFilterFields];
-        if (numFilterFields > 0) {
-            int idx = propagatedSchema.findVariable(additionalNonKeyFields.get(0));
-            fieldPermutation[i++] = idx;
-            filterFields[0] = idx;
-        }
+
         if (additionalNonFilteringFields != null) {
             for (LogicalVariable variable : additionalNonFilteringFields) {
                 int idx = propagatedSchema.findVariable(variable);
@@ -1077,6 +1094,13 @@
             }
         }
 
+        int[] filterFields = new int[numFilterFields];
+        if (numFilterFields > 0) {
+            int idx = propagatedSchema.findVariable(additionalNonKeyFields.get(0));
+            fieldPermutation[i++] = idx;
+            filterFields[0] = idx;
+        }
+
         Index primaryIndex = MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(),
                 dataset.getDatasetName(), dataset.getDatasetName());
         Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint =
@@ -1112,17 +1136,34 @@
                     pkidfh = new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(),
                             primaryKeySplitsAndConstraint.first);
                 }
-                op = new LSMPrimaryInsertOperatorDescriptor(spec, inputRecordDesc, fieldPermutation, idfh, pkidfh,
+                op = createLSMPrimaryInsertOperatorDescriptor(spec, inputRecordDesc, fieldPermutation, idfh, pkidfh,
                         modificationCallbackFactory, searchCallbackFactory, numKeys, filterFields);
 
             } else {
-                op = new LSMTreeInsertDeleteOperatorDescriptor(spec, inputRecordDesc, fieldPermutation, indexOp, idfh,
+                op = createLSMTreeInsertDeleteOperatorDescriptor(spec, inputRecordDesc, fieldPermutation, indexOp, idfh,
                         null, true, modificationCallbackFactory);
             }
         }
         return new Pair<>(op, splitsAndConstraint.second);
     }
 
+    protected LSMPrimaryInsertOperatorDescriptor createLSMPrimaryInsertOperatorDescriptor(JobSpecification spec,
+            RecordDescriptor inputRecordDesc, int[] fieldPermutation, IIndexDataflowHelperFactory idfh,
+            IIndexDataflowHelperFactory pkidfh, IModificationOperationCallbackFactory modificationCallbackFactory,
+            ISearchOperationCallbackFactory searchCallbackFactory, int numKeys, int[] filterFields) {
+        // this can be used by extensions to pick up their own operators
+        return new LSMPrimaryInsertOperatorDescriptor(spec, inputRecordDesc, fieldPermutation, idfh, pkidfh,
+                modificationCallbackFactory, searchCallbackFactory, numKeys, filterFields);
+    }
+
+    protected LSMTreeInsertDeleteOperatorDescriptor createLSMTreeInsertDeleteOperatorDescriptor(
+            IOperatorDescriptorRegistry spec, RecordDescriptor outRecDesc, int[] fieldPermutation, IndexOperation op,
+            IIndexDataflowHelperFactory indexHelperFactory, ITupleFilterFactory tupleFilterFactory, boolean isPrimary,
+            IModificationOperationCallbackFactory modCallbackFactory) {
+        return new LSMTreeInsertDeleteOperatorDescriptor(spec, outRecDesc, fieldPermutation, op, indexHelperFactory,
+                tupleFilterFactory, isPrimary, modCallbackFactory);
+    }
+
     private Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getIndexInsertOrDeleteOrUpsertRuntime(
             IndexOperation indexOp, IDataSourceIndex<String, DataSourceId> dataSourceIndex,
             IOperatorSchema propagatedSchema, IOperatorSchema[] inputSchemas, IVariableTypeEnvironment typeEnv,
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
index cc4bb09..2171974 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
@@ -62,6 +62,7 @@
 import org.apache.asterix.metadata.utils.InvertedIndexResourceFactoryProvider;
 import org.apache.asterix.metadata.utils.MetadataUtil;
 import org.apache.asterix.metadata.utils.RTreeResourceFactoryProvider;
+import org.apache.asterix.metadata.utils.TypeUtil;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
@@ -424,6 +425,14 @@
         // #. finally, delete the dataset.
         MetadataManager.INSTANCE.dropDataset(mdTxnCtx.getValue(), dataverseName, datasetName);
 
+        // drop inline types
+        if (TypeUtil.isDatasetInlineTypeName(this, recordTypeDataverseName, recordTypeName)) {
+            MetadataManager.INSTANCE.dropDatatype(mdTxnCtx.getValue(), recordTypeDataverseName, recordTypeName);
+        }
+        if (hasMetaPart() && TypeUtil.isDatasetInlineTypeName(this, metaTypeDataverseName, metaTypeName)) {
+            MetadataManager.INSTANCE.dropDatatype(mdTxnCtx.getValue(), metaTypeDataverseName, metaTypeName);
+        }
+
         // Drops the associated nodegroup if it is no longer used by any other dataset.
         if (dropCorrespondingNodeGroup) {
             metadataProvider.getApplicationContext().getMetadataLockManager()
@@ -455,9 +464,9 @@
     public IResourceFactory getResourceFactory(MetadataProvider mdProvider, Index index, ARecordType recordType,
             ARecordType metaType, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties)
             throws AlgebricksException {
-        ITypeTraits[] filterTypeTraits = DatasetUtil.computeFilterTypeTraits(this, recordType);
+        ITypeTraits[] filterTypeTraits = DatasetUtil.computeFilterTypeTraits(this, recordType, metaType);
         IBinaryComparatorFactory[] filterCmpFactories = DatasetUtil.computeFilterBinaryComparatorFactories(this,
-                recordType, mdProvider.getStorageComponentProvider().getComparatorFactoryProvider());
+                recordType, metaType, mdProvider.getStorageComponentProvider().getComparatorFactoryProvider());
         IResourceFactory resourceFactory;
         switch (index.getIndexType()) {
             case BTREE:
@@ -699,6 +708,15 @@
         return ((InternalDatasetDetails) getDatasetDetails()).getPartitioningKey();
     }
 
+    /**
+     @return the array of type traits that contains the following type traits in order
+      1) the primary keys,
+      2) the query record type,
+      3) the metadata type trait if the dataset has metadata
+     */
+    // ToDo: returning such an array can be confusing because it may contain the metadata type or not.
+    // instead of returning an array, create a new class that contains 1) a type trait array for the primary keys,
+    // 2) the record type trait, and 3) an nullable meta type trait
     public ITypeTraits[] getPrimaryTypeTraits(MetadataProvider metadataProvider, ARecordType recordType,
             ARecordType metaType) throws AlgebricksException {
         IStorageComponentProvider storageComponentProvider = metadataProvider.getStorageComponentProvider();
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/DatasourceAdapter.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/DatasourceAdapter.java
index 5e0ece3..eedfe8d 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/DatasourceAdapter.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/DatasourceAdapter.java
@@ -19,32 +19,27 @@
 package org.apache.asterix.metadata.entities;
 
 import org.apache.asterix.common.external.IDataSourceAdapter.AdapterType;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.external.dataset.adapter.AdapterIdentifier;
 import org.apache.asterix.metadata.MetadataCache;
 import org.apache.asterix.metadata.api.IMetadataEntity;
 
 public class DatasourceAdapter implements IMetadataEntity<DatasourceAdapter> {
 
-    private static final long serialVersionUID = 2L;
+    private static final long serialVersionUID = 3L;
 
     private final AdapterIdentifier adapterIdentifier;
     private final String classname;
     private final AdapterType type;
-    //TODO:also need libraryDataverse
+    private final DataverseName libraryDataverseName;
     private final String libraryName;
 
-    public DatasourceAdapter(AdapterIdentifier adapterIdentifier, String classname, AdapterType type) {
+    public DatasourceAdapter(AdapterIdentifier adapterIdentifier, AdapterType type, String classname,
+            DataverseName libraryDataverseName, String libraryName) {
         this.adapterIdentifier = adapterIdentifier;
-        this.classname = classname;
         this.type = type;
-        this.libraryName = null;
-    }
-
-    public DatasourceAdapter(AdapterIdentifier adapterIdentifier, String classname, AdapterType type,
-            String libraryName) {
-        this.adapterIdentifier = adapterIdentifier;
         this.classname = classname;
-        this.type = type;
+        this.libraryDataverseName = libraryDataverseName;
         this.libraryName = libraryName;
     }
 
@@ -70,6 +65,10 @@
         return type;
     }
 
+    public DataverseName getLibraryDataverseName() {
+        return libraryDataverseName;
+    }
+
     public String getLibraryName() {
         return libraryName;
     }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
index 542bbaf..968cf14 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
@@ -40,15 +40,18 @@
     private final String body;
     private final String language;
     private final String kind;
-    private final String library;
+    private final DataverseName libraryDataverseName;
+    private final String libraryName;
+    private final List<String> externalIdentifier;
     private final Boolean deterministic; // null for SQL++ and AQL functions
     private final Boolean nullCall; // null for SQL++ and AQL functions
     private final Map<String, String> resources;
     private final List<List<Triple<DataverseName, String, String>>> dependencies;
 
     public Function(FunctionSignature signature, List<String> paramNames, List<TypeSignature> paramTypes,
-            TypeSignature returnType, String functionBody, String functionKind, String language, String library,
-            Boolean nullCall, Boolean deterministic, Map<String, String> resources,
+            TypeSignature returnType, String functionBody, String functionKind, String language,
+            DataverseName libraryDataverseName, String libraryName, List<String> externalIdentifier, Boolean nullCall,
+            Boolean deterministic, Map<String, String> resources,
             List<List<Triple<DataverseName, String, String>>> dependencies) {
         this.signature = signature;
         this.paramNames = paramNames;
@@ -57,7 +60,9 @@
         this.returnType = returnType;
         this.language = language;
         this.kind = functionKind;
-        this.library = library;
+        this.libraryDataverseName = libraryDataverseName;
+        this.libraryName = libraryName;
+        this.externalIdentifier = externalIdentifier;
         this.nullCall = nullCall;
         this.deterministic = deterministic;
         this.resources = resources == null ? Collections.emptyMap() : resources;
@@ -86,18 +91,25 @@
         return paramNames;
     }
 
+    /**
+     * @return {@code null} for non-external functions;
+     *  for external function the list may contain {@code null} which means 'any' type
+     */
     public List<TypeSignature> getParameterTypes() {
         return paramTypes;
     }
 
-    public String getFunctionBody() {
-        return body;
-    }
-
+    /**
+     * @return {@code null} for non-external functions
+     */
     public TypeSignature getReturnType() {
         return returnType;
     }
 
+    public String getFunctionBody() {
+        return body;
+    }
+
     public String getLanguage() {
         return language;
     }
@@ -107,11 +119,19 @@
     }
 
     public boolean isExternal() {
-        return library != null;
+        return externalIdentifier != null;
     }
 
-    public String getLibrary() {
-        return library;
+    public DataverseName getLibraryDataverseName() {
+        return libraryDataverseName;
+    }
+
+    public String getLibraryName() {
+        return libraryName;
+    }
+
+    public List<String> getExternalIdentifier() {
+        return externalIdentifier;
     }
 
     public Boolean getNullCall() {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
index e4f8948..c82b86a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
@@ -22,6 +22,7 @@
 import java.io.DataOutput;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.asterix.builders.IARecordBuilder;
 import org.apache.asterix.builders.OrderedListBuilder;
@@ -61,15 +62,18 @@
     private final List<List<String>> primaryKeys;
     private final List<IAType> primaryKeyTypes;
     private final boolean autogenerated;
+    private final Integer filterSourceIndicator;
     private final List<String> filterField;
     private final List<Integer> keySourceIndicators;
 
     public static final String FILTER_FIELD_NAME = "FilterField";
+    public static final String FILTER_SOURCE_INDICATOR_FIELD_NAME = "FilterSourceIndicator";
     public static final String KEY_FILD_SOURCE_INDICATOR_FIELD_NAME = "KeySourceIndicator";
 
     public InternalDatasetDetails(FileStructure fileStructure, PartitioningStrategy partitioningStrategy,
             List<List<String>> partitioningKey, List<List<String>> primaryKey, List<Integer> keyFieldIndicators,
-            List<IAType> primaryKeyType, boolean autogenerated, List<String> filterField) {
+            List<IAType> primaryKeyType, boolean autogenerated, Integer filterSourceIndicator,
+            List<String> filterField) {
         this.fileStructure = fileStructure;
         this.partitioningStrategy = partitioningStrategy;
         this.partitioningKeys = partitioningKey;
@@ -84,7 +88,14 @@
         this.keySourceIndicators = keyFieldIndicators;
         this.primaryKeyTypes = primaryKeyType;
         this.autogenerated = autogenerated;
-        this.filterField = filterField;
+        if (filterSourceIndicator != null) {
+            // to make sure filter source indicator and filter field is consistent
+            this.filterSourceIndicator = filterSourceIndicator;
+            this.filterField = Objects.requireNonNull(filterField);
+        } else {
+            this.filterSourceIndicator = null;
+            this.filterField = null;
+        }
     }
 
     public List<List<String>> getPartitioningKey() {
@@ -119,6 +130,10 @@
         return filterField;
     }
 
+    public Integer getFilterSourceIndicator() {
+        return filterSourceIndicator;
+    }
+
     @Override
     public DatasetType getDatasetType() {
         return DatasetType.INTERNAL;
@@ -209,10 +224,21 @@
                 fieldValue);
 
         // write filter fields if any
+        Integer filterSourceIndicator = getFilterSourceIndicator();
         List<String> filterField = getFilterField();
         if (filterField != null) {
-            listBuilder.reset(heterogeneousList);
             ArrayBackedValueStorage nameValue = new ArrayBackedValueStorage();
+            // write filter source indicator
+            nameValue.reset();
+            aString.setValue(FILTER_SOURCE_INDICATOR_FIELD_NAME);
+            stringSerde.serialize(aString, nameValue.getDataOutput());
+            fieldValue.reset();
+            aInt8.setValue(filterSourceIndicator.byteValue());
+            int8Serde.serialize(aInt8, fieldValue.getDataOutput());
+            internalRecordBuilder.addField(nameValue, fieldValue);
+
+            // write filter fields
+            listBuilder.reset(heterogeneousList);
             nameValue.reset();
             aString.setValue(FILTER_FIELD_NAME);
             stringSerde.serialize(aString, nameValue.getDataOutput());
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractTupleTranslator.java
index 16137ef..a35246f 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractTupleTranslator.java
@@ -32,6 +32,7 @@
 import org.apache.asterix.om.base.AInt32;
 import org.apache.asterix.om.base.AInt64;
 import org.apache.asterix.om.base.AMutableString;
+import org.apache.asterix.om.base.ANull;
 import org.apache.asterix.om.base.ARecord;
 import org.apache.asterix.om.base.AString;
 import org.apache.asterix.om.types.ARecordType;
@@ -51,6 +52,9 @@
 public abstract class AbstractTupleTranslator<T> implements IMetadataEntityTupleTranslator<T> {
 
     @SuppressWarnings("unchecked")
+    protected final ISerializerDeserializer<ANull> nullSerde =
+            SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.ANULL);
+    @SuppressWarnings("unchecked")
     protected final ISerializerDeserializer<AString> stringSerde =
             SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.ASTRING);
     @SuppressWarnings("unchecked")
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
index f0567a4..e4069c2 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
@@ -151,11 +151,25 @@
                         .getValueByPos(MetadataRecordTypes.INTERNAL_DETAILS_ARECORD_AUTOGENERATED_FIELD_INDEX))
                                 .getBoolean();
 
+                // check if there is a filter source indicator
+                Integer filterSourceIndicator = null;
+                int filterSourceIndicatorPos = datasetDetailsRecord.getType()
+                        .getFieldIndex(InternalDatasetDetails.FILTER_SOURCE_INDICATOR_FIELD_NAME);
+                if (filterSourceIndicatorPos >= 0) {
+                    filterSourceIndicator =
+                            (int) ((AInt8) datasetDetailsRecord.getValueByPos(filterSourceIndicatorPos)).getByteValue();
+                }
+
                 // Check if there is a filter field.
                 List<String> filterField = null;
                 int filterFieldPos =
                         datasetDetailsRecord.getType().getFieldIndex(InternalDatasetDetails.FILTER_FIELD_NAME);
                 if (filterFieldPos >= 0) {
+                    // backward compatibility, if a dataset contains filter field but no filter source indicator
+                    // we set the indicator to 0 by default.
+                    if (filterSourceIndicator == null) {
+                        filterSourceIndicator = 0;
+                    }
                     filterField = new ArrayList<>();
                     cursor = ((AOrderedList) datasetDetailsRecord.getValueByPos(filterFieldPos)).getCursor();
                     while (cursor.next()) {
@@ -180,7 +194,8 @@
                 }
 
                 datasetDetails = new InternalDatasetDetails(fileStructure, partitioningStrategy, partitioningKey,
-                        partitioningKey, keyFieldSourceIndicator, partitioningKeyType, autogenerated, filterField);
+                        partitioningKey, keyFieldSourceIndicator, partitioningKeyType, autogenerated,
+                        filterSourceIndicator, filterField);
                 break;
             }
 
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
index 6279451..5327b22 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
@@ -56,12 +56,21 @@
                 ((AString) adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX))
                         .getStringValue());
 
+        DataverseName libraryDataverseName = null;
+        String libraryName = null;
         int libraryNameIdx = adapterRecord.getType().getFieldIndex(MetadataRecordTypes.FIELD_NAME_LIBRARY_NAME);
-        String libraryName =
-                libraryNameIdx >= 0 ? ((AString) adapterRecord.getValueByPos(libraryNameIdx)).getStringValue() : null;
+        if (libraryNameIdx >= 0) {
+            libraryName = ((AString) adapterRecord.getValueByPos(libraryNameIdx)).getStringValue();
+            int libraryDataverseNameIdx =
+                    adapterRecord.getType().getFieldIndex(MetadataRecordTypes.FIELD_NAME_LIBRARY_DATAVERSE_NAME);
+            libraryDataverseName = libraryDataverseNameIdx >= 0
+                    ? DataverseName.createFromCanonicalForm(
+                            ((AString) adapterRecord.getValueByPos(libraryDataverseNameIdx)).getStringValue())
+                    : dataverseName;
+        }
 
-        return new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName), classname, adapterType,
-                libraryName);
+        return new DatasourceAdapter(new AdapterIdentifier(dataverseName, adapterName), adapterType, classname,
+                libraryDataverseName, libraryName);
     }
 
     @Override
@@ -132,6 +141,15 @@
         if (adapter.getLibraryName() == null) {
             return;
         }
+
+        fieldName.reset();
+        aString.setValue(MetadataRecordTypes.FIELD_NAME_LIBRARY_DATAVERSE_NAME);
+        stringSerde.serialize(aString, fieldName.getDataOutput());
+        fieldValue.reset();
+        aString.setValue(adapter.getLibraryDataverseName().getCanonicalForm());
+        stringSerde.serialize(aString, fieldValue.getDataOutput());
+        recordBuilder.addField(fieldName, fieldValue);
+
         fieldName.reset();
         aString.setValue(MetadataRecordTypes.FIELD_NAME_LIBRARY_NAME);
         stringSerde.serialize(aString, fieldName.getDataOutput());
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
index 7135305..dddd28e 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
@@ -20,20 +20,25 @@
 package org.apache.asterix.metadata.entitytupletranslators;
 
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_DATAVERSE_NAME;
+import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_LIBRARY_DATAVERSE_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_RETURN_TYPE_DATAVERSE_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_TYPE;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_VALUE;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DETERMINISTIC_FIELD_NAME;
+import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_EXTERNAL_IDENTIFIER_FIELD_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_NULLCALL_FIELD_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_PARAMTYPES_FIELD_NAME;
-import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME;
+import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_RESOURCES_FIELD_NAME;
+import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_WITHPARAMS_FIELD_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.PROPERTIES_NAME_FIELD_NAME;
 import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.PROPERTIES_VALUE_FIELD_NAME;
 
 import java.io.DataOutput;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -41,6 +46,9 @@
 import org.apache.asterix.builders.IARecordBuilder;
 import org.apache.asterix.builders.OrderedListBuilder;
 import org.apache.asterix.builders.RecordBuilder;
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.common.functions.ExternalFunctionLanguage;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.common.transactions.TxnId;
@@ -49,17 +57,19 @@
 import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
 import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Function;
-import org.apache.asterix.metadata.utils.TypeUtil;
 import org.apache.asterix.om.base.ABoolean;
+import org.apache.asterix.om.base.ANull;
 import org.apache.asterix.om.base.AOrderedList;
 import org.apache.asterix.om.base.ARecord;
 import org.apache.asterix.om.base.AString;
 import org.apache.asterix.om.base.IACursor;
+import org.apache.asterix.om.base.IAObject;
 import org.apache.asterix.om.pointables.base.DefaultOpenFieldType;
 import org.apache.asterix.om.types.AOrderedListType;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.TypeSignature;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.common.utils.Triple;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -93,7 +103,7 @@
         }
     }
 
-    protected Function createMetadataEntityFromARecord(ARecord functionRecord) {
+    protected Function createMetadataEntityFromARecord(ARecord functionRecord) throws AlgebricksException {
         String dataverseCanonicalName =
                 ((AString) functionRecord.getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_DATAVERSENAME_FIELD_INDEX))
                         .getStringValue();
@@ -111,12 +121,17 @@
             paramNames.add(((AString) paramNameCursor.get()).getStringValue());
         }
 
-        List<TypeSignature> paramTypes = getParamTypes(functionRecord, arity, dataverseName);
+        List<TypeSignature> paramTypes = getParamTypes(functionRecord, dataverseName);
 
+        TypeSignature returnType;
         String returnTypeName = ((AString) functionRecord
                 .getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_RETURN_TYPE_FIELD_INDEX)).getStringValue();
-        String returnTypeDataverseNameCanonical = getString(functionRecord, FIELD_NAME_RETURN_TYPE_DATAVERSE_NAME);
-        TypeSignature returnType = getTypeSignature(returnTypeName, returnTypeDataverseNameCanonical, dataverseName);
+        if (returnTypeName.isEmpty()) {
+            returnType = null; // == any
+        } else {
+            String returnTypeDataverseNameCanonical = getString(functionRecord, FIELD_NAME_RETURN_TYPE_DATAVERSE_NAME);
+            returnType = getTypeSignature(returnTypeName, returnTypeDataverseNameCanonical, dataverseName);
+        }
 
         String definition = ((AString) functionRecord
                 .getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DEFINITION_FIELD_INDEX)).getStringValue();
@@ -125,11 +140,41 @@
         String functionKind =
                 ((AString) functionRecord.getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_KIND_FIELD_INDEX))
                         .getStringValue();
-        String functionLibrary = getString(functionRecord, FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME);
-        Boolean nullCall = getBoolean(functionRecord, FUNCTION_ARECORD_FUNCTION_NULLCALL_FIELD_NAME);
-        Boolean deterministic = getBoolean(functionRecord, FUNCTION_ARECORD_FUNCTION_DETERMINISTIC_FIELD_NAME);
 
-        Map<String, String> resources = getResources(functionRecord);
+        Map<String, String> resources = null;
+        DataverseName libraryDataverseName = null;
+        String libraryName;
+        List<String> externalIdentifier = null;
+        AOrderedList externalIdentifierList =
+                getOrderedList(functionRecord, FUNCTION_ARECORD_FUNCTION_EXTERNAL_IDENTIFIER_FIELD_NAME);
+        if (externalIdentifierList != null) {
+            externalIdentifier = new ArrayList<>(externalIdentifierList.size());
+            IACursor externalIdentifierCursor = externalIdentifierList.getCursor();
+            while (externalIdentifierCursor.next()) {
+                externalIdentifierList.add(externalIdentifierCursor.get());
+            }
+            libraryName = getString(functionRecord, MetadataRecordTypes.FIELD_NAME_LIBRARY_NAME);
+            String libraryDataverseCanonicalName = getString(functionRecord, FIELD_NAME_LIBRARY_DATAVERSE_NAME);
+            libraryDataverseName = DataverseName.createFromCanonicalForm(libraryDataverseCanonicalName);
+            resources = getResources(functionRecord, FUNCTION_ARECORD_FUNCTION_RESOURCES_FIELD_NAME);
+            definition = null;
+        } else {
+            // back-compat. get external identifier from function body
+            libraryName = getString(functionRecord, FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME);
+            if (libraryName != null) {
+                libraryDataverseName = dataverseName;
+                externalIdentifier =
+                        decodeExternalIdentifierBackCompat(definition, ExternalFunctionLanguage.valueOf(language));
+                resources = getResources(functionRecord, FUNCTION_ARECORD_FUNCTION_WITHPARAMS_FIELD_NAME);
+            }
+        }
+
+        Boolean nullCall = null;
+        Boolean deterministic = null;
+        if (externalIdentifier != null) {
+            nullCall = getBoolean(functionRecord, FUNCTION_ARECORD_FUNCTION_NULLCALL_FIELD_NAME);
+            deterministic = getBoolean(functionRecord, FUNCTION_ARECORD_FUNCTION_DETERMINISTIC_FIELD_NAME);
+        }
 
         IACursor dependenciesCursor = ((AOrderedList) functionRecord
                 .getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DEPENDENCIES_FIELD_INDEX)).getCursor();
@@ -148,35 +193,46 @@
         FunctionSignature signature = new FunctionSignature(dataverseName, functionName, arity);
 
         return new Function(signature, paramNames, paramTypes, returnType, definition, functionKind, language,
-                functionLibrary, nullCall, deterministic, resources, dependencies);
+                libraryDataverseName, libraryName, externalIdentifier, nullCall, deterministic, resources,
+                dependencies);
     }
 
-    private List<TypeSignature> getParamTypes(ARecord functionRecord, int arity, DataverseName functionDataverseName) {
-        List<TypeSignature> paramTypes = new ArrayList<>(arity);
+    private List<TypeSignature> getParamTypes(ARecord functionRecord, DataverseName functionDataverseName) {
         ARecordType functionRecordType = functionRecord.getType();
         int paramTypesFieldIdx = functionRecordType.getFieldIndex(FUNCTION_ARECORD_FUNCTION_PARAMTYPES_FIELD_NAME);
-        if (paramTypesFieldIdx >= 0) {
-            IACursor cursor = ((AOrderedList) functionRecord.getValueByPos(paramTypesFieldIdx)).getCursor();
-            while (cursor.next()) {
-                ARecord paramTypeRecord = (ARecord) cursor.get();
-                String paramTypeName = getString(paramTypeRecord, FIELD_NAME_TYPE);
-                String paramTypeDataverseNameCanonical = getString(paramTypeRecord, FIELD_NAME_DATAVERSE_NAME);
-                TypeSignature paramType =
-                        getTypeSignature(paramTypeName, paramTypeDataverseNameCanonical, functionDataverseName);
-                paramTypes.add(paramType);
+        if (paramTypesFieldIdx < 0) {
+            return null;
+        }
+
+        AOrderedList paramTypeList = (AOrderedList) functionRecord.getValueByPos(paramTypesFieldIdx);
+        List<TypeSignature> paramTypes = new ArrayList<>(paramTypeList.size());
+        IACursor cursor = paramTypeList.getCursor();
+        while (cursor.next()) {
+            IAObject paramTypeObject = cursor.get();
+            TypeSignature paramType;
+            switch (paramTypeObject.getType().getTypeTag()) {
+                case NULL:
+                    paramType = null; // == any
+                    break;
+                case OBJECT:
+                    ARecord paramTypeRecord = (ARecord) paramTypeObject;
+                    String paramTypeName = getString(paramTypeRecord, FIELD_NAME_TYPE);
+                    String paramTypeDataverseNameCanonical = getString(paramTypeRecord, FIELD_NAME_DATAVERSE_NAME);
+                    paramType = getTypeSignature(paramTypeName, paramTypeDataverseNameCanonical, functionDataverseName);
+                    break;
+                default:
+                    throw new IllegalStateException(); //TODO:FIXME
             }
-        } else {
-            for (int i = 0; i < arity; i++) {
-                paramTypes.add(TypeUtil.ANY_TYPE_SIGNATURE);
-            }
+            paramTypes.add(paramType);
         }
         return paramTypes;
     }
 
     private TypeSignature getTypeSignature(String typeName, String typeDataverseNameCanonical,
             DataverseName functionDataverseName) {
+        // back-compat: handle "any"
         if (BuiltinType.ANY.getTypeName().equals(typeName)) {
-            return TypeUtil.ANY_TYPE_SIGNATURE;
+            return null; // == any
         }
         BuiltinType builtinType = BuiltinTypeMap.getBuiltinType(typeName);
         if (builtinType != null) {
@@ -201,11 +257,12 @@
         return new Triple<>(dataverseName, second, third);
     }
 
-    private Map<String, String> getResources(ARecord functionRecord) {
-        Map<String, String> adaptorConfiguration = new HashMap<>();
+    private Map<String, String> getResources(ARecord functionRecord, String resourcesFieldName) {
+        Map<String, String> adaptorConfiguration = null;
         final ARecordType functionType = functionRecord.getType();
-        final int functionLibraryIdx = functionType.getFieldIndex(FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME);
+        final int functionLibraryIdx = functionType.getFieldIndex(resourcesFieldName);
         if (functionLibraryIdx >= 0) {
+            adaptorConfiguration = new HashMap<>();
             IACursor cursor = ((AOrderedList) functionRecord.getValueByPos(functionLibraryIdx)).getCursor();
             while (cursor.next()) {
                 ARecord field = (ARecord) cursor.get();
@@ -222,8 +279,8 @@
 
     private String getString(ARecord aRecord, String fieldName) {
         final ARecordType functionType = aRecord.getType();
-        final int functionLibraryIdx = functionType.getFieldIndex(fieldName);
-        return functionLibraryIdx >= 0 ? ((AString) aRecord.getValueByPos(functionLibraryIdx)).getStringValue() : null;
+        final int fieldIndex = functionType.getFieldIndex(fieldName);
+        return fieldIndex >= 0 ? ((AString) aRecord.getValueByPos(fieldIndex)).getStringValue() : null;
     }
 
     private Boolean getBoolean(ARecord aRecord, String fieldName) {
@@ -232,6 +289,12 @@
         return fieldIndex >= 0 ? ((ABoolean) aRecord.getValueByPos(fieldIndex)).getBoolean() : null;
     }
 
+    private AOrderedList getOrderedList(ARecord aRecord, String fieldName) {
+        final ARecordType aRecordType = aRecord.getType();
+        final int fieldIndex = aRecordType.getFieldIndex(fieldName);
+        return fieldIndex >= 0 ? ((AOrderedList) aRecord.getValueByPos(fieldIndex)) : null;
+    }
+
     @Override
     public ITupleReference getTupleFromMetadataEntity(Function function) throws HyracksDataException {
         DataverseName dataverseName = function.getDataverseName();
@@ -288,14 +351,15 @@
 
         // write field 4
         // Note: return type's dataverse name is written later in the open part
+        TypeSignature returnType = function.getReturnType();
         fieldValue.reset();
-        aString.setValue(function.getReturnType().getName());
+        aString.setValue(returnType != null ? returnType.getName() : "");
         stringSerde.serialize(aString, fieldValue.getDataOutput());
         recordBuilder.addField(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_RETURN_TYPE_FIELD_INDEX, fieldValue);
 
         // write field 5
         fieldValue.reset();
-        aString.setValue(function.getFunctionBody());
+        aString.setValue(function.isExternal() ? "" : function.getFunctionBody());
         stringSerde.serialize(aString, fieldValue.getDataOutput());
         recordBuilder.addField(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DEFINITION_FIELD_INDEX, fieldValue);
 
@@ -375,20 +439,28 @@
         listBuilder.write(fieldValue.getDataOutput(), true);
 
         fieldName.reset();
-        aString.setValue(FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME);
+        aString.setValue(FUNCTION_ARECORD_FUNCTION_RESOURCES_FIELD_NAME);
         stringSerde.serialize(aString, fieldName.getDataOutput());
 
         recordBuilder.addField(fieldName, fieldValue);
     }
 
     protected void writeParameterTypes(Function function) throws HyracksDataException {
+        List<TypeSignature> parameterTypes = function.getParameterTypes();
+        if (parameterTypes == null) {
+            return;
+        }
         OrderedListBuilder listBuilder = new OrderedListBuilder();
         ArrayBackedValueStorage itemValue = new ArrayBackedValueStorage();
         listBuilder.reset(DefaultOpenFieldType.NESTED_OPEN_AORDERED_LIST_TYPE);
-        for (TypeSignature paramType : function.getParameterTypes()) {
+        for (TypeSignature paramType : parameterTypes) {
             itemValue.reset();
-            writeTypeRecord(paramType.getDataverseName(), paramType.getName(), function.getDataverseName(),
-                    itemValue.getDataOutput());
+            if (paramType == null) {
+                nullSerde.serialize(ANull.NULL, itemValue.getDataOutput());
+            } else {
+                writeTypeRecord(paramType.getDataverseName(), paramType.getName(), function.getDataverseName(),
+                        itemValue.getDataOutput());
+            }
             listBuilder.addItem(itemValue);
         }
         fieldValue.reset();
@@ -402,31 +474,59 @@
     }
 
     protected void writeLibrary(Function function) throws HyracksDataException {
-        if (function.getLibrary() == null) {
+        if (!function.isExternal()) {
             return;
         }
+
         fieldName.reset();
-        aString.setValue(FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME);
+        aString.setValue(FIELD_NAME_LIBRARY_DATAVERSE_NAME);
         stringSerde.serialize(aString, fieldName.getDataOutput());
         fieldValue.reset();
-        aString.setValue(function.getLibrary());
+        aString.setValue(function.getLibraryDataverseName().getCanonicalForm());
         stringSerde.serialize(aString, fieldValue.getDataOutput());
         recordBuilder.addField(fieldName, fieldValue);
+
+        fieldName.reset();
+        aString.setValue(MetadataRecordTypes.FIELD_NAME_LIBRARY_NAME);
+        stringSerde.serialize(aString, fieldName.getDataOutput());
+        fieldValue.reset();
+        aString.setValue(function.getLibraryName());
+        stringSerde.serialize(aString, fieldValue.getDataOutput());
+        recordBuilder.addField(fieldName, fieldValue);
+
+        fieldName.reset();
+        aString.setValue(FUNCTION_ARECORD_FUNCTION_EXTERNAL_IDENTIFIER_FIELD_NAME);
+        stringSerde.serialize(aString, fieldName.getDataOutput());
+        OrderedListBuilder listBuilder = new OrderedListBuilder();
+        ArrayBackedValueStorage itemValue = new ArrayBackedValueStorage();
+        listBuilder.reset(stringList);
+        for (String externalIdPart : function.getExternalIdentifier()) {
+            itemValue.reset();
+            aString.setValue(externalIdPart);
+            stringSerde.serialize(aString, itemValue.getDataOutput());
+            listBuilder.addItem(itemValue);
+        }
+        fieldValue.reset();
+        listBuilder.write(fieldValue.getDataOutput(), true);
+        recordBuilder.addField(fieldName, fieldValue);
     }
 
     protected void writeReturnTypeDataverseName(Function function) throws HyracksDataException {
-        DataverseName returnTypeDataverseName = function.getReturnType().getDataverseName();
-        boolean skipReturnTypeDataverseName =
-                returnTypeDataverseName == null || returnTypeDataverseName.equals(function.getDataverseName());
-        if (!skipReturnTypeDataverseName) {
-            fieldName.reset();
-            aString.setValue(FIELD_NAME_RETURN_TYPE_DATAVERSE_NAME);
-            stringSerde.serialize(aString, fieldName.getDataOutput());
-            fieldValue.reset();
-            aString.setValue(returnTypeDataverseName.getCanonicalForm());
-            stringSerde.serialize(aString, fieldValue.getDataOutput());
-            recordBuilder.addField(fieldName, fieldValue);
+        TypeSignature returnType = function.getReturnType();
+        if (returnType == null) {
+            return;
         }
+        DataverseName returnTypeDataverseName = returnType.getDataverseName();
+        if (returnTypeDataverseName == null || returnTypeDataverseName.equals(function.getDataverseName())) {
+            return;
+        }
+        fieldName.reset();
+        aString.setValue(FIELD_NAME_RETURN_TYPE_DATAVERSE_NAME);
+        stringSerde.serialize(aString, fieldName.getDataOutput());
+        fieldValue.reset();
+        aString.setValue(returnTypeDataverseName.getCanonicalForm());
+        stringSerde.serialize(aString, fieldValue.getDataOutput());
+        recordBuilder.addField(fieldName, fieldValue);
     }
 
     protected void writeNullCall(Function function) throws HyracksDataException {
@@ -520,4 +620,38 @@
         }
         return dependencySubnames;
     }
-}
\ No newline at end of file
+
+    // back-compat
+    private static List<String> decodeExternalIdentifierBackCompat(String encodedValue,
+            ExternalFunctionLanguage language) throws AlgebricksException {
+        switch (language) {
+            case JAVA:
+                // input: class
+                //
+                // output:
+                // [0] = class
+                return Collections.singletonList(encodedValue);
+
+            case PYTHON:
+                // input:
+                //  case 1 (method): package.module:class.method
+                //  case 2 (function): package.module:function
+                //
+                // output:
+                //  case 1:
+                //    [0] = package.module
+                //    [1] = class.method
+                //  case 2:
+                //    [0] = package.module
+                //    [1] = function
+                int idx = encodedValue.lastIndexOf(':');
+                if (idx < 0) {
+                    throw new AsterixException(ErrorCode.METADATA_ERROR, encodedValue);
+                }
+                return Arrays.asList(encodedValue.substring(0, idx), encodedValue.substring(idx + 1));
+
+            default:
+                throw new AsterixException(ErrorCode.METADATA_ERROR, language);
+        }
+    }
+}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
index 466778c..d5e941f 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
@@ -170,8 +170,7 @@
     private static ITypedAdapterFactory createExternalAdapterFactory(MetadataTransactionContext mdTxnCtx,
             DatasourceAdapter adapterEntity, String adapterFactoryClassname)
             throws AlgebricksException, RemoteException, HyracksDataException {
-        //TODO:library dataverse must be explicitly specified in the adapter entity
-        DataverseName libraryDataverse = adapterEntity.getAdapterIdentifier().getDataverseName();
+        DataverseName libraryDataverse = adapterEntity.getLibraryDataverseName();
         String libraryName = adapterEntity.getLibraryName();
         Library library = MetadataManager.INSTANCE.getLibrary(mdTxnCtx, libraryDataverse, libraryName);
         if (library == null) {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
index 6c88621..029b13a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
@@ -19,14 +19,13 @@
 package org.apache.asterix.metadata.functions;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
 import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.ExternalFunctionLanguage;
-import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Function;
@@ -37,6 +36,7 @@
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.FunctionKind;
 import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
+import org.apache.hyracks.api.exceptions.SourceLocation;
 
 public class ExternalFunctionCompilerUtil {
 
@@ -63,31 +63,24 @@
 
     private static IFunctionInfo getScalarFunctionInfo(MetadataProvider metadataProvider, Function function)
             throws AlgebricksException {
-        if (function.getDeterministic() == null) {
-            throw new AsterixException(ErrorCode.METADATA_ERROR, "");
-        }
 
-        List<IAType> paramTypes = new ArrayList<>(function.getParameterTypes().size());
-        for (TypeSignature ts : function.getParameterTypes()) {
-            IAType paramType = resolveFunctionType(ts, metadataProvider);
-            paramTypes.add(paramType);
-        }
+        List<IAType> paramTypes = getParameterTypes(function, metadataProvider);
 
-        IAType returnType = resolveFunctionType(function.getReturnType(), metadataProvider);
+        IAType returnType = getType(function.getReturnType(), metadataProvider);
 
         IResultTypeComputer typeComputer = new ExternalTypeComputer(returnType, paramTypes);
 
-        ExternalFunctionLanguage lang;
-        try {
-            lang = ExternalFunctionLanguage.valueOf(function.getLanguage());
-        } catch (IllegalArgumentException e) {
-            throw new AsterixException(ErrorCode.METADATA_ERROR, function.getLanguage());
-        }
-        List<String> externalIdentifier = decodeExternalIdentifier(lang, function.getFunctionBody());
+        ExternalFunctionLanguage lang = getExternalFunctionLanguage(function.getLanguage());
 
-        return new ExternalScalarFunctionInfo(function.getSignature().createFunctionIdentifier(), returnType,
-                externalIdentifier, lang, function.getLibrary(), paramTypes, function.getResources(),
-                function.getDeterministic(), typeComputer);
+        Boolean deterministic = function.getDeterministic();
+        if (deterministic == null) {
+            // all external functions should store 'deterministic' property
+            throw new AsterixException(ErrorCode.METADATA_ERROR, function.getSignature().toString());
+        }
+
+        return new ExternalScalarFunctionInfo(function.getSignature().createFunctionIdentifier(), paramTypes,
+                returnType, typeComputer, lang, function.getLibraryDataverseName(), function.getLibraryName(),
+                function.getExternalIdentifier(), function.getResources(), deterministic);
     }
 
     private static IFunctionInfo getUnnestFunctionInfo(MetadataProvider metadataProvider, Function function) {
@@ -102,9 +95,41 @@
         return null;
     }
 
-    private static IAType resolveFunctionType(TypeSignature typeSignature, MetadataProvider metadataProvider)
+    private static List<IAType> getParameterTypes(Function function, MetadataProvider metadataProvider)
             throws AlgebricksException {
+        int arity = function.getArity();
+        if (arity == 0) {
+            return Collections.emptyList();
+        } else if (arity >= 0) {
+            List<IAType> types = new ArrayList<>(arity);
+            List<TypeSignature> typeSignatures = function.getParameterTypes();
+            if (typeSignatures != null) {
+                if (typeSignatures.size() != arity) {
+                    throw new AsterixException(ErrorCode.METADATA_ERROR, function.getSignature().toString());
+                }
+                for (TypeSignature ts : typeSignatures) {
+                    IAType paramType = getType(ts, metadataProvider);
+                    types.add(paramType);
+                }
+            } else {
+                for (int i = 0; i < arity; i++) {
+                    types.add(BuiltinType.ANY);
+                }
+            }
+            return types;
+        } else {
+            // we don't yet support variadic external functions
+            throw new AsterixException(ErrorCode.METADATA_ERROR, function.getSignature().toString());
+        }
+    }
+
+    private static IAType getType(TypeSignature typeSignature, MetadataProvider metadataProvider)
+            throws AlgebricksException {
+        if (typeSignature == null) {
+            return BuiltinType.ANY;
+        }
         String typeName = typeSignature.getName();
+        // back-compat: handle "any"
         if (BuiltinType.ANY.getTypeName().equals(typeName)) {
             return BuiltinType.ANY;
         }
@@ -115,79 +140,31 @@
         return type;
     }
 
-    public static String encodeExternalIdentifier(FunctionSignature functionSignature,
-            ExternalFunctionLanguage language, List<String> identList) throws AlgebricksException {
-        switch (language) {
-            case JAVA:
-                // input:
-                // [0] = package.class
-                //
-                // output: package.class
-
-                return identList.get(0);
-
-            case PYTHON:
-                // input: either a method or a top-level function
-                // [0] = package.module(:class)?
-                // [1] = (function_or_method)? - if missing then defaults to declared function name
-                //
-                // output:
-                // case 1 (method): package.module:class.method
-                // case 2 (function): package.module:function
-
-                String ident0 = identList.get(0);
-                String ident1 = identList.size() > 1 ? identList.get(1) : functionSignature.getName();
-                boolean classExists = ident0.indexOf(':') > 0;
-                return ident0 + (classExists ? '.' : ':') + ident1;
-
-            default:
-                throw new AsterixException(ErrorCode.COMPILATION_ERROR, language);
+    public static ExternalFunctionLanguage getExternalFunctionLanguage(String language) throws AsterixException {
+        try {
+            return ExternalFunctionLanguage.valueOf(language);
+        } catch (IllegalArgumentException e) {
+            throw new AsterixException(ErrorCode.METADATA_ERROR, language);
         }
     }
 
-    public static List<String> decodeExternalIdentifier(ExternalFunctionLanguage language, String encodedValue)
-            throws AlgebricksException {
+    public static void validateExternalIdentifier(List<String> externalIdentifier, ExternalFunctionLanguage language,
+            SourceLocation sourceLoc) throws CompilationException {
+        int expectedSize;
         switch (language) {
             case JAVA:
-                // input: class
-                //
-                // output:
-                // [0] = class
-                return Collections.singletonList(encodedValue);
-
+                expectedSize = 1;
+                break;
             case PYTHON:
-                // input:
-                //  case 1 (method): package.module:class.method
-                //  case 2 (function): package.module:function
-                //
-                // output:
-                //  case 1:
-                //    [0] = package.module
-                //    [1] = class
-                //    [2] = method
-                //  case 2:
-                //    [0] = package.module
-                //    [1] = function
-
-                int d1 = encodedValue.indexOf(':');
-                if (d1 <= 0) {
-                    throw new AsterixException(ErrorCode.COMPILATION_ERROR, encodedValue);
-                }
-                String moduleName = encodedValue.substring(0, d1);
-                int d2 = encodedValue.lastIndexOf('.');
-                if (d2 > d1) {
-                    // class.method
-                    String className = encodedValue.substring(d1 + 1, d2);
-                    String methodName = encodedValue.substring(d2 + 1);
-                    return Arrays.asList(moduleName, className, methodName);
-                } else {
-                    // function
-                    String functionName = encodedValue.substring(d1 + 1);
-                    return Arrays.asList(moduleName, functionName);
-                }
-
+                expectedSize = 2;
+                break;
             default:
-                throw new AsterixException(ErrorCode.COMPILATION_ERROR, language);
+                throw new CompilationException(ErrorCode.METADATA_ERROR, language.name());
+        }
+        int actualSize = externalIdentifier.size();
+        if (actualSize != expectedSize) {
+            throw new CompilationException(ErrorCode.INVALID_EXTERNAL_IDENTIFIER_SIZE, sourceLoc,
+                    String.valueOf(actualSize), language.name());
         }
     }
 }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalScalarFunctionInfo.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalScalarFunctionInfo.java
index da28d18..854320a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalScalarFunctionInfo.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalScalarFunctionInfo.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import org.apache.asterix.common.functions.ExternalFunctionLanguage;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.om.functions.ExternalFunctionInfo;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.IAType;
@@ -30,19 +31,12 @@
 
 public class ExternalScalarFunctionInfo extends ExternalFunctionInfo {
 
-    private static final long serialVersionUID = 2L;
+    private static final long serialVersionUID = 3L;
 
-    public ExternalScalarFunctionInfo(String namespace, String library, String name, int arity, IAType returnType,
-            List<String> externalIdentifier, ExternalFunctionLanguage language, List<IAType> argumentTypes,
-            Map<String, String> params, boolean deterministic, IResultTypeComputer rtc) {
-        super(namespace, name, arity, FunctionKind.SCALAR, argumentTypes, returnType, rtc, language, library,
-                externalIdentifier, params, deterministic);
-    }
-
-    public ExternalScalarFunctionInfo(FunctionIdentifier fid, IAType returnType, List<String> externalIdentifier,
-            ExternalFunctionLanguage language, String library, List<IAType> argumentTypes, Map<String, String> params,
-            boolean deterministic, IResultTypeComputer rtc) {
-        super(fid, FunctionKind.SCALAR, argumentTypes, returnType, rtc, language, library, externalIdentifier, params,
-                deterministic);
+    public ExternalScalarFunctionInfo(FunctionIdentifier fid, List<IAType> parameterTypes, IAType returnType,
+            IResultTypeComputer rtc, ExternalFunctionLanguage language, DataverseName libraryDataverseName,
+            String libraryName, List<String> externalIdentifier, Map<String, String> resources, boolean deterministic) {
+        super(fid, FunctionKind.SCALAR, parameterTypes, returnType, rtc, language, libraryDataverseName, libraryName,
+                externalIdentifier, resources, deterministic);
     }
 }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
index 3b312bb..bf3f8cf 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
@@ -103,35 +103,43 @@
     private DatasetUtil() {
     }
 
+    public static Integer getFilterSourceIndicator(Dataset dataset) {
+        return ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator();
+    }
+
     public static List<String> getFilterField(Dataset dataset) {
         return ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterField();
     }
 
     public static IBinaryComparatorFactory[] computeFilterBinaryComparatorFactories(Dataset dataset,
-            ARecordType itemType, IBinaryComparatorFactoryProvider comparatorFactoryProvider)
+            ARecordType recordType, ARecordType metaType, IBinaryComparatorFactoryProvider comparatorFactoryProvider)
             throws AlgebricksException {
         if (dataset.getDatasetType() == DatasetType.EXTERNAL) {
             return null;
         }
+        Integer filterFieldSourceIndicator = getFilterSourceIndicator(dataset);
         List<String> filterField = getFilterField(dataset);
         if (filterField == null) {
             return null;
         }
         IBinaryComparatorFactory[] bcfs = new IBinaryComparatorFactory[1];
+        ARecordType itemType = filterFieldSourceIndicator == 0 ? recordType : metaType;
         IAType type = itemType.getSubFieldType(filterField);
         bcfs[0] = comparatorFactoryProvider.getBinaryComparatorFactory(type, true);
         return bcfs;
     }
 
-    public static ITypeTraits[] computeFilterTypeTraits(Dataset dataset, ARecordType itemType)
+    public static ITypeTraits[] computeFilterTypeTraits(Dataset dataset, ARecordType recordType, ARecordType metaType)
             throws AlgebricksException {
         if (dataset.getDatasetType() == DatasetType.EXTERNAL) {
             return null;
         }
+        Integer filterFieldSourceIndicator = getFilterSourceIndicator(dataset);
         List<String> filterField = getFilterField(dataset);
         if (filterField == null) {
             return null;
         }
+        ARecordType itemType = filterFieldSourceIndicator == 0 ? recordType : metaType;
         ITypeTraits[] typeTraits = new ITypeTraits[1];
         IAType type = itemType.getSubFieldType(filterField);
         typeTraits[0] = TypeTraitProvider.INSTANCE.getTypeTrait(type);
@@ -151,7 +159,8 @@
         int numKeys = partitioningKeys.size();
 
         int[] filterFields = new int[1];
-        filterFields[0] = numKeys + 1;
+        int valueFields = dataset.hasMetaPart() ? 2 : 1;
+        filterFields[0] = numKeys + valueFields;
         return filterFields;
     }
 
@@ -471,9 +480,13 @@
         }
         // add the previous filter third
         int fieldIdx = -1;
+        Integer filterSourceIndicator = null;
+        ARecordType filterItemType = null;
         if (numFilterFields > 0) {
+            filterSourceIndicator = DatasetUtil.getFilterSourceIndicator(dataset);
             String filterField = DatasetUtil.getFilterField(dataset).get(0);
-            String[] fieldNames = itemType.getFieldNames();
+            filterItemType = filterSourceIndicator == 0 ? itemType : metaItemType;
+            String[] fieldNames = filterItemType.getFieldNames();
             int i = 0;
             for (; i < fieldNames.length; i++) {
                 if (fieldNames[i].equals(filterField)) {
@@ -481,9 +494,10 @@
                 }
             }
             fieldIdx = i;
-            outputTypeTraits[f] = dataFormat.getTypeTraitProvider().getTypeTrait(itemType.getFieldTypes()[fieldIdx]);
+            outputTypeTraits[f] =
+                    dataFormat.getTypeTraitProvider().getTypeTrait(filterItemType.getFieldTypes()[fieldIdx]);
             outputSerDes[f] =
-                    dataFormat.getSerdeProvider().getSerializerDeserializer(itemType.getFieldTypes()[fieldIdx]);
+                    dataFormat.getSerdeProvider().getSerializerDeserializer(filterItemType.getFieldTypes()[fieldIdx]);
             f++;
         }
         for (int j = 0; j < inputRecordDesc.getFieldCount(); j++) {
@@ -493,7 +507,8 @@
         RecordDescriptor outputRecordDesc = new RecordDescriptor(outputSerDes, outputTypeTraits);
         op = new LSMPrimaryUpsertOperatorDescriptor(spec, outputRecordDesc, fieldPermutation, idfh,
                 missingWriterFactory, modificationCallbackFactory, searchCallbackFactory,
-                dataset.getFrameOpCallbackFactory(metadataProvider), numKeys, itemType, fieldIdx, hasSecondaries);
+                dataset.getFrameOpCallbackFactory(metadataProvider), numKeys, filterSourceIndicator, filterItemType,
+                fieldIdx, hasSecondaries);
         return new Pair<>(op, splitsAndConstraint.second);
     }
 
@@ -582,7 +597,8 @@
     public static String createNodeGroupForNewDataset(DataverseName dataverseName, String datasetName,
             long rebalanceCount, Set<String> ncNames, MetadataProvider metadataProvider) throws Exception {
         ICcApplicationContext appCtx = metadataProvider.getApplicationContext();
-        String nodeGroup = dataverseName + "." + datasetName + (rebalanceCount == 0L ? "" : "_" + rebalanceCount);
+        String nodeGroup = dataverseName.getCanonicalForm() + "." + datasetName
+                + (rebalanceCount == 0L ? "" : "_" + rebalanceCount);
         MetadataTransactionContext mdTxnCtx = metadataProvider.getMetadataTxnContext();
         appCtx.getMetadataLockManager().acquireNodeGroupWriteLock(metadataProvider.getLocks(), nodeGroup);
         NodeGroup ng = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, nodeGroup);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/InvertedIndexResourceFactoryProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/InvertedIndexResourceFactoryProvider.java
index f1fe625..f2b7558 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/InvertedIndexResourceFactoryProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/InvertedIndexResourceFactoryProvider.java
@@ -127,6 +127,9 @@
                 invertedIndexFieldsForNonBulkLoadOps, bloomFilterFalsePositiveRate);
     }
 
+    // Returns an array of the type traits of the inverted list elements
+    // It contains the primary key(s) type traits of the corresponding indexed rows,
+    // and those primary keys are the elements in the inverted list.
     private static ITypeTraits[] getInvListTypeTraits(MetadataProvider metadataProvider, Dataset dataset,
             ARecordType recordType, ARecordType metaType) throws AlgebricksException {
         ITypeTraits[] primaryTypeTraits = dataset.getPrimaryTypeTraits(metadataProvider, recordType, metaType);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
index eab69e0..4309c2e 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
@@ -138,11 +138,14 @@
 
     @Override
     public void createFunctionBegin(IMetadataLockManager lockMgr, LockList locks, DataverseName dataverseName,
-            String functionName, String libraryName) throws AlgebricksException {
+            String functionName, DataverseName libraryDataverseName, String libraryName) throws AlgebricksException {
         lockMgr.acquireDataverseReadLock(locks, dataverseName);
         lockMgr.acquireFunctionWriteLock(locks, dataverseName, functionName);
         if (libraryName != null) {
-            lockMgr.acquireLibraryReadLock(locks, dataverseName, libraryName);
+            if (!dataverseName.equals(libraryDataverseName)) {
+                lockMgr.acquireDataverseReadLock(locks, libraryDataverseName);
+            }
+            lockMgr.acquireLibraryReadLock(locks, libraryDataverseName, libraryName);
         }
     }
 
@@ -155,11 +158,14 @@
 
     @Override
     public void createAdapterBegin(IMetadataLockManager lockMgr, LockList locks, DataverseName dataverseName,
-            String adapterName, String libraryName) throws AlgebricksException {
+            String adapterName, DataverseName libraryDataverseName, String libraryName) throws AlgebricksException {
         lockMgr.acquireDataverseReadLock(locks, dataverseName);
         lockMgr.acquireAdapterWriteLock(locks, dataverseName, adapterName);
         if (libraryName != null) {
-            lockMgr.acquireLibraryReadLock(locks, dataverseName, libraryName);
+            if (!dataverseName.equals(libraryDataverseName)) {
+                lockMgr.acquireDataverseReadLock(locks, libraryDataverseName);
+            }
+            lockMgr.acquireLibraryReadLock(locks, libraryDataverseName, libraryName);
         }
     }
 
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryBTreeOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryBTreeOperationsHelper.java
index f47786d..bc5ac8b 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryBTreeOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryBTreeOperationsHelper.java
@@ -27,6 +27,7 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.runtime.utils.RuntimeUtils;
@@ -276,10 +277,14 @@
         }
 
         if (numFilterFields > 0) {
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
             secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat()
-                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName,
-                            numPrimaryKeys, sourceLoc);
-            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), filterItemType,
+                            filterFieldName, numPrimaryKeys, sourceLoc);
+            Pair<IAType, Boolean> keyTypePair;
+            keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = keyTypePair.first;
             ISerializerDeserializer serde = serdeProvider.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numSecondaryKeys] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedBTreeOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedBTreeOperationsHelper.java
index 3930563..40f2610 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedBTreeOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedBTreeOperationsHelper.java
@@ -24,6 +24,7 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.runtime.operators.LSMSecondaryIndexBulkLoadOperatorDescriptor;
@@ -185,10 +186,14 @@
         }
 
         if (numFilterFields > 0) {
-            secondaryFieldAccessEvalFactories[numSecondaryKeys] =
-                    metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory(
-                            metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc);
-            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
+            secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat()
+                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), filterItemType,
+                            filterFieldName, recordColumn, sourceLoc);
+            Pair<IAType, Boolean> keyTypePair;
+            keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = keyTypePair.first;
             ISerializerDeserializer serde = serdeProvider.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numSecondaryKeys] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedInvertedIndexOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedInvertedIndexOperationsHelper.java
index 734f913..cf84e56 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedInvertedIndexOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedInvertedIndexOperationsHelper.java
@@ -25,6 +25,8 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
+import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.utils.NonTaggedFormatUtil;
 import org.apache.asterix.runtime.utils.RuntimeUtils;
@@ -120,10 +122,13 @@
             secondaryTypeTraits[0] = typeTraitProvider.getTypeTrait(secondaryKeyType);
         }
         if (numFilterFields > 0) {
-            secondaryFieldAccessEvalFactories[numSecondaryKeys] =
-                    metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory(
-                            metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc);
-            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
+            secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat()
+                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), filterItemType,
+                            filterFieldName, recordColumn, sourceLoc);
+            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = keyTypePair.first;
             ISerializerDeserializer serde = serdeProvider.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numSecondaryKeys] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedRTreeOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedRTreeOperationsHelper.java
index c870c60..d10c093 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedRTreeOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryCorrelatedRTreeOperationsHelper.java
@@ -29,6 +29,8 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
+import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.utils.NonTaggedFormatUtil;
@@ -123,12 +125,15 @@
         enforcedRecFields[numPrimaryKeys] = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(itemType);
         enforcedRecDesc = new RecordDescriptor(enforcedRecFields, enforcedTypeTraits);
         if (numFilterFields > 0) {
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
             rtreeFields = new int[numNestedSecondaryKeyFields + numPrimaryKeys];
             for (int i = 0; i < rtreeFields.length; i++) {
                 rtreeFields[i] = i;
             }
 
-            Pair<IAType, Boolean> typePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+            Pair<IAType, Boolean> typePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = typePair.first;
             ISerializerDeserializer serde = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numNestedSecondaryKeyFields] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
index 6bcc039..fd45ff4 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
@@ -235,7 +235,9 @@
             secondaryBTreeFields[i] = i;
         }
 
-        IAType type = itemType.getSubFieldType(filterFieldName);
+        IAType type = ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0
+                ? itemType.getSubFieldType(filterFieldName, itemType)
+                : metaType.getSubFieldType(filterFieldName, metaType);
         filterCmpFactories[0] = BinaryComparatorFactoryProvider.INSTANCE.getBinaryComparatorFactory(type, true);
         filterTypeTraits[0] = TypeTraitProvider.INSTANCE.getTypeTrait(type);
         secondaryFilterFields[0] = getNumSecondaryKeys() + numPrimaryKeys;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryInvertedIndexOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryInvertedIndexOperationsHelper.java
index 2ac2048..85205b3 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryInvertedIndexOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryInvertedIndexOperationsHelper.java
@@ -26,6 +26,8 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
+import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.utils.NonTaggedFormatUtil;
 import org.apache.asterix.runtime.utils.RuntimeUtils;
@@ -122,10 +124,13 @@
             secondaryTypeTraits[0] = typeTraitProvider.getTypeTrait(secondaryKeyType);
         }
         if (numFilterFields > 0) {
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
             secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat()
-                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName,
-                            numPrimaryKeys, sourceLoc);
-            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+                    .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), filterItemType,
+                            filterFieldName, numPrimaryKeys, sourceLoc);
+            Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = keyTypePair.first;
             ISerializerDeserializer serde = serdeProvider.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numSecondaryKeys] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryRTreeOperationsHelper.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryRTreeOperationsHelper.java
index fef5097..1d60772 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryRTreeOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryRTreeOperationsHelper.java
@@ -31,6 +31,8 @@
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
+import org.apache.asterix.metadata.entities.InternalDatasetDetails;
+import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.utils.NonTaggedFormatUtil;
@@ -139,12 +141,15 @@
         enforcedRecFields[numPrimaryKeys] = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(itemType);
         enforcedRecDesc = new RecordDescriptor(enforcedRecFields, enforcedTypeTraits);
         if (numFilterFields > 0) {
+            ARecordType filterItemType =
+                    ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterSourceIndicator() == 0 ? itemType
+                            : metaType;
             rtreeFields = new int[numNestedSecondaryKeyFields + numPrimaryKeys];
             for (int i = 0; i < rtreeFields.length; i++) {
                 rtreeFields[i] = i;
             }
 
-            Pair<IAType, Boolean> typePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
+            Pair<IAType, Boolean> typePair = Index.getNonNullableKeyFieldType(filterFieldName, filterItemType);
             IAType type = typePair.first;
             ISerializerDeserializer serde = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(type);
             secondaryRecFields[numPrimaryKeys + numNestedSecondaryKeyFields] = serde;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/TypeUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/TypeUtil.java
index 11dc1ee..7660909 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/TypeUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/TypeUtil.java
@@ -19,6 +19,8 @@
 package org.apache.asterix.metadata.utils;
 
 import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Deque;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -28,12 +30,12 @@
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.metadata.entities.Dataset;
+import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.om.typecomputer.impl.TypeComputeUtils;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.AUnionType;
-import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.asterix.om.types.hierachy.ATypeHierarchy;
@@ -46,8 +48,6 @@
  */
 public class TypeUtil {
 
-    public static final TypeSignature ANY_TYPE_SIGNATURE = new TypeSignature(BuiltinType.ANY);
-
     private static final char TYPE_NAME_DELIMITER = '$';
 
     private static final String DATASET_INLINE_TYPE_PREFIX = "$d$t$";
@@ -263,7 +263,12 @@
     }
 
     public static boolean isDatasetInlineTypeName(Dataset dataset, DataverseName typeDataverseName, String typeName) {
-        return dataset.getDataverseName().equals(typeDataverseName) && typeName.startsWith(DATASET_INLINE_TYPE_PREFIX);
+        return isInlineTypeName(dataset.getDataverseName(), typeDataverseName, typeName, DATASET_INLINE_TYPE_PREFIX);
+    }
+
+    private static boolean isInlineTypeName(DataverseName entityDataverseName, DataverseName typeDataverseName,
+            String typeName, String inlineTypePrefix) {
+        return entityDataverseName.equals(typeDataverseName) && typeName.startsWith(inlineTypePrefix);
     }
 
     public static String createFunctionParameterTypeName(String functionName, int arity, int parameterIndex) {
@@ -277,4 +282,39 @@
 
         return sb.toString();
     }
+
+    public static boolean isFunctionInlineTypeName(Function function, DataverseName typeDataverseName,
+            String typeName) {
+        return isInlineTypeName(function.getDataverseName(), typeDataverseName, typeName, FUNCTION_INLINE_TYPE_PREFIX);
+    }
+
+    public static String getFullyQualifiedDisplayName(DataverseName dataverseName, String typeName) {
+        return dataverseName + "." + typeName;
+    }
+
+    /**
+     * Inline type names are unique within a function, so we don't need to perform duplicate elimination
+     */
+    public static List<TypeSignature> getFunctionInlineTypes(Function function) {
+        List<TypeSignature> inlineTypes = Collections.emptyList();
+        TypeSignature returnType = function.getReturnType();
+        if (returnType != null
+                && isFunctionInlineTypeName(function, returnType.getDataverseName(), returnType.getName())) {
+            inlineTypes = new ArrayList<>();
+            inlineTypes.add(returnType);
+        }
+        List<TypeSignature> parameterTypes = function.getParameterTypes();
+        if (parameterTypes != null) {
+            for (TypeSignature parameterType : parameterTypes) {
+                if (parameterType != null && isFunctionInlineTypeName(function, parameterType.getDataverseName(),
+                        parameterType.getName())) {
+                    if (inlineTypes.isEmpty()) {
+                        inlineTypes = new ArrayList<>();
+                    }
+                    inlineTypes.add(parameterType);
+                }
+            }
+        }
+        return inlineTypes;
+    }
 }
diff --git a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslatorTest.java b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslatorTest.java
index 58f03af..73eeae4 100644
--- a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslatorTest.java
+++ b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslatorTest.java
@@ -50,7 +50,7 @@
                     Collections.singletonList(Collections.singletonList("row_id")),
                     Collections.singletonList(Collections.singletonList("row_id")),
                     indicator == null ? null : Collections.singletonList(indicator),
-                    Collections.singletonList(BuiltinType.AINT64), false, Collections.emptyList());
+                    Collections.singletonList(BuiltinType.AINT64), false, null, null);
 
             Dataset dataset = new Dataset(DataverseName.createSinglePartName("test"), "log",
                     DataverseName.createSinglePartName("foo"), "LogType", DataverseName.createSinglePartName("CB"),
diff --git a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslatorTest.java b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslatorTest.java
index cc02c49..5fcb6e0 100644
--- a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslatorTest.java
+++ b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslatorTest.java
@@ -61,7 +61,7 @@
                     Collections.singletonList(Collections.singletonList("row_id")),
                     Collections.singletonList(Collections.singletonList("row_id")),
                     indicator == null ? null : Collections.singletonList(indicator),
-                    Collections.singletonList(BuiltinType.AINT64), false, Collections.emptyList());
+                    Collections.singletonList(BuiltinType.AINT64), false, null, null);
 
             DataverseName dvTest = DataverseName.createSinglePartName("test");
             DataverseName dvFoo = DataverseName.createSinglePartName("foo");
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/ExpressionTypeComputer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/ExpressionTypeComputer.java
index 1dcf6a6..e581140 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/ExpressionTypeComputer.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/ExpressionTypeComputer.java
@@ -20,10 +20,8 @@
 
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.om.constants.AsterixConstantValue;
-import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.functions.ExternalFunctionInfo;
+import org.apache.asterix.om.functions.FunctionInfo;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.IAType;
@@ -35,7 +33,6 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
 
 public class ExpressionTypeComputer implements IExpressionTypeComputer {
@@ -69,18 +66,7 @@
 
     private IAType getTypeForFunction(AbstractFunctionCallExpression expr, IVariableTypeEnvironment env,
             IMetadataProvider<?, ?> mp) throws AlgebricksException {
-        FunctionIdentifier fi = expr.getFunctionIdentifier();
-        // Note: built-in functions + udfs
-        IResultTypeComputer rtc;
-        FunctionSignature signature = new FunctionSignature(fi);
-        if (BuiltinFunctions.isBuiltinCompilerFunction(signature, true)) {
-            rtc = BuiltinFunctions.getResultTypeComputer(fi);
-        } else {
-            rtc = ((ExternalFunctionInfo) expr.getFunctionInfo()).getResultTypeComputer();
-        }
-        if (rtc == null) {
-            throw new AlgebricksException("Type computer missing for " + fi);
-        }
+        IResultTypeComputer rtc = ((FunctionInfo) expr.getFunctionInfo()).getResultTypeComputer();
         return rtc.computeType(expr, env, mp);
     }
 
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/PartialAggregationTypeComputer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/PartialAggregationTypeComputer.java
index 4a0384d..f012f5c 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/PartialAggregationTypeComputer.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/PartialAggregationTypeComputer.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.dataflow.data.common;
 
 import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.FunctionInfo;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
@@ -45,7 +46,6 @@
 
     private Object getTypeForFunction(AbstractFunctionCallExpression expr, IVariableTypeEnvironment env,
             IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException {
-        return BuiltinFunctions.getResultTypeComputer(expr.getFunctionIdentifier()).computeType(expr, env,
-                metadataProvider);
+        return ((FunctionInfo) expr.getFunctionInfo()).getResultTypeComputer().computeType(expr, env, metadataProvider);
     }
 }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/base/IDataFormat.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/base/IDataFormat.java
index 6906ae4..cab8c22 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/base/IDataFormat.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/base/IDataFormat.java
@@ -37,6 +37,7 @@
 import org.apache.hyracks.algebricks.data.IPrinterFactoryProvider;
 import org.apache.hyracks.algebricks.data.ISerializerDeserializerProvider;
 import org.apache.hyracks.algebricks.data.ITypeTraitProvider;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
 import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IPredicateEvaluatorFactoryProvider;
@@ -66,6 +67,8 @@
 
     public IMissingWriterFactory getMissingWriterFactory();
 
+    public IUnnestingPositionWriterFactory getUnnestingPositionWriterFactory();
+
     public Triple<IScalarEvaluatorFactory, ScalarFunctionCallExpression, IAType> partitioningEvaluatorFactory(
             IFunctionManager functionManager, ARecordType recType, List<String> fldName, SourceLocation sourceLoc)
             throws AlgebricksException;
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/constants/AsterixConstantValue.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/constants/AsterixConstantValue.java
index fa0a74e..337e966 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/constants/AsterixConstantValue.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/constants/AsterixConstantValue.java
@@ -26,10 +26,10 @@
 
 public class AsterixConstantValue implements IAlgebricksConstantValue {
 
-    private IAObject object;
+    private final IAObject object;
 
     public AsterixConstantValue(IAObject object) {
-        this.setObject(object);
+        this.object = object;
     }
 
     @Override
@@ -52,10 +52,6 @@
         return object == ABoolean.TRUE;
     }
 
-    public void setObject(IAObject object) {
-        this.object = object;
-    }
-
     public IAObject getObject() {
         return object;
     }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctionInfo.java
new file mode 100644
index 0000000..acb348d
--- /dev/null
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctionInfo.java
@@ -0,0 +1,39 @@
+/*
+ * 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.om.functions;
+
+import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+
+public final class BuiltinFunctionInfo extends FunctionInfo {
+    private static final long serialVersionUID = -6013109889177637590L;
+
+    private final boolean isPrivate;
+
+    public BuiltinFunctionInfo(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional,
+            boolean isPrivate) {
+        super(fi, typeComputer, isFunctional);
+        this.isPrivate = isPrivate;
+    }
+
+    public boolean isPrivate() {
+        return isPrivate;
+    }
+}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
index 19c1b51..268c1f6 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
@@ -34,7 +34,6 @@
 import java.util.Set;
 
 import org.apache.asterix.common.functions.FunctionConstants;
-import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.typecomputer.impl.ABinaryTypeComputer;
 import org.apache.asterix.om.typecomputer.impl.ABooleanArrayContainsTypeComputer;
@@ -136,7 +135,6 @@
 import org.apache.asterix.om.typecomputer.impl.UnaryBinaryInt64TypeComputer;
 import org.apache.asterix.om.typecomputer.impl.UniformInputTypeComputer;
 import org.apache.asterix.om.typecomputer.impl.UnorderedListConstructorTypeComputer;
-import org.apache.asterix.om.types.hierachy.ATypeHierarchy;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
@@ -149,34 +147,27 @@
 
 public class BuiltinFunctions {
 
-    public enum SpatialFilterKind {
-        SI
-    }
-
-    private static final FunctionInfoRepository registeredFunctions = new FunctionInfoRepository();
-    private static final Map<IFunctionInfo, ATypeHierarchy.Domain> registeredFunctionsDomain = new HashMap<>();
-
-    // it is supposed to be an identity mapping
-    private static final Map<IFunctionInfo, IFunctionInfo> builtinPublicFunctionsSet = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> builtinPrivateFunctionsSet = new HashMap<>();
-    private static final Map<IFunctionInfo, IResultTypeComputer> funTypeComputer = new HashMap<>();
-    private static final Map<IFunctionInfo, Set<? extends BuiltinFunctionProperty>> builtinFunctionProperties =
+    private static final Map<FunctionIdentifier, BuiltinFunctionInfo> registeredFunctions = new HashMap<>();
+    private static final Map<FunctionIdentifier, Set<? extends BuiltinFunctionProperty>> builtinFunctionProperties =
             new HashMap<>();
-    private static final Set<IFunctionInfo> builtinAggregateFunctions = new HashSet<>();
-    private static final Map<IFunctionInfo, IFunctionToDataSourceRewriter> datasourceFunctions = new HashMap<>();
-    private static final Set<IFunctionInfo> similarityFunctions = new HashSet<>();
-    private static final Set<IFunctionInfo> globalAggregateFunctions = new HashSet<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> aggregateToLocalAggregate = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> aggregateToIntermediateAggregate = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> aggregateToGlobalAggregate = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> aggregateToSerializableAggregate = new HashMap<>();
-    private static final Map<IFunctionInfo, Boolean> builtinUnnestingFunctions = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> scalarToAggregateFunctionMap = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> distinctToRegularAggregateFunctionMap = new HashMap<>();
-    private static final Map<IFunctionInfo, IFunctionInfo> sqlToWindowFunctions = new HashMap<>();
-    private static final Set<IFunctionInfo> windowFunctions = new HashSet<>();
 
-    private static final Map<IFunctionInfo, SpatialFilterKind> spatialFilterFunctions = new HashMap<>();
+    private static final Map<FunctionIdentifier, IFunctionToDataSourceRewriter> datasourceFunctions = new HashMap<>();
+    private static final Map<FunctionIdentifier, Boolean> builtinUnnestingFunctions = new HashMap<>();
+
+    private static final Set<FunctionIdentifier> builtinAggregateFunctions = new HashSet<>();
+    private static final Set<FunctionIdentifier> globalAggregateFunctions = new HashSet<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> aggregateToLocalAggregate = new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> aggregateToIntermediateAggregate = new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> aggregateToGlobalAggregate = new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> aggregateToSerializableAggregate = new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> scalarToAggregateFunctionMap = new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> distinctToRegularAggregateFunctionMap =
+            new HashMap<>();
+    private static final Map<FunctionIdentifier, FunctionIdentifier> sqlToWindowFunctions = new HashMap<>();
+    private static final Set<FunctionIdentifier> windowFunctions = new HashSet<>();
+
+    private static final Map<FunctionIdentifier, SpatialFilterKind> spatialFilterFunctions = new HashMap<>();
+    private static final Set<FunctionIdentifier> similarityFunctions = new HashSet<>();
 
     public static final FunctionIdentifier TYPE_OF = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "type-of", 1);
     public static final FunctionIdentifier GET_HANDLE =
@@ -1586,7 +1577,7 @@
     public static final FunctionIdentifier TREAT_AS_INTEGER =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "treat-as-integer", 1);
     public static final FunctionIdentifier IS_NUMERIC_ADD_COMPATIBLE =
-            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "is-numeric-add-compatibe", 1);
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "is-numeric-add-compatible", 1);
 
     public static final FunctionIdentifier EXTERNAL_LOOKUP =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "external-lookup", FunctionIdentifier.VARARGS);
@@ -1601,17 +1592,10 @@
 
     public static final FunctionIdentifier DECODE_DATAVERSE_NAME =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "decode-dataverse-name", 1);
-
-    public static IFunctionInfo getAsterixFunctionInfo(FunctionIdentifier fid) {
-        return registeredFunctions.get(fid);
-    }
-
-    public static FunctionInfo lookupFunction(FunctionIdentifier fid) {
-        return (FunctionInfo) registeredFunctions.get(fid);
-    }
+    public static final FunctionIdentifier DECODE_DATAVERSE_DISPLAY_NAME =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "decode-dataverse-display-name", 1);
 
     static {
-
         // first, take care of Algebricks builtin functions
         addFunction(IS_MISSING, BooleanOnlyTypeComputer.INSTANCE, true);
         addFunction(IS_UNKNOWN, BooleanOnlyTypeComputer.INSTANCE, true);
@@ -1692,9 +1676,9 @@
 
         addFunction(FLOAT_CONSTRUCTOR, AFloatTypeComputer.INSTANCE, true);
         addPrivateFunction(FUZZY_EQ, BooleanFunctionTypeComputer.INSTANCE, true);
-        addPrivateFunction(GET_HANDLE, null, true);
+        addPrivateFunction(GET_HANDLE, AnyTypeComputer.INSTANCE, true);
         addPrivateFunction(GET_ITEM, NonTaggedGetItemResultType.INSTANCE, true);
-        addPrivateFunction(GET_DATA, null, true);
+        addPrivateFunction(GET_DATA, AnyTypeComputer.INSTANCE, true);
         addPrivateFunction(GRAM_TOKENS, OrderedListOfAStringTypeComputer.INSTANCE, true);
         addPrivateFunction(HASHED_GRAM_TOKENS, OrderedListOfAInt32TypeComputer.INSTANCE, true);
         addPrivateFunction(HASHED_WORD_TOKENS, OrderedListOfAInt32TypeComputer.INSTANCE, true);
@@ -1705,8 +1689,8 @@
         addFunction(INT64_CONSTRUCTOR, AInt64TypeComputer.INSTANCE, true);
         addFunction(LEN, AInt64TypeComputer.INSTANCE, true);
         addFunction(LINE_CONSTRUCTOR, ALineTypeComputer.INSTANCE, true);
-        addPrivateFunction(MAKE_FIELD_INDEX_HANDLE, null, true);
-        addPrivateFunction(MAKE_FIELD_NAME_HANDLE, null, true);
+        addPrivateFunction(MAKE_FIELD_INDEX_HANDLE, AnyTypeComputer.INSTANCE, true);
+        addPrivateFunction(MAKE_FIELD_NAME_HANDLE, AnyTypeComputer.INSTANCE, true);
 
         addPrivateFunction(NUMERIC_UNARY_MINUS, NumericUnaryTypeComputer.INSTANCE, true);
         addPrivateFunction(NUMERIC_SUBTRACT, NumericAddSubMulDivTypeComputer.INSTANCE_SUB, true);
@@ -2146,7 +2130,7 @@
         addFunction(SPATIAL_AREA, ADoubleTypeComputer.INSTANCE, true);
         addFunction(SPATIAL_CELL, ARectangleTypeComputer.INSTANCE, true);
         addFunction(SPATIAL_DISTANCE, ADoubleTypeComputer.INSTANCE, true);
-        addFunctionWithDomain(SPATIAL_INTERSECT, ATypeHierarchy.Domain.SPATIAL, ABooleanTypeComputer.INSTANCE, true);
+        addFunction(SPATIAL_INTERSECT, ABooleanTypeComputer.INSTANCE, true);
         addFunction(GET_POINT_X_COORDINATE_ACCESSOR, ADoubleTypeComputer.INSTANCE, true);
         addFunction(GET_POINT_Y_COORDINATE_ACCESSOR, ADoubleTypeComputer.INSTANCE, true);
         addFunction(GET_CIRCLE_RADIUS_ACCESSOR, ADoubleTypeComputer.INSTANCE, true);
@@ -2235,7 +2219,7 @@
 
         addFunction(TID, AInt64TypeComputer.INSTANCE, true);
         addFunction(TIME_CONSTRUCTOR, ATimeTypeComputer.INSTANCE, true);
-        addPrivateFunction(TYPE_OF, null, true);
+        addPrivateFunction(TYPE_OF, AnyTypeComputer.INSTANCE, true);
         addPrivateFunction(UNORDERED_LIST_CONSTRUCTOR, UnorderedListConstructorTypeComputer.INSTANCE, true);
         addFunction(WORD_TOKENS, OrderedListOfAStringTypeComputer.INSTANCE, true);
 
@@ -2376,7 +2360,8 @@
         addFunction(META, OpenARecordTypeComputer.INSTANCE, true);
         addPrivateFunction(META_KEY, AnyTypeComputer.INSTANCE, false);
 
-        addFunction(DECODE_DATAVERSE_NAME, OrderedListOfAStringTypeComputer.INSTANCE, true);
+        addFunction(DECODE_DATAVERSE_NAME, OrderedListOfAStringTypeComputer.INSTANCE_NULLABLE, true);
+        addFunction(DECODE_DATAVERSE_DISPLAY_NAME, AStringTypeComputer.INSTANCE_NULLABLE, true);
 
         addPrivateFunction(COLLECTION_TO_SEQUENCE, CollectionToSequenceTypeComputer.INSTANCE, true);
 
@@ -3084,78 +3069,65 @@
 
     public static void addDatasourceFunction(FunctionIdentifier fi, IFunctionToDataSourceRewriter transformer,
             DataSourceFunctionProperty... properties) {
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        datasourceFunctions.put(finfo, transformer);
-        registerFunctionProperties(finfo, DataSourceFunctionProperty.class, properties);
+        datasourceFunctions.put(fi, transformer);
+        registerFunctionProperties(fi, DataSourceFunctionProperty.class, properties);
     }
 
     public static IFunctionToDataSourceRewriter getDatasourceTransformer(FunctionIdentifier fi) {
-        return datasourceFunctions.getOrDefault(getAsterixFunctionInfo(fi), IFunctionToDataSourceRewriter.NOOP);
+        return datasourceFunctions.get(fi);
     }
 
-    public static boolean isBuiltinCompilerFunction(FunctionSignature signature, boolean includePrivateFunctions) {
-        FunctionIdentifier fi =
-                new FunctionIdentifier(FunctionConstants.ASTERIX_NS, signature.getName(), signature.getArity());
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        if (builtinPublicFunctionsSet.keySet().contains(finfo)
-                || (includePrivateFunctions && builtinPrivateFunctionsSet.keySet().contains(finfo))) {
-            return true;
-        }
-        fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, signature.getName(),
-                signature.getArity());
-        finfo = getAsterixFunctionInfo(fi);
-        if (builtinPublicFunctionsSet.keySet().contains(finfo)
-                || (includePrivateFunctions && builtinPrivateFunctionsSet.keySet().contains(finfo))) {
-            return true;
-        }
+    public static BuiltinFunctionInfo getBuiltinFunctionInfo(FunctionIdentifier fi) {
+        return registeredFunctions.get(fi);
+    }
 
-        return false;
+    public static BuiltinFunctionInfo resolveBuiltinFunction(String name, int arity) {
+        //TODO:optimize
+        BuiltinFunctionInfo finfo;
+        finfo = getBuiltinFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, name, arity));
+        if (finfo != null) {
+            return finfo;
+        }
+        finfo = getBuiltinFunctionInfo(
+                new FunctionIdentifier(FunctionConstants.ASTERIX_NS, name, FunctionIdentifier.VARARGS));
+        if (finfo != null) {
+            return finfo;
+        }
+        finfo = getBuiltinFunctionInfo(new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, name, arity));
+        if (finfo != null) {
+            return finfo;
+        }
+        return getBuiltinFunctionInfo(
+                new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, name, FunctionIdentifier.VARARGS));
     }
 
     public static boolean isBuiltinAggregateFunction(FunctionIdentifier fi) {
-        return builtinAggregateFunctions.contains(getAsterixFunctionInfo(fi));
+        return builtinAggregateFunctions.contains(fi);
     }
 
     public static boolean isBuiltinUnnestingFunction(FunctionIdentifier fi) {
-        return builtinUnnestingFunctions.get(getAsterixFunctionInfo(fi)) != null;
+        return builtinUnnestingFunctions.containsKey(fi);
     }
 
     public static boolean returnsUniqueValues(FunctionIdentifier fi) {
-        Boolean ruv = builtinUnnestingFunctions.get(getAsterixFunctionInfo(fi));
-        return ruv != null && ruv.booleanValue();
-    }
-
-    public static FunctionIdentifier getLocalAggregateFunction(FunctionIdentifier fi) {
-        return aggregateToLocalAggregate.get(getAsterixFunctionInfo(fi)).getFunctionIdentifier();
-    }
-
-    public static FunctionIdentifier getGlobalAggregateFunction(FunctionIdentifier fi) {
-        return aggregateToGlobalAggregate.get(getAsterixFunctionInfo(fi)).getFunctionIdentifier();
+        Boolean ruv = builtinUnnestingFunctions.get(fi);
+        return ruv != null && ruv;
     }
 
     public static FunctionIdentifier getIntermediateAggregateFunction(FunctionIdentifier fi) {
-        IFunctionInfo funcInfo = aggregateToIntermediateAggregate.get(getAsterixFunctionInfo(fi));
-        if (funcInfo == null) {
-            return null;
-        }
-        return funcInfo.getFunctionIdentifier();
-    }
-
-    public static FunctionIdentifier getBuiltinFunctionIdentifier(FunctionIdentifier fi) {
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        return finfo == null ? null : finfo.getFunctionIdentifier();
+        return aggregateToIntermediateAggregate.get(fi);
     }
 
     public static AggregateFunctionCallExpression makeAggregateFunctionExpression(FunctionIdentifier fi,
             List<Mutable<ILogicalExpression>> args) {
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        IFunctionInfo fiLocal = aggregateToLocalAggregate.get(finfo);
-        IFunctionInfo fiGlobal = aggregateToGlobalAggregate.get(finfo);
+        IFunctionInfo finfo = getBuiltinFunctionInfo(fi);
+        FunctionIdentifier fiLocal = aggregateToLocalAggregate.get(fi);
+        FunctionIdentifier fiGlobal = aggregateToGlobalAggregate.get(fi);
 
         if (fiLocal != null && fiGlobal != null) {
             AggregateFunctionCallExpression fun = new AggregateFunctionCallExpression(finfo, true, args);
-            fun.setStepTwoAggregate(fiGlobal);
-            fun.setStepOneAggregate(fiLocal);
+            fun.setStepTwoAggregate(getBuiltinFunctionInfo(fiGlobal));
+            fun.setStepOneAggregate(getBuiltinFunctionInfo(fiLocal));
             return fun;
         } else {
             return new AggregateFunctionCallExpression(finfo, false, args);
@@ -3163,166 +3135,151 @@
     }
 
     public static boolean isAggregateFunctionSerializable(FunctionIdentifier fi) {
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        return aggregateToSerializableAggregate.get(finfo) != null;
+        return aggregateToSerializableAggregate.containsKey(fi);
     }
 
     public static AggregateFunctionCallExpression makeSerializableAggregateFunctionExpression(FunctionIdentifier fi,
             List<Mutable<ILogicalExpression>> args) {
 
-        IFunctionInfo finfo = getAsterixFunctionInfo(fi);
-        IFunctionInfo serializableFinfo = aggregateToSerializableAggregate.get(finfo);
-        if (serializableFinfo == null) {
-            throw new IllegalStateException(
-                    "no serializable implementation for aggregate function " + serializableFinfo);
+        FunctionIdentifier serializableFi = aggregateToSerializableAggregate.get(fi);
+        if (serializableFi == null) {
+            throw new IllegalStateException("no serializable implementation for aggregate function " + fi);
         }
+        IFunctionInfo serializableFinfo = getBuiltinFunctionInfo(serializableFi);
 
-        IFunctionInfo fiLocal = aggregateToLocalAggregate.get(serializableFinfo);
-        IFunctionInfo fiGlobal = aggregateToGlobalAggregate.get(serializableFinfo);
+        FunctionIdentifier fiLocal = aggregateToLocalAggregate.get(serializableFi);
+        FunctionIdentifier fiGlobal = aggregateToGlobalAggregate.get(serializableFi);
 
         if (fiLocal != null && fiGlobal != null) {
             AggregateFunctionCallExpression fun = new AggregateFunctionCallExpression(serializableFinfo, true, args);
-            fun.setStepTwoAggregate(fiGlobal);
-            fun.setStepOneAggregate(fiLocal);
+            fun.setStepTwoAggregate(getBuiltinFunctionInfo(fiGlobal));
+            fun.setStepOneAggregate(getBuiltinFunctionInfo(fiLocal));
             return fun;
         } else {
             return new AggregateFunctionCallExpression(serializableFinfo, false, args);
         }
     }
 
-    public static IResultTypeComputer getResultTypeComputer(FunctionIdentifier fi) {
-        return funTypeComputer.get(getAsterixFunctionInfo(fi));
-    }
-
     public static FunctionIdentifier getAggregateFunction(FunctionIdentifier scalarVersionOfAggregate) {
-        IFunctionInfo finfo = scalarToAggregateFunctionMap.get(getAsterixFunctionInfo(scalarVersionOfAggregate));
-        return finfo == null ? null : finfo.getFunctionIdentifier();
+        return scalarToAggregateFunctionMap.get(scalarVersionOfAggregate);
     }
 
     public static FunctionIdentifier getAggregateFunctionForDistinct(FunctionIdentifier distinctVersionOfAggregate) {
-        IFunctionInfo finfo =
-                distinctToRegularAggregateFunctionMap.get(getAsterixFunctionInfo(distinctVersionOfAggregate));
-        return finfo == null ? null : finfo.getFunctionIdentifier();
+        return distinctToRegularAggregateFunctionMap.get(distinctVersionOfAggregate);
     }
 
     public static void addFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional) {
-        addFunctionWithDomain(fi, ATypeHierarchy.Domain.ANY, typeComputer, isFunctional);
-    }
-
-    public static void addFunctionWithDomain(FunctionIdentifier fi, ATypeHierarchy.Domain funcDomain,
-            IResultTypeComputer typeComputer, boolean isFunctional) {
-        IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional);
-        builtinPublicFunctionsSet.put(functionInfo, functionInfo);
-        funTypeComputer.put(functionInfo, typeComputer);
-        registeredFunctions.put(fi, functionInfo);
-        registeredFunctionsDomain.put(functionInfo, funcDomain);
+        addFunction(new BuiltinFunctionInfo(fi, typeComputer, isFunctional, false));
     }
 
     public static void addPrivateFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer,
             boolean isFunctional) {
-        IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional);
-        builtinPrivateFunctionsSet.put(functionInfo, functionInfo);
-        funTypeComputer.put(functionInfo, typeComputer);
-        registeredFunctions.put(fi, functionInfo);
+        addFunction(new BuiltinFunctionInfo(fi, typeComputer, isFunctional, true));
     }
 
-    private static <T extends Enum<T> & BuiltinFunctionProperty> void registerFunctionProperties(IFunctionInfo finfo,
+    private static void addFunction(BuiltinFunctionInfo functionInfo) {
+        registeredFunctions.put(functionInfo.getFunctionIdentifier(), functionInfo);
+    }
+
+    private static <T extends Enum<T> & BuiltinFunctionProperty> void registerFunctionProperties(FunctionIdentifier fid,
             Class<T> propertyClass, T[] properties) {
         if (properties == null) {
             return;
         }
         Set<T> propertySet = EnumSet.noneOf(propertyClass);
         Collections.addAll(propertySet, properties);
-        builtinFunctionProperties.put(finfo, propertySet);
+        builtinFunctionProperties.put(fid, propertySet);
     }
 
     public static boolean builtinFunctionHasProperty(FunctionIdentifier fi, BuiltinFunctionProperty property) {
-        Set<? extends BuiltinFunctionProperty> propertySet = builtinFunctionProperties.get(getAsterixFunctionInfo(fi));
+        Set<? extends BuiltinFunctionProperty> propertySet = builtinFunctionProperties.get(fi);
         return propertySet != null && propertySet.contains(property);
     }
 
     public static void addAgg(FunctionIdentifier fi) {
-        builtinAggregateFunctions.add(getAsterixFunctionInfo(fi));
+        builtinAggregateFunctions.add(fi);
     }
 
     public static void addLocalAgg(FunctionIdentifier fi, FunctionIdentifier localfi) {
-        aggregateToLocalAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(localfi));
+        aggregateToLocalAggregate.put(fi, localfi);
     }
 
     public static void addIntermediateAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
-        aggregateToIntermediateAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(globalfi));
+        aggregateToIntermediateAggregate.put(fi, globalfi);
     }
 
     public static void addGlobalAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
-        aggregateToGlobalAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(globalfi));
-        globalAggregateFunctions.add(getAsterixFunctionInfo(globalfi));
+        aggregateToGlobalAggregate.put(fi, globalfi);
+        globalAggregateFunctions.add(globalfi);
     }
 
     public static void addUnnestFun(FunctionIdentifier fi, boolean returnsUniqueValues) {
-        builtinUnnestingFunctions.put(getAsterixFunctionInfo(fi), returnsUniqueValues);
+        builtinUnnestingFunctions.put(fi, returnsUniqueValues);
     }
 
     public static void addSerialAgg(FunctionIdentifier fi, FunctionIdentifier serialfi) {
-        aggregateToSerializableAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(serialfi));
+        aggregateToSerializableAggregate.put(fi, serialfi);
     }
 
     public static void addScalarAgg(FunctionIdentifier fi, FunctionIdentifier scalarfi) {
-        scalarToAggregateFunctionMap.put(getAsterixFunctionInfo(scalarfi), getAsterixFunctionInfo(fi));
+        scalarToAggregateFunctionMap.put(scalarfi, fi);
     }
 
     public static void addDistinctAgg(FunctionIdentifier distinctfi, FunctionIdentifier fi) {
-        distinctToRegularAggregateFunctionMap.put(getAsterixFunctionInfo(distinctfi), getAsterixFunctionInfo(fi));
+        distinctToRegularAggregateFunctionMap.put(distinctfi, fi);
     }
 
     public static void addWindowFunction(FunctionIdentifier sqlfi, FunctionIdentifier winfi,
             WindowFunctionProperty... properties) {
-        IFunctionInfo wininfo = getAsterixFunctionInfo(winfi);
         if (sqlfi != null) {
-            sqlToWindowFunctions.put(getAsterixFunctionInfo(sqlfi), wininfo);
+            sqlToWindowFunctions.put(sqlfi, winfi);
         }
-        windowFunctions.add(wininfo);
-        registerFunctionProperties(wininfo, WindowFunctionProperty.class, properties);
+        windowFunctions.add(winfi);
+        registerFunctionProperties(winfi, WindowFunctionProperty.class, properties);
     }
 
     public static FunctionIdentifier getWindowFunction(FunctionIdentifier sqlfi) {
-        IFunctionInfo finfo = sqlToWindowFunctions.get(getAsterixFunctionInfo(sqlfi));
-        return finfo == null ? null : finfo.getFunctionIdentifier();
+        return sqlToWindowFunctions.get(sqlfi);
     }
 
     public static boolean isWindowFunction(FunctionIdentifier winfi) {
-        return windowFunctions.contains(getAsterixFunctionInfo(winfi));
+        return windowFunctions.contains(winfi);
     }
 
     public static AbstractFunctionCallExpression makeWindowFunctionExpression(FunctionIdentifier winfi,
             List<Mutable<ILogicalExpression>> args) {
-        IFunctionInfo finfo = getAsterixFunctionInfo(winfi);
+        IFunctionInfo finfo = getBuiltinFunctionInfo(winfi);
         if (finfo == null) {
-            throw new IllegalStateException("no implementation for window function " + finfo);
+            throw new IllegalStateException("no implementation for window function " + winfi);
         }
         return new StatefulFunctionCallExpression(finfo, UnpartitionedPropertyComputer.INSTANCE, args);
     }
 
+    public enum SpatialFilterKind {
+        SI
+    }
+
     static {
-        spatialFilterFunctions.put(getAsterixFunctionInfo(BuiltinFunctions.SPATIAL_INTERSECT), SpatialFilterKind.SI);
+        spatialFilterFunctions.put(BuiltinFunctions.SPATIAL_INTERSECT, SpatialFilterKind.SI);
     }
 
     public static boolean isGlobalAggregateFunction(FunctionIdentifier fi) {
-        return globalAggregateFunctions.contains(getAsterixFunctionInfo(fi));
+        return globalAggregateFunctions.contains(fi);
     }
 
     public static boolean isSpatialFilterFunction(FunctionIdentifier fi) {
-        return spatialFilterFunctions.get(getAsterixFunctionInfo(fi)) != null;
+        return spatialFilterFunctions.get(fi) != null;
     }
 
     static {
-        similarityFunctions.add(getAsterixFunctionInfo(SIMILARITY_JACCARD));
-        similarityFunctions.add(getAsterixFunctionInfo(SIMILARITY_JACCARD_CHECK));
-        similarityFunctions.add(getAsterixFunctionInfo(EDIT_DISTANCE));
-        similarityFunctions.add(getAsterixFunctionInfo(EDIT_DISTANCE_CHECK));
-        similarityFunctions.add(getAsterixFunctionInfo(EDIT_DISTANCE_CONTAINS));
+        similarityFunctions.add(SIMILARITY_JACCARD);
+        similarityFunctions.add(SIMILARITY_JACCARD_CHECK);
+        similarityFunctions.add(EDIT_DISTANCE);
+        similarityFunctions.add(EDIT_DISTANCE_CHECK);
+        similarityFunctions.add(EDIT_DISTANCE_CONTAINS);
     }
 
     public static boolean isSimilarityFunction(FunctionIdentifier fi) {
-        return similarityFunctions.contains(getAsterixFunctionInfo(fi));
+        return similarityFunctions.contains(fi);
     }
 }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
index bdaa3fe..7477330 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import org.apache.asterix.common.functions.ExternalFunctionLanguage;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.FunctionKind;
@@ -29,54 +30,30 @@
 
 public class ExternalFunctionInfo extends FunctionInfo implements IExternalFunctionInfo {
 
-    private static final long serialVersionUID = 2L;
+    private static final long serialVersionUID = 4L;
 
-    private final transient IResultTypeComputer rtc;
-    private final List<IAType> argumentTypes;
-    private final ExternalFunctionLanguage language;
     private final FunctionKind kind;
+    private final List<IAType> parameterTypes;
     private final IAType returnType;
-    private final String library;
+    private final ExternalFunctionLanguage language;
+    private final DataverseName libraryDataverseName;
+    private final String libraryName;
     private final List<String> externalIdentifier;
-    private final Map<String, String> params;
+    private final Map<String, String> resources;
 
-    public ExternalFunctionInfo(String namespace, String name, int arity, FunctionKind kind, List<IAType> argumentTypes,
-            IAType returnType, IResultTypeComputer rtc, ExternalFunctionLanguage language, String library,
-            List<String> externalIdentifier, Map<String, String> params, boolean deterministic) {
-        this(new FunctionIdentifier(namespace, name, arity), kind, argumentTypes, returnType, rtc, language, library,
-                externalIdentifier, params, deterministic);
-    }
-
-    public ExternalFunctionInfo(FunctionIdentifier fid, FunctionKind kind, List<IAType> argumentTypes,
-            IAType returnType, IResultTypeComputer rtc, ExternalFunctionLanguage language, String library,
-            List<String> externalIdentifier, Map<String, String> params, boolean deterministic) {
-        super(fid, deterministic);
-        this.rtc = rtc;
-        this.argumentTypes = argumentTypes;
-        this.library = library;
-        this.language = language;
-        this.externalIdentifier = externalIdentifier;
+    public ExternalFunctionInfo(FunctionIdentifier fid, FunctionKind kind, List<IAType> parameterTypes,
+            IAType returnType, IResultTypeComputer rtc, ExternalFunctionLanguage language,
+            DataverseName libraryDataverseName, String libraryName, List<String> externalIdentifier,
+            Map<String, String> resources, boolean deterministic) {
+        super(fid, rtc, deterministic);
         this.kind = kind;
+        this.parameterTypes = parameterTypes;
         this.returnType = returnType;
-        this.params = params;
-    }
-
-    public IResultTypeComputer getResultTypeComputer() {
-        return rtc;
-    }
-
-    public List<IAType> getArgumentTypes() {
-        return argumentTypes;
-    }
-
-    @Override
-    public List<IAType> getArgumentList() {
-        return argumentTypes;
-    }
-
-    @Override
-    public ExternalFunctionLanguage getLanguage() {
-        return language;
+        this.language = language;
+        this.libraryDataverseName = libraryDataverseName;
+        this.libraryName = libraryName;
+        this.externalIdentifier = externalIdentifier;
+        this.resources = resources;
     }
 
     @Override
@@ -85,13 +62,27 @@
     }
 
     @Override
+    public List<IAType> getParameterTypes() {
+        return parameterTypes;
+    }
+
+    @Override
     public IAType getReturnType() {
         return returnType;
     }
 
     @Override
-    public String getLibrary() {
-        return library;
+    public ExternalFunctionLanguage getLanguage() {
+        return language;
+    }
+
+    public DataverseName getLibraryDataverseName() {
+        return libraryDataverseName;
+    }
+
+    @Override
+    public String getLibraryName() {
+        return libraryName;
     }
 
     @Override
@@ -100,7 +91,7 @@
     }
 
     @Override
-    public Map<String, String> getParams() {
-        return params;
+    public Map<String, String> getResources() {
+        return resources;
     }
 }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/FunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/FunctionInfo.java
index 484f374..f7f46f5 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/FunctionInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/FunctionInfo.java
@@ -19,25 +19,25 @@
 package org.apache.asterix.om.functions;
 
 import java.util.List;
+import java.util.Objects;
 
+import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
 
-public class FunctionInfo implements IFunctionInfo {
-    private static final long serialVersionUID = 5460606629941107898L;
+public abstract class FunctionInfo implements IFunctionInfo {
+    private static final long serialVersionUID = 5460606629941107899L;
 
     private final FunctionIdentifier functionIdentifier;
+    private final transient IResultTypeComputer typeComputer;
     private final boolean isFunctional;
 
-    public FunctionInfo(String namespace, String name, int arity, boolean isFunctional) {
-        this(new FunctionIdentifier(namespace, name, arity), isFunctional);
-    }
-
-    public FunctionInfo(FunctionIdentifier functionIdentifier, boolean isFunctional) {
+    public FunctionInfo(FunctionIdentifier functionIdentifier, IResultTypeComputer typeComputer, boolean isFunctional) {
+        this.functionIdentifier = Objects.requireNonNull(functionIdentifier);
+        this.typeComputer = Objects.requireNonNull(typeComputer);
         this.isFunctional = isFunctional;
-        this.functionIdentifier = functionIdentifier;
     }
 
     @Override
@@ -50,6 +50,10 @@
         return isFunctional;
     }
 
+    public IResultTypeComputer getResultTypeComputer() {
+        return typeComputer;
+    }
+
     /**
      * @param args,
      *            the arguments.
@@ -61,24 +65,7 @@
     }
 
     @Override
-    public int hashCode() {
-        return toString().hashCode();
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (!(o instanceof FunctionInfo)) {
-            return false;
-        }
-        FunctionInfo info = (FunctionInfo) o;
-        return functionIdentifier.equals(info.getFunctionIdentifier())
-                && functionIdentifier.getArity() == info.getFunctionIdentifier().getArity();
-    }
-
-    @Override
     public String toString() {
-        return this.functionIdentifier.getNamespace() + ":" + this.functionIdentifier.getName() + "@"
-                + this.functionIdentifier.getArity();
+        return functionIdentifier.toString();
     }
-
 }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IExternalFunctionInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IExternalFunctionInfo.java
index 1db0c19..d87d6df 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IExternalFunctionInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IExternalFunctionInfo.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import org.apache.asterix.common.functions.ExternalFunctionLanguage;
+import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.FunctionKind;
@@ -29,20 +30,21 @@
 
 public interface IExternalFunctionInfo extends IFunctionInfo {
 
-    IResultTypeComputer getResultTypeComputer();
+    FunctionKind getKind();
+
+    List<IAType> getParameterTypes();
 
     IAType getReturnType();
 
-    List<String> getExternalIdentifier();
-
-    List<IAType> getArgumentList();
+    IResultTypeComputer getResultTypeComputer();
 
     ExternalFunctionLanguage getLanguage();
 
-    FunctionKind getKind();
+    DataverseName getLibraryDataverseName();
 
-    String getLibrary();
+    String getLibraryName();
 
-    Map<String, String> getParams();
+    List<String> getExternalIdentifier();
 
+    Map<String, String> getResources();
 }
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IFunctionToDataSourceRewriter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IFunctionToDataSourceRewriter.java
index 2793c4d..75a9689 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IFunctionToDataSourceRewriter.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IFunctionToDataSourceRewriter.java
@@ -24,8 +24,6 @@
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
 
 public interface IFunctionToDataSourceRewriter {
-    public static final IFunctionToDataSourceRewriter NOOP = (o, c) -> false;
-
     /**
      * Replace the unnest operator by a datasource operator
      *
diff --git a/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java b/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java
index 91752f7..6cecaec 100644
--- a/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java
+++ b/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java
@@ -31,6 +31,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.asterix.om.functions.BuiltinFunctionInfo;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.ATypeTag;
@@ -43,7 +44,6 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
 import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
@@ -110,50 +110,41 @@
 
         // First, we will go over all the functions available, get their arity and type computers to know the number
         // of arguments to pass for each type computer
-        Map<IFunctionInfo, IResultTypeComputer> funTypeComputerMap;
+        Map<FunctionIdentifier, BuiltinFunctionInfo> registeredFunctions;
         try {
-            Field field = BuiltinFunctions.class.getDeclaredField("funTypeComputer");
+            Field field = BuiltinFunctions.class.getDeclaredField("registeredFunctions");
             field.setAccessible(true);
-            funTypeComputerMap = (HashMap<IFunctionInfo, IResultTypeComputer>) field.get(null);
+            registeredFunctions = (Map<FunctionIdentifier, BuiltinFunctionInfo>) field.get(null);
         } catch (Exception ex) {
             // this should never fail
             throw new IllegalStateException();
         }
 
-        if (funTypeComputerMap != null) {
-            // Note: If a type computer handles both known and VARARGS, VARARGS will be used
-            for (HashMap.Entry<IFunctionInfo, IResultTypeComputer> entry : funTypeComputerMap.entrySet()) {
-                // Some functions have a null type computer for some reason, ignore them
-                if (entry.getValue() == null) {
-                    continue;
-                }
+        // Note: If a type computer handles both known and VARARGS, VARARGS will be used
+        for (BuiltinFunctionInfo finfo : registeredFunctions.values()) {
+            FunctionIdentifier fid = finfo.getFunctionIdentifier();
+            IResultTypeComputer typeComputer = finfo.getResultTypeComputer();
 
-                // Type computer does not exist, add it with its arity to the map
-                if (typeComputerToArgsCountMap.get(entry.getValue().getClass().getSimpleName()) == null) {
-                    typeComputerToArgsCountMap.put(entry.getValue().getClass().getSimpleName(),
-                            entry.getKey().getFunctionIdentifier().getArity());
-                    continue;
-                }
+            // Type computer does not exist, add it with its arity to the map
+            if (typeComputerToArgsCountMap.get(typeComputer.getClass().getSimpleName()) == null) {
+                typeComputerToArgsCountMap.put(typeComputer.getClass().getSimpleName(), fid.getArity());
+                continue;
+            }
 
-                // VARARGS functions, these are kept as is, put/update, no need for any comparison
-                if (entry.getKey().getFunctionIdentifier().getArity() == FunctionIdentifier.VARARGS) {
-                    typeComputerToArgsCountMap.put(entry.getValue().getClass().getSimpleName(),
-                            entry.getKey().getFunctionIdentifier().getArity());
-                    continue;
-                }
+            // VARARGS functions, these are kept as is, put/update, no need for any comparison
+            if (fid.getArity() == FunctionIdentifier.VARARGS) {
+                typeComputerToArgsCountMap.put(typeComputer.getClass().getSimpleName(), fid.getArity());
+                continue;
+            }
 
-                // We have it already, and it is of type VARARGS, we are not going to change it
-                if (typeComputerToArgsCountMap
-                        .get(entry.getValue().getClass().getSimpleName()) == FunctionIdentifier.VARARGS) {
-                    continue;
-                }
+            // We have it already, and it is of type VARARGS, we are not going to change it
+            if (typeComputerToArgsCountMap.get(typeComputer.getClass().getSimpleName()) == FunctionIdentifier.VARARGS) {
+                continue;
+            }
 
-                // We have it already, if it has larger arity than our existing one, we will update it
-                if (typeComputerToArgsCountMap.get(entry.getValue().getClass().getSimpleName()) < entry.getKey()
-                        .getFunctionIdentifier().getArity()) {
-                    typeComputerToArgsCountMap.put(entry.getValue().getClass().getSimpleName(),
-                            entry.getKey().getFunctionIdentifier().getArity());
-                }
+            // We have it already, if it has larger arity than our existing one, we will update it
+            if (typeComputerToArgsCountMap.get(typeComputer.getClass().getSimpleName()) < fid.getArity()) {
+                typeComputerToArgsCountMap.put(typeComputer.getClass().getSimpleName(), fid.getArity());
             }
         }
 
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/IndexReplicationManager.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/IndexReplicationManager.java
index 4d660d2..dd953c4 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/IndexReplicationManager.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/IndexReplicationManager.java
@@ -131,9 +131,14 @@
 
     private boolean skip(IReplicationJob job) {
         try {
-            final DatasetResourceReference indexFileRef =
-                    resourceRepository.getLocalResourceReference(job.getAnyFile());
-            return !replicationStrategy.isMatch(indexFileRef.getDatasetId());
+            final String fileToReplicate = job.getAnyFile();
+            final Optional<DatasetResourceReference> indexFileRefOpt =
+                    resourceRepository.getLocalResourceReference(fileToReplicate);
+            if (!indexFileRefOpt.isPresent()) {
+                LOGGER.warn("skipping replication of {} due to missing dataset resource reference", fileToReplicate);
+                return true;
+            }
+            return !replicationStrategy.isMatch(indexFileRefOpt.get().getDatasetId());
         } catch (HyracksDataException e) {
             throw new IllegalStateException("Couldn't find resource for " + job.getAnyFile(), e);
         }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSamplingAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSamplingAggregateDescriptor.java
index 5e0f0d9..51431d3 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSamplingAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSamplingAggregateDescriptor.java
@@ -19,6 +19,8 @@
 package org.apache.asterix.runtime.aggregates.std;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Random;
 
 import org.apache.asterix.common.config.CompilerProperties;
 import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
@@ -42,7 +44,6 @@
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
 import org.apache.hyracks.data.std.primitive.VoidPointable;
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
 import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
@@ -97,7 +98,9 @@
         private final IPointable inputFieldValue = new VoidPointable();
         private final int numSamplesRequired;
         private final IScalarEvaluator[] sampledFieldsEval;
-        private int numSamples;
+        private final ArrayList<ArrayBackedValueStorage> samples = new ArrayList<>();
+        private final Random random = new Random();
+        private int count = 0;
 
         /**
          * @param args the fields that constitute a sample, e.g., $$1, $$2
@@ -119,10 +122,9 @@
 
         @Override
         public void init() throws HyracksDataException {
-            numSamples = 0;
+            samples.clear();
+            count = 0;
             rangeMapBits.reset();
-            // write a dummy integer at the beginning to be filled later with the actual number of samples taken
-            IntegerSerializerDeserializer.write(0, rangeMapBits.getDataOutput());
         }
 
         /**
@@ -132,15 +134,27 @@
          */
         @Override
         public void step(IFrameTupleReference tuple) throws HyracksDataException {
-            if (numSamples >= numSamplesRequired) {
+            count++;
+            if (samples.size() < numSamplesRequired) {
+                ArrayBackedValueStorage sampleStorage = new ArrayBackedValueStorage();
+                writeTupleKey(tuple, sampleStorage);
+                samples.add(sampleStorage);
                 return;
             }
-            for (int i = 0; i < sampledFieldsEval.length; i++) {
-                sampledFieldsEval[i].evaluate(tuple, inputFieldValue);
-                IntegerSerializerDeserializer.write(inputFieldValue.getLength(), rangeMapBits.getDataOutput());
-                rangeMapBits.append(inputFieldValue);
+            int swap = random.nextInt(count);
+            if (swap < numSamplesRequired) {
+                writeTupleKey(tuple, samples.get(swap));
             }
-            numSamples++;
+        }
+
+        private void writeTupleKey(IFrameTupleReference tuple, ArrayBackedValueStorage storage)
+                throws HyracksDataException {
+            storage.reset();
+            for (IScalarEvaluator iScalarEvaluator : sampledFieldsEval) {
+                iScalarEvaluator.evaluate(tuple, inputFieldValue);
+                IntegerSerializerDeserializer.write(inputFieldValue.getLength(), storage.getDataOutput());
+                storage.append(inputFieldValue);
+            }
         }
 
         /**
@@ -151,7 +165,7 @@
         @Override
         public void finish(IPointable result) throws HyracksDataException {
             storage.reset();
-            if (numSamples == 0) {
+            if (samples.size() == 0) {
                 // empty partition? then send system null as an indication of empty partition.
                 try {
                     storage.getDataOutput().writeByte(ATypeTag.SERIALIZED_SYSTEM_NULL_TYPE_TAG);
@@ -160,7 +174,11 @@
                     throw HyracksDataException.create(e);
                 }
             } else {
-                IntegerPointable.setInteger(rangeMapBits.getByteArray(), rangeMapBits.getStartOffset(), numSamples);
+                rangeMapBits.reset();
+                IntegerSerializerDeserializer.write(samples.size(), rangeMapBits.getDataOutput());
+                for (ArrayBackedValueStorage sample : samples) {
+                    rangeMapBits.append(sample);
+                }
                 binary.setValue(rangeMapBits.getByteArray(), rangeMapBits.getStartOffset(), rangeMapBits.getLength());
                 binarySerde.serialize(binary, storage.getDataOutput());
                 result.set(storage);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriter.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriter.java
new file mode 100644
index 0000000..b8bfa7e
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriter.java
@@ -0,0 +1,47 @@
+/*
+ * 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.runtime.base;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
+import org.apache.asterix.om.base.AInt64;
+import org.apache.asterix.om.base.AMutableInt64;
+import org.apache.asterix.om.types.BuiltinType;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriter;
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.util.annotations.NotThreadSafe;
+
+@NotThreadSafe
+final class UnnestingPositionWriter implements IUnnestingPositionWriter {
+
+    private final AMutableInt64 aInt64 = new AMutableInt64(0);
+
+    @SuppressWarnings("unchecked")
+    private final ISerializerDeserializer<AInt64> aInt64Serde =
+            SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.AINT64);
+
+    @Override
+    public void write(DataOutput dataOutput, long position) throws IOException {
+        aInt64.setValue(position);
+        aInt64Serde.serialize(aInt64, dataOutput);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriterFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriterFactory.java
new file mode 100644
index 0000000..a662ac0
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/base/UnnestingPositionWriterFactory.java
@@ -0,0 +1,38 @@
+/*
+ * 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.runtime.base;
+
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriter;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
+
+public final class UnnestingPositionWriterFactory implements IUnnestingPositionWriterFactory {
+
+    private static final long serialVersionUID = 1L;
+
+    public static final UnnestingPositionWriterFactory INSTANCE = new UnnestingPositionWriterFactory();
+
+    private UnnestingPositionWriterFactory() {
+    }
+
+    @Override
+    public IUnnestingPositionWriter createUnnestingPositionWriter() {
+        return new UnnestingPositionWriter();
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CodePointToStringDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CodePointToStringDescriptor.java
index fcfab72..3147a9c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CodePointToStringDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CodePointToStringDescriptor.java
@@ -70,6 +70,7 @@
                     private final byte[] currentUTF8 = new byte[6];
                     private final byte[] tempStoreForLength = new byte[5];
                     private final FunctionIdentifier fid = getIdentifier();
+                    private final char[] tempCharPair = new char[2];
 
                     @Override
                     public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
@@ -121,7 +122,7 @@
                                 if (!returnNull) {
                                     int codePoint = ATypeHierarchy.getIntegerValueWithDifferentTypeTagPosition(
                                             fid.getName(), 0, serOrderedList, itemOffset, itemTagPosition);
-                                    utf_8_len += UTF8StringUtil.codePointToUTF8(codePoint, currentUTF8);
+                                    utf_8_len += UTF8StringUtil.codePointToUTF8(codePoint, tempCharPair, currentUTF8);
                                 }
                             }
                             if (returnNull) {
@@ -142,7 +143,7 @@
                                 }
                                 int codePoint = ATypeHierarchy.getIntegerValueWithDifferentTypeTagPosition(
                                         fid.getName(), 0, serOrderedList, itemOffset, itemTagPosition);
-                                utf_8_len = UTF8StringUtil.codePointToUTF8(codePoint, currentUTF8);
+                                utf_8_len = UTF8StringUtil.codePointToUTF8(codePoint, tempCharPair, currentUTF8);
                                 for (int j = 0; j < utf_8_len; j++) {
                                     out.writeByte(currentUTF8[j]);
                                 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseDisplayNameDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseDisplayNameDescriptor.java
new file mode 100644
index 0000000..a622fe8
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseDisplayNameDescriptor.java
@@ -0,0 +1,74 @@
+/*
+ * 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.runtime.evaluators.functions;
+
+import java.io.IOException;
+
+import org.apache.asterix.common.annotations.MissingNullInOutFunction;
+import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+
+@MissingNullInOutFunction
+public class DecodeDataverseDisplayNameDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+    private static final long serialVersionUID = 1L;
+
+    public static final IFunctionDescriptorFactory FACTORY = DecodeDataverseDisplayNameDescriptor::new;
+
+    @Override
+    public IScalarEvaluatorFactory createEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+        return new IScalarEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
+                return new AbstractUnaryStringStringEval(ctx, args[0], getIdentifier(), sourceLoc) {
+
+                    private final StringBuilder sb = new StringBuilder();
+
+                    @Override
+                    void process(UTF8StringPointable inputString, IPointable resultPointable) throws IOException {
+                        String dataverseCanonicalName = inputString.toString();
+
+                        sb.setLength(0);
+                        DataverseName.getDisplayFormFromCanonicalForm(dataverseCanonicalName, sb);
+
+                        resultBuilder.reset(resultArray, inputString.getUTF8Length());
+                        resultBuilder.appendString(sb);
+                        resultBuilder.finish();
+                    }
+                };
+            }
+        };
+    }
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.DECODE_DATAVERSE_DISPLAY_NAME;
+    }
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseNameDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseNameDescriptor.java
index 1ec6a5a..fbbe5c5 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseNameDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DecodeDataverseNameDescriptor.java
@@ -101,10 +101,8 @@
                         strPtr.set(bytes, offset + 1, len - 1);
                         String dataverseCanonicalName = strPtr.toString();
 
-                        DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
-
                         dataverseNameParts.clear();
-                        dataverseName.getParts(dataverseNameParts);
+                        DataverseName.getPartsFromCanonicalForm(dataverseCanonicalName, dataverseNameParts);
 
                         resultStorage.reset();
                         listBuilder.reset(listType);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
index 81ce832..492d64c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
@@ -60,8 +60,8 @@
         return destString;
     }
 
-    static final char[] RESERVED_REGEX_CHARS = new char[] { '\\', '(', ')', '[', ']', '{', '}', '.', '^', '$', '*', '|',
-            '+', '?', '<', '>', '-', '=', '!' };
+    public static final char[] RESERVED_REGEX_CHARS = new char[] { '\\', '(', ')', '[', ']', '{', '}', '.', '^', '$',
+            '*', '|', '+', '?', '<', '>', '-', '=', '!' };
 
     static {
         Arrays.sort(RESERVED_REGEX_CHARS);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLTrimDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLTrimDescriptor.java
index 6e4f476..4d4fd93 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLTrimDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLTrimDescriptor.java
@@ -60,7 +60,8 @@
             public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
                 return new AbstractUnaryStringStringEval(ctx, args[0], StringLTrimDescriptor.this.getIdentifier(),
                         sourceLoc) {
-                    private StringTrimmer stringTrimmer = new StringTrimmer(resultBuilder, resultArray, " ");
+                    private StringTrimmer stringTrimmer =
+                            new StringTrimmer(resultBuilder, resultArray, UTF8StringPointable.SPACE_STRING_POINTABLE);
 
                     @Override
                     protected void process(UTF8StringPointable srcPtr, IPointable resultStrPtr) throws IOException {
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
index 72b6a47..a4fd667 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
@@ -91,7 +91,7 @@
                                         ATypeTag.STRING);
                                 return;
                             }
-                            int len = UTF8StringUtil.getUTFLength(serString, offset + 1);
+                            int len = UTF8StringUtil.getNumCodePoint(serString, offset + 1);
                             result.setValue(len);
                             int64Serde.serialize(result, out);
                             resultPointable.set(resultStorage);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionDescriptor.java
index f7177fd..6c06056 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionDescriptor.java
@@ -48,7 +48,7 @@
 
                     @Override
                     protected int compute(UTF8StringPointable left, UTF8StringPointable right) {
-                        return UTF8StringPointable.find(left, right, false);
+                        return UTF8StringPointable.findInCodePoint(left, right, false);
                     }
                 };
             }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionOffset1Descriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionOffset1Descriptor.java
index 10cc779..93ada0f 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionOffset1Descriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringPositionOffset1Descriptor.java
@@ -48,7 +48,7 @@
 
                     @Override
                     protected int compute(UTF8StringPointable left, UTF8StringPointable right) {
-                        int pos = UTF8StringPointable.find(left, right, false);
+                        int pos = UTF8StringPointable.findInCodePoint(left, right, false);
                         return pos < 0 ? pos : pos + 1;
                     }
                 };
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRTrimDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRTrimDescriptor.java
index f74b641..e99c401 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRTrimDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRTrimDescriptor.java
@@ -60,7 +60,8 @@
             public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
                 return new AbstractUnaryStringStringEval(ctx, args[0], StringRTrimDescriptor.this.getIdentifier(),
                         sourceLoc) {
-                    private StringTrimmer stringTrimmer = new StringTrimmer(resultBuilder, resultArray, " ");
+                    private StringTrimmer stringTrimmer =
+                            new StringTrimmer(resultBuilder, resultArray, UTF8StringPointable.SPACE_STRING_POINTABLE);
 
                     @Override
                     protected void process(UTF8StringPointable srcPtr, IPointable resultStrPtr) throws IOException {
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRegExpSplitDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRegExpSplitDescriptor.java
index da6a206..8de8c8a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRegExpSplitDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringRegExpSplitDescriptor.java
@@ -30,6 +30,7 @@
 import org.apache.asterix.om.types.AbstractCollectionType;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import org.apache.asterix.runtime.evaluators.functions.utils.RegExpMatcher;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
@@ -65,10 +66,13 @@
                     private final AbstractCollectionType collectionType =
                             new AOrderedListType(BuiltinType.ASTRING, BuiltinType.ASTRING.getTypeName());
 
+                    private final RegExpMatcher matcher = new RegExpMatcher();
+
                     @Override
                     protected void process(UTF8StringPointable srcPtr, UTF8StringPointable patternPtr,
                             IPointable result) throws HyracksDataException {
-                        String[] splits = srcPtr.toString().split(patternPtr.toString());
+                        matcher.build(srcPtr, patternPtr);
+                        String[] splits = matcher.split();
 
                         // Result is a list of type strings
                         listBuilder.reset(collectionType);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
index e4fb37b..8d03352 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
@@ -105,8 +105,8 @@
                             int pos = 0;
                             listBuilder.reset(intListType);
                             while (pos < len) {
-                                int codePoint = UTF8StringUtil.UTF8ToCodePoint(serString, start + pos);
-                                pos += UTF8StringUtil.charSize(serString, start + pos);
+                                int codePoint = UTF8StringUtil.codePointAt(serString, start + pos);
+                                pos += UTF8StringUtil.codePointSize(serString, start + pos);
 
                                 inputVal.reset();
                                 aInt64.setValue(codePoint);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringTrimDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringTrimDescriptor.java
index 704bf7d..3f0ec52 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringTrimDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringTrimDescriptor.java
@@ -60,7 +60,8 @@
             public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) throws HyracksDataException {
                 return new AbstractUnaryStringStringEval(ctx, args[0], StringTrimDescriptor.this.getIdentifier(),
                         sourceLoc) {
-                    private StringTrimmer stringTrimmer = new StringTrimmer(resultBuilder, resultArray, " ");
+                    private StringTrimmer stringTrimmer =
+                            new StringTrimmer(resultBuilder, resultArray, UTF8StringPointable.SPACE_STRING_POINTABLE);
 
                     @Override
                     protected void process(UTF8StringPointable srcPtr, IPointable resultStrPtr) throws IOException {
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
index 2178b48..58495e8 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
@@ -25,7 +25,7 @@
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
 
-class IntervalLogic {
+public class IntervalLogic {
 
     private final IBinaryComparator comp;
     private final ArrayBackedValueStorage s1 = new ArrayBackedValueStorage();
@@ -33,7 +33,7 @@
     private final ArrayBackedValueStorage s2 = new ArrayBackedValueStorage();
     private final ArrayBackedValueStorage e2 = new ArrayBackedValueStorage();
 
-    IntervalLogic() {
+    public IntervalLogic() {
         comp = BinaryComparatorFactoryProvider.INSTANCE
                 .getBinaryComparatorFactory(BuiltinType.ANY, BuiltinType.ANY, true).createBinaryComparator();
     }
@@ -47,7 +47,7 @@
      * @throws HyracksDataException IOException
      * @see #after(AIntervalPointable, AIntervalPointable)
      */
-    boolean before(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean before(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         e1.reset();
         s2.reset();
         ip1.getTaggedEnd(e1.getDataOutput());
@@ -56,7 +56,7 @@
                 s2.getStartOffset(), s2.getLength()) < 0;
     }
 
-    boolean after(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean after(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return before(ip2, ip1);
     }
 
@@ -69,7 +69,7 @@
      * @throws HyracksDataException IOException
      * @see #metBy(AIntervalPointable, AIntervalPointable)
      */
-    boolean meets(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean meets(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         e1.reset();
         s2.reset();
         ip1.getTaggedEnd(e1.getDataOutput());
@@ -78,7 +78,7 @@
                 s2.getStartOffset(), s2.getLength()) == 0;
     }
 
-    boolean metBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean metBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return meets(ip2, ip1);
     }
 
@@ -91,7 +91,7 @@
      * @throws HyracksDataException IOException
      * @see #overlappedBy(AIntervalPointable, AIntervalPointable)
      */
-    boolean overlaps(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean overlaps(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         s1.reset();
         e1.reset();
         s2.reset();
@@ -108,7 +108,7 @@
                         e2.getStartOffset(), e2.getLength()) < 0;
     }
 
-    boolean overlappedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean overlappedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return overlaps(ip2, ip1);
     }
 
@@ -120,7 +120,7 @@
      * @throws HyracksDataException IOException
      * @return boolean
      */
-    boolean overlapping(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean overlapping(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         s1.reset();
         e1.reset();
         s2.reset();
@@ -144,7 +144,7 @@
      * @throws HyracksDataException IOException
      * @see #startedBy(AIntervalPointable, AIntervalPointable)
      */
-    boolean starts(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean starts(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         s1.reset();
         e1.reset();
         s2.reset();
@@ -159,7 +159,7 @@
                         e2.getStartOffset(), e2.getLength()) <= 0;
     }
 
-    boolean startedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean startedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return starts(ip2, ip1);
     }
 
@@ -172,7 +172,7 @@
      * @throws HyracksDataException IOException
      * @see #coveredBy(AIntervalPointable, AIntervalPointable)
      */
-    boolean covers(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean covers(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         s1.reset();
         e1.reset();
         s2.reset();
@@ -187,7 +187,7 @@
                         e2.getStartOffset(), e2.getLength()) >= 0;
     }
 
-    boolean coveredBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean coveredBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return covers(ip2, ip1);
     }
 
@@ -200,7 +200,7 @@
      * @throws HyracksDataException IOException
      * @see #endedBy(AIntervalPointable, AIntervalPointable)
      */
-    boolean ends(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean ends(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         s1.reset();
         e1.reset();
         s2.reset();
@@ -215,7 +215,7 @@
                         e2.getStartOffset(), e2.getLength()) == 0;
     }
 
-    boolean endedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
+    public boolean endedBy(AIntervalPointable ip1, AIntervalPointable ip2) throws HyracksDataException {
         return ends(ip2, ip1);
     }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/RegExpMatcher.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/RegExpMatcher.java
index 778df5b..1a190cc 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/RegExpMatcher.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/RegExpMatcher.java
@@ -209,4 +209,13 @@
         matcher.appendTail(resultBuf);
         return resultBuf.toString();
     }
+
+    /**
+     * Splits the provided source string using the provided regular expression.
+     *
+     * @return the string split tokens
+     */
+    public String[] split() {
+        return pattern.split(charSeq);
+    }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/StringTrimmer.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/StringTrimmer.java
index 3e41b1b..8dc41f5 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/StringTrimmer.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/utils/StringTrimmer.java
@@ -22,13 +22,15 @@
 import java.io.IOException;
 
 import org.apache.asterix.runtime.evaluators.functions.StringEvaluatorUtils;
-import org.apache.commons.lang3.CharSet;
 import org.apache.hyracks.data.std.api.IPointable;
 import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
 import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
 import org.apache.hyracks.data.std.util.GrowableArray;
 import org.apache.hyracks.data.std.util.UTF8StringBuilder;
 
+import it.unimi.dsi.fastutil.ints.IntArraySet;
+import it.unimi.dsi.fastutil.ints.IntSet;
+
 /**
  * A wrapper for string trim methods.
  */
@@ -37,7 +39,7 @@
     // For the char set to trim.
     private final ByteArrayAccessibleOutputStream lastPatternStorage = new ByteArrayAccessibleOutputStream();
     private final UTF8StringPointable lastPatternPtr = new UTF8StringPointable();
-    private CharSet charSet;
+    private IntSet codePointSet = new IntArraySet();
 
     // For outputting the result.
     private final UTF8StringBuilder resultBuilder;
@@ -61,11 +63,12 @@
      * @param pattern
      *            , the string that is used to construct the charset for trimming.
      */
-    public StringTrimmer(UTF8StringBuilder resultBuilder, GrowableArray resultArray, String pattern) {
+    public StringTrimmer(UTF8StringBuilder resultBuilder, GrowableArray resultArray, UTF8StringPointable pattern) {
         this.resultBuilder = resultBuilder;
         this.resultArray = resultArray;
         if (pattern != null) {
-            charSet = CharSet.getInstance(pattern);
+            codePointSet.clear();
+            pattern.getCodePoints(codePointSet);
         }
     }
 
@@ -76,10 +79,11 @@
      *            , a pattern string.
      */
     public void build(UTF8StringPointable patternPtr) {
-        final boolean newPattern = charSet == null || lastPatternPtr.compareTo(patternPtr) != 0;
+        final boolean newPattern = (codePointSet.size() == 0) || lastPatternPtr.compareTo(patternPtr) != 0;
         if (newPattern) {
             StringEvaluatorUtils.copyResetUTF8Pointable(patternPtr, lastPatternStorage, lastPatternPtr);
-            charSet = CharSet.getInstance(patternPtr.toString());
+            codePointSet.clear();
+            patternPtr.getCodePoints(codePointSet);
         }
     }
 
@@ -98,7 +102,8 @@
      */
     public void trim(UTF8StringPointable srcPtr, IPointable resultStrPtr, boolean left, boolean right)
             throws IOException {
-        UTF8StringPointable.trim(srcPtr, resultBuilder, resultArray, left, right, charSet);
+        srcPtr.trim(resultBuilder, resultArray, left, right, codePointSet);
         resultStrPtr.set(resultArray.getByteArray(), 0, resultArray.getLength());
     }
+
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
index 0db1821..31a93dc 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
@@ -50,6 +50,7 @@
 import org.apache.asterix.om.functions.IFunctionManager;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.IAType;
+import org.apache.asterix.runtime.base.UnnestingPositionWriterFactory;
 import org.apache.asterix.runtime.evaluators.common.CreateMBREvalFactory;
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -73,6 +74,7 @@
 import org.apache.hyracks.algebricks.data.IPrinterFactoryProvider;
 import org.apache.hyracks.algebricks.data.ISerializerDeserializerProvider;
 import org.apache.hyracks.algebricks.data.ITypeTraitProvider;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
 import org.apache.hyracks.algebricks.runtime.evaluators.ColumnAccessEvalFactory;
 import org.apache.hyracks.algebricks.runtime.evaluators.ConstantEvalFactory;
@@ -250,7 +252,7 @@
                     IScalarEvaluatorFactory evalFactory = fDesc.createEvaluatorFactory(
                             new IScalarEvaluatorFactory[] { recordEvalFactory, fldIndexEvalFactory });
                     IFunctionInfo finfoAccess =
-                            BuiltinFunctions.getAsterixFunctionInfo(BuiltinFunctions.FIELD_ACCESS_BY_INDEX);
+                            BuiltinFunctions.getBuiltinFunctionInfo(BuiltinFunctions.FIELD_ACCESS_BY_INDEX);
 
                     ScalarFunctionCallExpression partitionFun = new ScalarFunctionCallExpression(finfoAccess,
                             new MutableObject<>(new VariableReferenceExpression(METADATA_DUMMY_VAR)),
@@ -275,7 +277,7 @@
             fDesc.setImmutableStates(recType, fldName);
             IScalarEvaluatorFactory evalFactory =
                     fDesc.createEvaluatorFactory(new IScalarEvaluatorFactory[] { recordEvalFactory });
-            IFunctionInfo finfoAccess = BuiltinFunctions.getAsterixFunctionInfo(BuiltinFunctions.FIELD_ACCESS_NESTED);
+            IFunctionInfo finfoAccess = BuiltinFunctions.getBuiltinFunctionInfo(BuiltinFunctions.FIELD_ACCESS_NESTED);
 
             ScalarFunctionCallExpression partitionFun = new ScalarFunctionCallExpression(finfoAccess,
                     new MutableObject<>(new VariableReferenceExpression(METADATA_DUMMY_VAR)),
@@ -341,6 +343,11 @@
     }
 
     @Override
+    public IUnnestingPositionWriterFactory getUnnestingPositionWriterFactory() {
+        return UnnestingPositionWriterFactory.INSTANCE;
+    }
+
+    @Override
     public IExpressionEvalSizeComputer getExpressionEvalSizeComputer() {
         return new IExpressionEvalSizeComputer() {
             @Override
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
index e1c9164..42e27da 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
@@ -331,6 +331,7 @@
 import org.apache.asterix.runtime.evaluators.functions.CreateQueryUIDDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.CreateRectangleDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.CreateUUIDDescriptor;
+import org.apache.asterix.runtime.evaluators.functions.DecodeDataverseDisplayNameDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.DecodeDataverseNameDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.DeepEqualityDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.FullTextContainsDescriptor;
@@ -1214,6 +1215,7 @@
 
         // Other functions
         fc.add(DecodeDataverseNameDescriptor.FACTORY);
+        fc.add(DecodeDataverseDisplayNameDescriptor.FACTORY);
         fc.add(RandomWithSeedDescriptor.FACTORY);
 
         ServiceLoader.load(IFunctionRegistrant.class).iterator().forEachRemaining(c -> c.register(fc));
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorDescriptor.java
index 42b8f29..d639f3d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorDescriptor.java
@@ -34,10 +34,10 @@
 
     private static final long serialVersionUID = 1L;
 
-    private final IIndexDataflowHelperFactory keyIndexHelperFactory;
-    private final ISearchOperationCallbackFactory searchOpCallbackFactory;
-    private final int numOfPrimaryKeys;
-    private final int[] filterFields;
+    protected final IIndexDataflowHelperFactory keyIndexHelperFactory;
+    protected final ISearchOperationCallbackFactory searchOpCallbackFactory;
+    protected final int numOfPrimaryKeys;
+    protected final int[] filterFields;
 
     public LSMPrimaryInsertOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor outRecDesc,
             int[] fieldPermutation, IIndexDataflowHelperFactory indexHelperFactory,
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
index 0bb42d4..a886161 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
@@ -105,7 +105,17 @@
             }
         }
         keyTuple = new PermutingFrameTupleReference(searchKeyPermutations);
-        processor = new IFrameTupleProcessor() {
+        processor = createTupleProcessor(sourceLoc);
+        frameOpCallback = NoOpFrameOperationCallbackFactory.INSTANCE.createFrameOperationCallback(ctx, lsmAccessor);
+    }
+
+    protected void beforeModification(ITupleReference tuple) {
+        // this is used for extensions to modify tuples before persistence
+        // do nothing in the master branch
+    }
+
+    protected IFrameTupleProcessor createTupleProcessor(SourceLocation sourceLoc) {
+        return new IFrameTupleProcessor() {
             @Override
             public void process(ITupleReference tuple, int index) throws HyracksDataException {
                 if (index < currentTupleIdx) {
@@ -127,6 +137,7 @@
                     cursor.close();
                 }
                 if (!duplicate) {
+                    beforeModification(tuple);
                     lsmAccessor.forceUpsert(tuple);
                     if (lsmAccessorForKeyIndex != null) {
                         lsmAccessorForKeyIndex.forceUpsert(keyTuple);
@@ -157,8 +168,6 @@
                 // no op
             }
         };
-
-        frameOpCallback = NoOpFrameOperationCallbackFactory.INSTANCE.createFrameOperationCallback(ctx, lsmAccessor);
     }
 
     @Override
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorDescriptor.java
index 7587ca69..2adad12 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorDescriptor.java
@@ -36,28 +36,30 @@
 public class LSMPrimaryUpsertOperatorDescriptor extends LSMTreeInsertDeleteOperatorDescriptor {
 
     private static final long serialVersionUID = 1L;
-    private final IFrameOperationCallbackFactory frameOpCallbackFactory;
-    private final ARecordType recordType;
-    private final int filterIndex;
-    private ISearchOperationCallbackFactory searchOpCallbackFactory;
-    private final int numPrimaryKeys;
-    private final IMissingWriterFactory missingWriterFactory;
-    private final boolean hasSecondaries;
+    protected final IFrameOperationCallbackFactory frameOpCallbackFactory;
+    protected final Integer filterSourceIndicator;
+    protected final ARecordType filterItemType;
+    protected final int filterIndex;
+    protected ISearchOperationCallbackFactory searchOpCallbackFactory;
+    protected final int numPrimaryKeys;
+    protected final IMissingWriterFactory missingWriterFactory;
+    protected final boolean hasSecondaries;
 
     public LSMPrimaryUpsertOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor outRecDesc,
             int[] fieldPermutation, IIndexDataflowHelperFactory indexHelperFactory,
             IMissingWriterFactory missingWriterFactory,
             IModificationOperationCallbackFactory modificationOpCallbackFactory,
             ISearchOperationCallbackFactory searchOpCallbackFactory,
-            IFrameOperationCallbackFactory frameOpCallbackFactory, int numPrimaryKeys, ARecordType recordType,
-            int filterIndex, boolean hasSecondaries) {
+            IFrameOperationCallbackFactory frameOpCallbackFactory, int numPrimaryKeys, Integer filterSourceIndicator,
+            ARecordType filterItemType, int filterIndex, boolean hasSecondaries) {
         super(spec, outRecDesc, fieldPermutation, IndexOperation.UPSERT, indexHelperFactory, null, true,
                 modificationOpCallbackFactory);
         this.frameOpCallbackFactory = frameOpCallbackFactory;
         this.searchOpCallbackFactory = searchOpCallbackFactory;
         this.numPrimaryKeys = numPrimaryKeys;
         this.missingWriterFactory = missingWriterFactory;
-        this.recordType = recordType;
+        this.filterSourceIndicator = filterSourceIndicator;
+        this.filterItemType = filterItemType;
         this.filterIndex = filterIndex;
         this.hasSecondaries = hasSecondaries;
     }
@@ -67,7 +69,7 @@
             IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException {
         RecordDescriptor intputRecDesc = recordDescProvider.getInputRecordDescriptor(getActivityId(), 0);
         return new LSMPrimaryUpsertOperatorNodePushable(ctx, partition, indexHelperFactory, fieldPermutation,
-                intputRecDesc, modCallbackFactory, searchOpCallbackFactory, numPrimaryKeys, recordType, filterIndex,
-                frameOpCallbackFactory, missingWriterFactory, hasSecondaries);
+                intputRecDesc, modCallbackFactory, searchOpCallbackFactory, numPrimaryKeys, filterSourceIndicator,
+                filterItemType, filterIndex, frameOpCallbackFactory, missingWriterFactory, hasSecondaries);
     }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
index 3e43e02..f5bddc5 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
@@ -83,33 +83,34 @@
     private static final Logger LOGGER = LogManager.getLogger();
     private static final ThreadLocal<DateFormat> DATE_FORMAT =
             ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"));
-    private final PermutingFrameTupleReference key;
+    protected final PermutingFrameTupleReference key;
     private MultiComparator keySearchCmp;
     private ArrayTupleBuilder missingTupleBuilder;
     private final IMissingWriter missingWriter;
-    private ArrayTupleBuilder tb;
+    protected ArrayTupleBuilder tb;
     private DataOutput dos;
-    private RangePredicate searchPred;
-    private IIndexCursor cursor;
-    private ITupleReference prevTuple;
-    private final int numOfPrimaryKeys;
-    boolean isFiltered = false;
+    protected RangePredicate searchPred;
+    protected IIndexCursor cursor;
+    protected ITupleReference prevTuple;
+    protected final int numOfPrimaryKeys;
+    protected boolean isFiltered = false;
     private final ArrayTupleReference prevTupleWithFilter = new ArrayTupleReference();
     private ArrayTupleBuilder prevRecWithPKWithFilterValue;
-    private ARecordType recordType;
+    private Integer filterSourceIndicator = null;
+    private ARecordType filterItemType;
     private int presetFieldIndex = -1;
     private ARecordPointable recPointable;
     private DataOutput prevDos;
     private final boolean hasMeta;
     private final int filterFieldIndex;
     private final int metaFieldIndex;
-    private LockThenSearchOperationCallback searchCallback;
-    private IFrameOperationCallback frameOpCallback;
+    protected LockThenSearchOperationCallback searchCallback;
+    protected IFrameOperationCallback frameOpCallback;
     private final IFrameOperationCallbackFactory frameOpCallbackFactory;
-    private AbstractIndexModificationOperationCallback abstractModCallback;
+    protected AbstractIndexModificationOperationCallback abstractModCallback;
     private final ISearchOperationCallbackFactory searchCallbackFactory;
     private final IFrameTupleProcessor processor;
-    private LSMTreeIndexAccessor lsmAccessor;
+    protected LSMTreeIndexAccessor lsmAccessor;
     private final ITracer tracer;
     private final long traceCategory;
     private long lastRecordInTimeStamp = 0L;
@@ -117,8 +118,8 @@
     public LSMPrimaryUpsertOperatorNodePushable(IHyracksTaskContext ctx, int partition,
             IIndexDataflowHelperFactory indexHelperFactory, int[] fieldPermutation, RecordDescriptor inputRecDesc,
             IModificationOperationCallbackFactory modCallbackFactory,
-            ISearchOperationCallbackFactory searchCallbackFactory, int numOfPrimaryKeys, ARecordType recordType,
-            int filterFieldIndex, IFrameOperationCallbackFactory frameOpCallbackFactory,
+            ISearchOperationCallbackFactory searchCallbackFactory, int numOfPrimaryKeys, Integer filterSourceIndicator,
+            ARecordType filterItemType, int filterFieldIndex, IFrameOperationCallbackFactory frameOpCallbackFactory,
             IMissingWriterFactory missingWriterFactory, final boolean hasSecondaries) throws HyracksDataException {
         super(ctx, partition, indexHelperFactory, fieldPermutation, inputRecDesc, IndexOperation.UPSERT,
                 modCallbackFactory, null);
@@ -138,13 +139,25 @@
         this.filterFieldIndex = numOfPrimaryKeys + (hasMeta ? 2 : 1);
         if (filterFieldIndex >= 0) {
             isFiltered = true;
-            this.recordType = recordType;
+            this.filterItemType = filterItemType;
             this.presetFieldIndex = filterFieldIndex;
+            this.filterSourceIndicator = filterSourceIndicator;
             this.recPointable = ARecordPointable.FACTORY.createPointable();
             this.prevRecWithPKWithFilterValue = new ArrayTupleBuilder(fieldPermutation.length + (hasMeta ? 1 : 0));
             this.prevDos = prevRecWithPKWithFilterValue.getDataOutput();
         }
-        processor = new IFrameTupleProcessor() {
+        processor = createTupleProcessor(hasSecondaries);
+        tracer = ctx.getJobletContext().getServiceContext().getTracer();
+        traceCategory = tracer.getRegistry().get(TraceUtils.LATENCY);
+    }
+
+    protected void beforeModification(ITupleReference tuple) {
+        // this is used for extensions to modify tuples before persistence
+        // do nothing in the master branch
+    }
+
+    protected IFrameTupleProcessor createTupleProcessor(final boolean hasSecondaries) {
+        return new IFrameTupleProcessor() {
             @Override
             public void process(ITupleReference tuple, int index) throws HyracksDataException {
                 try {
@@ -176,6 +189,7 @@
                         appendUpsertIndicator(!isDelete);
                         appendPreviousTupleAsMissing();
                     }
+                    beforeModification(tuple);
                     if (isDelete && prevTuple != null) {
                         // Only delete if it is a delete and not upsert
                         // And previous tuple with the same key was found
@@ -213,8 +227,6 @@
                 frameOpCallback.fail(th);
             }
         };
-        tracer = ctx.getJobletContext().getServiceContext().getTracer();
-        traceCategory = tracer.getRegistry().get(TraceUtils.LATENCY);
     }
 
     // we have the permutation which has [pk locations, record location, optional:filter-location]
@@ -285,12 +297,12 @@
         }
     }
 
-    private void resetSearchPredicate(int tupleIndex) {
+    protected void resetSearchPredicate(int tupleIndex) {
         key.reset(accessor, tupleIndex);
         searchPred.reset(key, key, true, true, keySearchCmp, keySearchCmp);
     }
 
-    private void writeOutput(int tupleIndex, boolean recordWasInserted, boolean recordWasDeleted) throws IOException {
+    protected void writeOutput(int tupleIndex, boolean recordWasInserted, boolean recordWasDeleted) throws IOException {
         if (recordWasInserted || recordWasDeleted) {
             frameTuple.reset(accessor, tupleIndex);
             for (int i = 0; i < frameTuple.getFieldCount(); i++) {
@@ -307,7 +319,7 @@
         }
     }
 
-    private static boolean isDeleteOperation(ITupleReference t1, int field) {
+    protected static boolean isDeleteOperation(ITupleReference t1, int field) {
         return TypeTagUtil.isType(t1, field, ATypeTag.SERIALIZED_MISSING_TYPE_TAG);
     }
 
@@ -326,7 +338,7 @@
         }
     }
 
-    private void appendFilterToOutput() throws IOException {
+    protected void appendFilterToOutput() throws IOException {
         // if with filters, append the filter
         if (isFiltered) {
             dos.write(prevTuple.getFieldData(filterFieldIndex), prevTuple.getFieldStart(filterFieldIndex),
@@ -335,18 +347,18 @@
         }
     }
 
-    private void appendUpsertIndicator(boolean isUpsert) throws IOException {
+    protected void appendUpsertIndicator(boolean isUpsert) throws IOException {
         recordDesc.getFields()[0].serialize(isUpsert ? ABoolean.TRUE : ABoolean.FALSE, dos);
         tb.addFieldEndOffset();
     }
 
-    private void appendPrevRecord() throws IOException {
+    protected void appendPrevRecord() throws IOException {
         dos.write(prevTuple.getFieldData(numOfPrimaryKeys), prevTuple.getFieldStart(numOfPrimaryKeys),
                 prevTuple.getFieldLength(numOfPrimaryKeys));
         tb.addFieldEndOffset();
     }
 
-    private void appendPreviousMeta() throws IOException {
+    protected void appendPreviousMeta() throws IOException {
         // if has meta, then append meta
         if (hasMeta) {
             dos.write(prevTuple.getFieldData(metaFieldIndex), prevTuple.getFieldStart(metaFieldIndex),
@@ -355,7 +367,7 @@
         }
     }
 
-    private void appendPreviousTupleAsMissing() throws IOException {
+    protected void appendPreviousTupleAsMissing() throws IOException {
         prevTuple = null;
         writeMissingField();
         if (hasMeta) {
@@ -376,20 +388,27 @@
         appender.write(writer, true);
     }
 
-    private void appendFilterToPrevTuple() throws IOException {
+    protected void appendFilterToPrevTuple() throws IOException {
         if (isFiltered) {
             prevRecWithPKWithFilterValue.reset();
             for (int i = 0; i < prevTuple.getFieldCount(); i++) {
                 prevDos.write(prevTuple.getFieldData(i), prevTuple.getFieldStart(i), prevTuple.getFieldLength(i));
                 prevRecWithPKWithFilterValue.addFieldEndOffset();
             }
-            recPointable.set(prevTuple.getFieldData(numOfPrimaryKeys), prevTuple.getFieldStart(numOfPrimaryKeys),
-                    prevTuple.getFieldLength(numOfPrimaryKeys));
+
+            if (filterSourceIndicator == 0) {
+                recPointable.set(prevTuple.getFieldData(numOfPrimaryKeys), prevTuple.getFieldStart(numOfPrimaryKeys),
+                        prevTuple.getFieldLength(numOfPrimaryKeys));
+            } else {
+                recPointable.set(prevTuple.getFieldData(metaFieldIndex), prevTuple.getFieldStart(metaFieldIndex),
+                        prevTuple.getFieldLength(metaFieldIndex));
+            }
             // copy the field data from prevTuple
-            byte tag = recPointable.getClosedFieldType(recordType, presetFieldIndex).getTypeTag().serialize();
+            byte tag = recPointable.getClosedFieldType(filterItemType, presetFieldIndex).getTypeTag().serialize();
             prevDos.write(tag);
-            prevDos.write(recPointable.getByteArray(), recPointable.getClosedFieldOffset(recordType, presetFieldIndex),
-                    recPointable.getClosedFieldSize(recordType, presetFieldIndex));
+            prevDos.write(recPointable.getByteArray(),
+                    recPointable.getClosedFieldOffset(filterItemType, presetFieldIndex),
+                    recPointable.getClosedFieldSize(filterItemType, presetFieldIndex));
             prevRecWithPKWithFilterValue.addFieldEndOffset();
             // prepare the tuple
             prevTupleWithFilter.reset(prevRecWithPKWithFilterValue.getFieldEndOffsets(),
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryUpsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryUpsertOperatorNodePushable.java
index aa5775e..35ae904 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryUpsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryUpsertOperatorNodePushable.java
@@ -45,21 +45,20 @@
  * This operator node is used for secondary indexes with upsert operations.
  * It works in the following way:
  * For each incoming tuple
- * -If old secondary keys == new secondary keys
+ * -If old secondary index tuple == new secondary index tuple
  * --do nothing
  * -else
- * --If old secondary keys are null?
+ * --If any old field is null/missing?
  * ---do nothing
  * --else
- * ---delete old secondary keys
- * --If new keys are null?
+ * ---delete old secondary index tuple
+ * --If any new field is null/missing?
  * ---do nothing
  * --else
- * ---insert new keys
+ * ---insert new secondary index tuple
  */
 public class LSMSecondaryUpsertOperatorNodePushable extends LSMIndexInsertUpdateDeleteOperatorNodePushable {
 
-    private static final int NULL_MISSING_FIELD_INDEX = 0;
     private final PermutingFrameTupleReference prevValueTuple = new PermutingFrameTupleReference();
     private final int upsertIndicatorFieldIndex;
     private final IBinaryBooleanInspector upsertIndicatorInspector;
@@ -105,9 +104,9 @@
                 tuple.reset(accessor, i);
                 prevValueTuple.reset(accessor, i);
 
-                boolean isNewValueNullOrMissing = isNullOrMissing(tuple);
-                boolean isOldValueNullOrMissing = isNullOrMissing(prevValueTuple);
-                if (isNewValueNullOrMissing && isOldValueNullOrMissing) {
+                boolean newTupleHasNullOrMissing = hasNullOrMissing(tuple);
+                boolean oldTupleHasNullOrMissing = hasNullOrMissing(prevValueTuple);
+                if (newTupleHasNullOrMissing && oldTupleHasNullOrMissing) {
                     // No op
                     continue;
                 }
@@ -118,13 +117,13 @@
                     // which are always the same
                     continue;
                 }
-                if (!isOldValueNullOrMissing) {
-                    // We need to delete previous
+                // if all old fields are known values, then delete. skip deleting if any is null or missing
+                if (!oldTupleHasNullOrMissing) {
                     abstractModCallback.setOp(Operation.DELETE);
                     lsmAccessor.forceDelete(prevValueTuple);
                 }
-                if (isUpsert && !isNewValueNullOrMissing) {
-                    // we need to insert the new value
+                // if all new fields are known values, then insert. skip inserting if any is null or missing
+                if (isUpsert && !newTupleHasNullOrMissing) {
                     abstractModCallback.setOp(Operation.INSERT);
                     lsmAccessor.forceInsert(tuple);
                 }
@@ -138,8 +137,18 @@
         FrameUtils.flushFrame(writeBuffer.getBuffer(), writer);
     }
 
-    private static boolean isNullOrMissing(PermutingFrameTupleReference tuple) {
-        return TypeTagUtil.isType(tuple, NULL_MISSING_FIELD_INDEX, ATypeTag.SERIALIZED_NULL_TYPE_TAG)
-                || TypeTagUtil.isType(tuple, NULL_MISSING_FIELD_INDEX, ATypeTag.SERIALIZED_MISSING_TYPE_TAG);
+    private boolean hasNullOrMissing(PermutingFrameTupleReference tuple) {
+        int fieldCount = tuple.getFieldCount();
+        for (int i = 0; i < fieldCount; i++) {
+            if (isNullOrMissing(tuple, i)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static boolean isNullOrMissing(PermutingFrameTupleReference tuple, int fieldIdx) {
+        return TypeTagUtil.isType(tuple, fieldIdx, ATypeTag.SERIALIZED_NULL_TYPE_TAG)
+                || TypeTagUtil.isType(tuple, fieldIdx, ATypeTag.SERIALIZED_MISSING_TYPE_TAG);
     }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoinOperatorDescriptor.java
new file mode 100644
index 0000000..0417ee0
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoinOperatorDescriptor.java
@@ -0,0 +1,180 @@
+/*
+ * 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.runtime.operators.joins.interval;
+
+import java.nio.ByteBuffer;
+
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtil;
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtilFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.ActivityId;
+import org.apache.hyracks.api.dataflow.IActivity;
+import org.apache.hyracks.api.dataflow.IActivityGraphBuilder;
+import org.apache.hyracks.api.dataflow.IOperatorNodePushable;
+import org.apache.hyracks.api.dataflow.TaskId;
+import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
+import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.job.IOperatorDescriptorRegistry;
+import org.apache.hyracks.api.job.JobId;
+import org.apache.hyracks.dataflow.common.comm.util.FrameUtils;
+import org.apache.hyracks.dataflow.std.base.AbstractActivityNode;
+import org.apache.hyracks.dataflow.std.base.AbstractOperatorDescriptor;
+import org.apache.hyracks.dataflow.std.base.AbstractStateObject;
+import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputSinkOperatorNodePushable;
+import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
+
+public class IntervalMergeJoinOperatorDescriptor extends AbstractOperatorDescriptor {
+    private static final long serialVersionUID = 1L;
+
+    private static final int JOIN_BUILD_ACTIVITY_ID = 0;
+    private static final int JOIN_PROBE_ACTIVITY_ID = 1;
+    private final int buildKey;
+    private final int probeKey;
+    private final int memoryForJoin;
+    private final IIntervalJoinUtilFactory imjcf;
+
+    public IntervalMergeJoinOperatorDescriptor(IOperatorDescriptorRegistry spec, int memoryForJoin, int[] buildKey,
+            int[] probeKeys, RecordDescriptor recordDescriptor, IIntervalJoinUtilFactory imjcf) {
+        super(spec, 2, 1);
+        outRecDescs[0] = recordDescriptor;
+        this.buildKey = buildKey[0];
+        this.probeKey = probeKeys[0];
+        this.memoryForJoin = memoryForJoin;
+        this.imjcf = imjcf;
+    }
+
+    @Override
+    public void contributeActivities(IActivityGraphBuilder builder) {
+        ActivityId buildAid = new ActivityId(odId, JOIN_BUILD_ACTIVITY_ID);
+        ActivityId probeAid = new ActivityId(odId, JOIN_PROBE_ACTIVITY_ID);
+
+        IActivity probeAN = new JoinProbeActivityNode(probeAid);
+        IActivity buildAN = new JoinBuildActivityNode(buildAid, probeAid);
+
+        builder.addActivity(this, buildAN);
+        builder.addSourceEdge(0, buildAN, 0);
+
+        builder.addActivity(this, probeAN);
+        builder.addSourceEdge(1, probeAN, 0);
+        builder.addTargetEdge(0, probeAN, 0);
+        builder.addBlockingEdge(buildAN, probeAN);
+    }
+
+    public static class JoinCacheTaskState extends AbstractStateObject {
+        private IntervalMergeJoiner joiner;
+
+        private JoinCacheTaskState(JobId jobId, TaskId taskId) {
+            super(jobId, taskId);
+        }
+    }
+
+    private class JoinBuildActivityNode extends AbstractActivityNode {
+        private static final long serialVersionUID = 1L;
+
+        private final ActivityId nljAid;
+
+        public JoinBuildActivityNode(ActivityId id, ActivityId nljAid) {
+            super(id);
+            this.nljAid = nljAid;
+        }
+
+        @Override
+        public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx,
+                IRecordDescriptorProvider recordDescProvider, final int partition, int nPartitions) {
+            final RecordDescriptor rd0 = recordDescProvider.getInputRecordDescriptor(nljAid, 0);
+            final RecordDescriptor rd1 = recordDescProvider.getInputRecordDescriptor(getActivityId(), 0);
+
+            return new AbstractUnaryInputSinkOperatorNodePushable() {
+                private JoinCacheTaskState state;
+
+                @Override
+                public void open() throws HyracksDataException {
+                    state = new JoinCacheTaskState(ctx.getJobletContext().getJobId(),
+                            new TaskId(getActivityId(), partition));
+
+                    IIntervalJoinUtil imjc = imjcf.createIntervalMergeJoinUtil(buildKey, probeKey, ctx, nPartitions);
+
+                    state.joiner = new IntervalMergeJoiner(ctx, memoryForJoin, imjc, buildKey, probeKey, rd0, rd1);
+                }
+
+                @Override
+                public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+                    ByteBuffer copyBuffer = ctx.allocateFrame(buffer.capacity());
+                    FrameUtils.copyAndFlip(buffer, copyBuffer);
+                    state.joiner.processBuildFrame(copyBuffer);
+                }
+
+                @Override
+                public void close() throws HyracksDataException {
+                    state.joiner.processBuildClose();
+                    ctx.setStateObject(state);
+                }
+
+                @Override
+                public void fail() {
+                    // No variables to update.
+                }
+            };
+        }
+    }
+
+    private class JoinProbeActivityNode extends AbstractActivityNode {
+        private static final long serialVersionUID = 1L;
+
+        public JoinProbeActivityNode(ActivityId id) {
+            super(id);
+        }
+
+        @Override
+        public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx,
+                IRecordDescriptorProvider recordDescProvider, final int partition, int nPartitions) {
+            return new AbstractUnaryInputUnaryOutputOperatorNodePushable() {
+                private JoinCacheTaskState state;
+
+                @Override
+                public void open() throws HyracksDataException {
+                    writer.open();
+                    state = (JoinCacheTaskState) ctx.getStateObject(
+                            new TaskId(new ActivityId(getOperatorId(), JOIN_BUILD_ACTIVITY_ID), partition));
+                }
+
+                @Override
+                public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+                    state.joiner.processProbeFrame(buffer, writer);
+                }
+
+                @Override
+                public void close() throws HyracksDataException {
+                    try {
+                        state.joiner.processProbeClose(writer);
+                    } finally {
+                        writer.close();
+                    }
+                }
+
+                @Override
+                public void fail() throws HyracksDataException {
+                    writer.fail();
+                }
+            };
+        }
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
new file mode 100644
index 0000000..c19ad06
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
@@ -0,0 +1,237 @@
+/*
+ * 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.runtime.operators.joins.interval;
+
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtil;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.FrameTupleCursor;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalSideTuple;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.RunFilePointer;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.RunFileStream;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.TuplePointerCursor;
+import org.apache.hyracks.api.comm.IFrame;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.comm.IFrameWriter;
+import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import org.apache.hyracks.dataflow.common.comm.util.FrameUtils;
+import org.apache.hyracks.dataflow.std.buffermanager.DeallocatableFramePool;
+import org.apache.hyracks.dataflow.std.buffermanager.IDeallocatableFramePool;
+import org.apache.hyracks.dataflow.std.buffermanager.IDeletableTupleBufferManager;
+import org.apache.hyracks.dataflow.std.buffermanager.VariableDeletableTupleMemoryManager;
+import org.apache.hyracks.dataflow.std.structures.TuplePointer;
+
+/**
+ * Merge Joiner takes two sorted streams of input and joins.
+ * The two sorted streams must be in a logical order and the comparator must
+ * support keeping that order so the join will work.
+ * The left stream will spill to disk when memory is full.
+ * The right stream spills to memory and pause when memory is full.
+ */
+public class IntervalMergeJoiner {
+
+    private final IDeallocatableFramePool framePool;
+    private final IDeletableTupleBufferManager bufferManager;
+    private final TuplePointerCursor memoryCursor;
+    private final LinkedList<TuplePointer> memoryBuffer = new LinkedList<>();
+
+    private final RunFileStream runFileStream;
+    private final RunFilePointer runFilePointer;
+
+    private IntervalSideTuple memoryTuple;
+    private IntervalSideTuple[] inputTuple;
+
+    private final IIntervalJoinUtil mjc;
+
+    protected static final int JOIN_PARTITIONS = 2;
+    protected static final int BUILD_PARTITION = 0;
+    protected static final int PROBE_PARTITION = 1;
+
+    protected final IFrame[] inputBuffer;
+    protected final FrameTupleAppender resultAppender;
+    protected final FrameTupleCursor[] inputCursor;
+
+    public IntervalMergeJoiner(IHyracksTaskContext ctx, int memorySize, IIntervalJoinUtil mjc, int buildKeys,
+            int probeKeys, RecordDescriptor buildRd, RecordDescriptor probeRd) throws HyracksDataException {
+        this.mjc = mjc;
+
+        // Memory (probe buffer)
+        if (memorySize < 5) {
+            throw new RuntimeException(
+                    "IntervalMergeJoiner does not have enough memory (needs > 4, got " + memorySize + ").");
+        }
+
+        inputCursor = new FrameTupleCursor[JOIN_PARTITIONS];
+        inputCursor[BUILD_PARTITION] = new FrameTupleCursor(buildRd);
+        inputCursor[PROBE_PARTITION] = new FrameTupleCursor(probeRd);
+
+        inputBuffer = new IFrame[JOIN_PARTITIONS];
+        inputBuffer[BUILD_PARTITION] = new VSizeFrame(ctx);
+        inputBuffer[PROBE_PARTITION] = new VSizeFrame(ctx);
+
+        //Two frames are used for the runfile stream, and one frame for each input (2 outputs).
+        framePool = new DeallocatableFramePool(ctx, (memorySize - 4) * ctx.getInitialFrameSize());
+        bufferManager = new VariableDeletableTupleMemoryManager(framePool, probeRd);
+        memoryCursor = new TuplePointerCursor(bufferManager.createTuplePointerAccessor());
+
+        // Run File and frame cache (build buffer)
+        runFileStream = new RunFileStream(ctx, "imj-build");
+        runFilePointer = new RunFilePointer();
+        runFileStream.createRunFileWriting();
+        runFileStream.startRunFileWriting();
+
+        memoryTuple = new IntervalSideTuple(mjc, memoryCursor, probeKeys);
+
+        inputTuple = new IntervalSideTuple[JOIN_PARTITIONS];
+        inputTuple[PROBE_PARTITION] = new IntervalSideTuple(mjc, inputCursor[PROBE_PARTITION], probeKeys);
+        inputTuple[BUILD_PARTITION] = new IntervalSideTuple(mjc, inputCursor[BUILD_PARTITION], buildKeys);
+
+        // Result
+        this.resultAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+    }
+
+    public void processBuildFrame(ByteBuffer buffer) throws HyracksDataException {
+        inputCursor[BUILD_PARTITION].reset(buffer);
+        for (int x = 0; x < inputCursor[BUILD_PARTITION].getAccessor().getTupleCount(); x++) {
+            runFileStream.addToRunFile(inputCursor[BUILD_PARTITION].getAccessor(), x);
+        }
+    }
+
+    public void processBuildClose() throws HyracksDataException {
+        runFileStream.flushRunFile();
+        runFileStream.startReadingRunFile(inputCursor[BUILD_PARTITION]);
+    }
+
+    public void processProbeFrame(ByteBuffer buffer, IFrameWriter writer) throws HyracksDataException {
+        inputCursor[PROBE_PARTITION].reset(buffer);
+        while (buildHasNext() && inputCursor[PROBE_PARTITION].hasNext()) {
+            if (inputCursor[PROBE_PARTITION].hasNext() && mjc.checkToLoadNextProbeTuple(
+                    inputCursor[BUILD_PARTITION].getAccessor(), inputCursor[BUILD_PARTITION].getTupleId() + 1,
+                    inputCursor[PROBE_PARTITION].getAccessor(), inputCursor[PROBE_PARTITION].getTupleId() + 1)) {
+                // Process probe side from stream
+                inputCursor[PROBE_PARTITION].next();
+                processProbeTuple(writer);
+            } else {
+                // Process build side from runfile
+                inputCursor[BUILD_PARTITION].next();
+                processBuildTuple(writer);
+            }
+        }
+    }
+
+    public void processProbeClose(IFrameWriter writer) throws HyracksDataException {
+        while (buildHasNext() && memoryHasTuples()) {
+            // Process build side from runfile
+            inputCursor[BUILD_PARTITION].next();
+            processBuildTuple(writer);
+        }
+        resultAppender.write(writer, true);
+        runFileStream.close();
+        runFileStream.removeRunFile();
+    }
+
+    private boolean buildHasNext() throws HyracksDataException {
+        if (!inputCursor[BUILD_PARTITION].hasNext()) {
+            // Must keep condition in a separate `if` due to actions applied in loadNextBuffer.
+            return runFileStream.loadNextBuffer(inputCursor[BUILD_PARTITION]);
+        } else {
+            return true;
+        }
+    }
+
+    private void processBuildTuple(IFrameWriter writer) throws HyracksDataException {
+        // Check against memory
+        if (memoryHasTuples()) {
+            inputTuple[BUILD_PARTITION].loadTuple();
+            memoryCursor.reset(memoryBuffer.iterator());
+            while (memoryCursor.hasNext()) {
+                memoryCursor.next();
+                memoryTuple.loadTuple();
+                if (inputTuple[BUILD_PARTITION].removeFromMemory(memoryTuple)) {
+                    // remove from memory
+                    bufferManager.deleteTuple(memoryCursor.getTuplePointer());
+                    memoryCursor.remove();
+                    continue;
+                } else if (inputTuple[BUILD_PARTITION].checkForEarlyExit(memoryTuple)) {
+                    // No more possible comparisons
+                    break;
+                } else if (inputTuple[BUILD_PARTITION].compareJoin(memoryTuple)) {
+                    // add to result
+                    addToResult(inputCursor[BUILD_PARTITION].getAccessor(), inputCursor[BUILD_PARTITION].getTupleId(),
+                            memoryCursor.getAccessor(), memoryCursor.getTupleId(), writer);
+                }
+            }
+        }
+    }
+
+    private void processProbeTuple(IFrameWriter writer) throws HyracksDataException {
+        // append to memory
+        // BUILD Cursor is guaranteed to have next
+        if (mjc.checkToSaveInMemory(inputCursor[BUILD_PARTITION].getAccessor(),
+                inputCursor[BUILD_PARTITION].getTupleId() + 1, inputCursor[PROBE_PARTITION].getAccessor(),
+                inputCursor[PROBE_PARTITION].getTupleId())) {
+            if (!addToMemory(inputCursor[PROBE_PARTITION].getAccessor(), inputCursor[PROBE_PARTITION].getTupleId())) {
+                unfreezeAndClearMemory(writer);
+                if (!addToMemory(inputCursor[PROBE_PARTITION].getAccessor(),
+                        inputCursor[PROBE_PARTITION].getTupleId())) {
+                    throw new RuntimeException("Should Never get called.");
+                }
+            }
+        }
+    }
+
+    private void unfreezeAndClearMemory(IFrameWriter writer) throws HyracksDataException {
+        runFilePointer.reset(runFileStream.getReadPointer(), inputCursor[BUILD_PARTITION].getTupleId());
+        while (buildHasNext() && memoryHasTuples()) {
+            // Process build side from runfile
+            inputCursor[BUILD_PARTITION].next();
+            processBuildTuple(writer);
+        }
+        // Clear memory
+        memoryBuffer.clear();
+        bufferManager.reset();
+        // Start reading
+        runFileStream.startReadingRunFile(inputCursor[BUILD_PARTITION], runFilePointer.getFileOffset());
+        inputCursor[BUILD_PARTITION].resetPosition(runFilePointer.getTupleIndex());
+    }
+
+    private boolean addToMemory(IFrameTupleAccessor accessor, int tupleId) throws HyracksDataException {
+        TuplePointer tp = new TuplePointer();
+        if (bufferManager.insertTuple(accessor, tupleId, tp)) {
+            memoryBuffer.add(tp);
+            return true;
+        }
+        return false;
+    }
+
+    private void addToResult(IFrameTupleAccessor buildAccessor, int buildTupleId, IFrameTupleAccessor probeAccessor,
+            int probeTupleId, IFrameWriter writer) throws HyracksDataException {
+        FrameUtils.appendConcatToWriter(writer, resultAppender, buildAccessor, buildTupleId, probeAccessor,
+                probeTupleId);
+    }
+
+    private boolean memoryHasTuples() {
+        return bufferManager.getNumTuples() > 0;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalInverseJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalInverseJoinUtil.java
new file mode 100644
index 0000000..b45dd98
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalInverseJoinUtil.java
@@ -0,0 +1,60 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+
+public abstract class AbstractIntervalInverseJoinUtil extends AbstractIntervalJoinUtil {
+
+    public AbstractIntervalInverseJoinUtil(int idBuild, int idProbe) {
+        super(idBuild, idProbe);
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart < probeEnd;
+    }
+
+    /**
+     * Left (first argument) interval starts after the Right (second argument) interval ends.
+     */
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart >= probeEnd;
+    }
+
+    @Override
+    public boolean checkToLoadNextProbeTuple(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart >= probeStart;
+    }
+
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalJoinUtil.java
new file mode 100644
index 0000000..80d791c
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AbstractIntervalJoinUtil.java
@@ -0,0 +1,93 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.asterix.runtime.evaluators.functions.temporal.IntervalLogic;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public abstract class AbstractIntervalJoinUtil implements IIntervalJoinUtil {
+
+    protected final int idBuild;
+    protected final int idProbe;
+
+    protected final IntervalLogic il = new IntervalLogic();
+    protected final AIntervalPointable ipBuild = (AIntervalPointable) AIntervalPointable.FACTORY.createPointable();
+    protected final AIntervalPointable ipProbe = (AIntervalPointable) AIntervalPointable.FACTORY.createPointable();
+
+    public AbstractIntervalJoinUtil(int idBuild, int idProbe) {
+        this.idBuild = idBuild;
+        this.idProbe = idProbe;
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart <= probeStart;
+    }
+
+    /**
+     * Left (first argument) interval starts after the Right (second argument) interval ends.
+     */
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart > probeStart;
+    }
+
+    @Override
+    public boolean checkToSaveInResult(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) throws HyracksDataException {
+        IntervalJoinUtil.getIntervalPointable(buildAccessor, buildTupleIndex, idBuild, ipBuild);
+        IntervalJoinUtil.getIntervalPointable(probeAccessor, probeTupleIndex, idProbe, ipProbe);
+        return compareInterval(ipBuild, ipProbe);
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkForEarlyExit(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildEnd = IntervalJoinUtil.getIntervalEnd(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildEnd < probeStart;
+    }
+
+    @Override
+    public abstract boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe)
+            throws HyracksDataException;
+
+    @Override
+    public boolean checkToLoadNextProbeTuple(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildEnd = IntervalJoinUtil.getIntervalEnd(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildEnd > probeStart;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtil.java
new file mode 100644
index 0000000..5dd4c44
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtil.java
@@ -0,0 +1,62 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class AfterIntervalJoinUtil extends AbstractIntervalJoinUtil {
+
+    public AfterIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return true;
+    }
+
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return false;
+    }
+
+    @Override
+    public boolean checkForEarlyExit(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return false;
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.after(ipBuild, ipProbe);
+    }
+
+    @Override
+    public boolean checkToLoadNextProbeTuple(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildEnd = IntervalJoinUtil.getIntervalEnd(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return probeStart <= buildEnd;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..9fe4e9d
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/AfterIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class AfterIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new AfterIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtil.java
new file mode 100644
index 0000000..5212a4d
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtil.java
@@ -0,0 +1,62 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class BeforeIntervalJoinUtil extends AbstractIntervalJoinUtil {
+
+    public BeforeIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart < probeStart;
+    }
+
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return !checkToSaveInMemory(buildAccessor, buildTupleIndex, probeAccessor, probeTupleIndex);
+    }
+
+    @Override
+    public boolean checkForEarlyExit(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return false;
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.before(ipBuild, ipProbe);
+    }
+
+    @Override
+    public boolean checkToLoadNextProbeTuple(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        return true;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..1984caf
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/BeforeIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class BeforeIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new BeforeIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtil.java
new file mode 100644
index 0000000..91dfc66
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtil.java
@@ -0,0 +1,59 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class CoveredByIntervalJoinUtil extends AbstractIntervalInverseJoinUtil {
+
+    public CoveredByIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart <= probeEnd;
+    }
+
+    /**
+     * Left (first argument) interval starts after the Right (second argument) interval ends.
+     */
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart > probeEnd;
+
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.coveredBy(ipBuild, ipProbe);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..4b21ae8
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoveredByIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class CoveredByIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new CoveredByIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtil.java
new file mode 100644
index 0000000..41c8c34
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtil.java
@@ -0,0 +1,34 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class CoversIntervalJoinUtil extends AbstractIntervalJoinUtil {
+
+    public CoversIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.covers(ipBuild, ipProbe);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..862aebe
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/CoversIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class CoversIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new CoversIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtil.java
new file mode 100644
index 0000000..79eb2d7
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtil.java
@@ -0,0 +1,102 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public interface IIntervalJoinUtil {
+
+    /**
+     * Check to see if the right tuple should be added to memory during the merge join.
+     * The memory is used to check the right tuple with the remaining left tuples.
+     * The check is true if the next left tuple could still match with this right tuple.
+     *
+     * @param buildAccessor
+     * @param probeAccessor
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex);
+
+    /**
+     * Check to see if the right tuple should be removed from memory during the merge join.
+     * The memory is used to check the right tuple with the remaining left tuples.
+     * The check is true if the next left tuple is NOT able match with this right tuple.
+     *
+     * @param buildAccessor
+     * @param probeAccessor
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex);
+
+    /**
+     * Check to see if tuples match join condition
+     * The check is true if they match.
+     *
+     * @param buildAccessor
+     * @param buildTupleIndex
+     * @param probeAccessor
+     * @param probeTupleIndex
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean checkToSaveInResult(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) throws HyracksDataException;
+
+    /**
+     * Check to see if the interval matches the join condition.
+     * The check is true if it matches.
+     *
+     * @param ipBuild
+     * @param ipProbe
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException;
+
+    /**
+     * Check to see if the left tuple should stop checking for matches.
+     * The check is true if there can be no more matches
+     *
+     * @param buildAccessor
+     * @param probeAccessor
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean checkForEarlyExit(IFrameTupleAccessor buildAccessor, int buildTupleIndex, IFrameTupleAccessor probeAccessor,
+            int probeTupleIndex);
+
+    /**
+     * Check if next tuple should be loaded into memory.
+     * The check is true if there are more tuples
+     *
+     * @param buildAccessor
+     * @param probeAccessor
+     * @return boolean
+     * @throws HyracksDataException
+     */
+    boolean checkToLoadNextProbeTuple(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex);
+
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..e9c2957
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/IIntervalJoinUtilFactory.java
@@ -0,0 +1,30 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import java.io.Serializable;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public interface IIntervalJoinUtilFactory extends Serializable {
+
+    IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx, int nPartitions)
+            throws HyracksDataException;
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtil.java
new file mode 100644
index 0000000..2bd03a2
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtil.java
@@ -0,0 +1,34 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class OverlappedByIntervalJoinUtil extends AbstractIntervalInverseJoinUtil {
+
+    public OverlappedByIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.overlappedBy(ipBuild, ipProbe);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..d54982a
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappedByIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class OverlappedByIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new OverlappedByIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtil.java
new file mode 100644
index 0000000..9aeb09b
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtil.java
@@ -0,0 +1,83 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.asterix.runtime.operators.joins.interval.utils.memory.IntervalJoinUtil;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class OverlappingIntervalJoinUtil extends AbstractIntervalJoinUtil {
+    private final long partitionStart;
+
+    public OverlappingIntervalJoinUtil(int buildKey, int probeKey, long partitionStart) {
+        super(buildKey, probeKey);
+        this.partitionStart = partitionStart;
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkToSaveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart < probeEnd;
+    }
+
+    /**
+     * Right (second argument) interval starts before left (first argument) interval ends.
+     */
+    @Override
+    public boolean checkForEarlyExit(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long probeStart = IntervalJoinUtil.getIntervalStart(probeAccessor, probeTupleIndex, idProbe);
+        long buildEnd = IntervalJoinUtil.getIntervalEnd(buildAccessor, buildTupleIndex, idBuild);
+        return buildEnd <= probeStart;
+    }
+
+    /**
+     * Left (first argument) interval starts after the Right (second argument) interval ends.
+     */
+    @Override
+    public boolean checkToRemoveInMemory(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) {
+        long buildStart = IntervalJoinUtil.getIntervalStart(buildAccessor, buildTupleIndex, idBuild);
+        long probeEnd = IntervalJoinUtil.getIntervalEnd(probeAccessor, probeTupleIndex, idProbe);
+        return buildStart >= probeEnd;
+    }
+
+    @Override
+    public boolean checkToSaveInResult(IFrameTupleAccessor buildAccessor, int buildTupleIndex,
+            IFrameTupleAccessor probeAccessor, int probeTupleIndex) throws HyracksDataException {
+        IntervalJoinUtil.getIntervalPointable(buildAccessor, buildTupleIndex, idBuild, ipBuild);
+        IntervalJoinUtil.getIntervalPointable(probeAccessor, probeTupleIndex, idProbe, ipProbe);
+        if (ipBuild.getStartValue() < partitionStart && ipProbe.getStartValue() < partitionStart) {
+            // These tuples match in a different partition
+            return false;
+        }
+        return compareInterval(ipBuild, ipProbe);
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.overlapping(ipBuild, ipProbe);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..a77ceb2
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlappingIntervalJoinUtilFactory.java
@@ -0,0 +1,71 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADateSerializerDeserializer;
+import org.apache.asterix.dataflow.data.nontagged.serde.ADateTimeSerializerDeserializer;
+import org.apache.asterix.dataflow.data.nontagged.serde.ATimeSerializerDeserializer;
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public class OverlappingIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+    private final RangeMap rangeMap;
+
+    public OverlappingIntervalJoinUtilFactory(RangeMap rangeMap) {
+        this.rangeMap = rangeMap;
+    }
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) throws HyracksDataException {
+        int fieldIndex = 0;
+        int partition = ctx.getTaskAttemptId().getTaskId().getPartition();
+        //Calculate Partitions slot
+        int nRanges = rangeMap.getSplitCount() + 1;
+        double rangesPerPart = 1.0;
+        if (nRanges > nPartitions) {
+            rangesPerPart = ((double) nRanges) / nPartitions;
+        }
+        int slot = ((int) Math.ceil(partition * rangesPerPart) % nRanges) - 1;
+        //Find Partitions Start Value based on slot
+        long partitionStart = Long.MIN_VALUE;
+        if (slot >= 0) {
+            switch (ATypeTag.VALUE_TYPE_MAPPING[rangeMap.getTag(fieldIndex, slot)]) {
+                case DATETIME:
+                    partitionStart = ADateTimeSerializerDeserializer.getChronon(rangeMap.getByteArray(),
+                            rangeMap.getStartOffset(fieldIndex, slot) + 1);
+                    break;
+                case DATE:
+                    partitionStart = ADateSerializerDeserializer.getChronon(rangeMap.getByteArray(),
+                            rangeMap.getStartOffset(fieldIndex, slot) + 1);
+                    break;
+                case TIME:
+                    partitionStart = ATimeSerializerDeserializer.getChronon(rangeMap.getByteArray(),
+                            rangeMap.getStartOffset(fieldIndex, slot) + 1);
+                    break;
+                default:
+                    throw new HyracksDataException("RangeMap type is not supported");
+            }
+        }
+        return new OverlappingIntervalJoinUtil(buildKey, probeKey, partitionStart);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtil.java
new file mode 100644
index 0000000..933c565
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtil.java
@@ -0,0 +1,34 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class OverlapsIntervalJoinUtil extends AbstractIntervalJoinUtil {
+
+    public OverlapsIntervalJoinUtil(int buildKey, int probeKey) {
+        super(buildKey, probeKey);
+    }
+
+    @Override
+    public boolean compareInterval(AIntervalPointable ipBuild, AIntervalPointable ipProbe) throws HyracksDataException {
+        return il.overlaps(ipBuild, ipProbe);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtilFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtilFactory.java
new file mode 100644
index 0000000..22dc816
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/OverlapsIntervalJoinUtilFactory.java
@@ -0,0 +1,31 @@
+/*
+ * 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.runtime.operators.joins.interval.utils;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+
+public class OverlapsIntervalJoinUtilFactory implements IIntervalJoinUtilFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IIntervalJoinUtil createIntervalMergeJoinUtil(int buildKey, int probeKey, IHyracksTaskContext ctx,
+            int nPartitions) {
+        return new OverlapsIntervalJoinUtil(buildKey, probeKey);
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/AbstractTupleCursor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/AbstractTupleCursor.java
new file mode 100644
index 0000000..5734dec
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/AbstractTupleCursor.java
@@ -0,0 +1,44 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+
+public abstract class AbstractTupleCursor<T> implements ITupleCursor<T> {
+
+    public static final int UNSET = -2;
+    public static final int INITIALIZED = -1;
+    public int tupleId = UNSET;
+    protected IFrameTupleAccessor accessor;
+
+    @Override
+    public void next() {
+        ++tupleId;
+    }
+
+    @Override
+    public IFrameTupleAccessor getAccessor() {
+        return accessor;
+    }
+
+    @Override
+    public int getTupleId() {
+        return tupleId;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/FrameTupleCursor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/FrameTupleCursor.java
new file mode 100644
index 0000000..b6c9b2e
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/FrameTupleCursor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
+import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+
+public class FrameTupleCursor extends AbstractTupleCursor<ByteBuffer> {
+
+    public FrameTupleCursor(RecordDescriptor recordDescriptor) {
+        accessor = new FrameTupleAccessor(recordDescriptor);
+    }
+
+    @Override
+    public boolean hasNext() {
+        return INITIALIZED < (tupleId + 1) && (tupleId + 1) < accessor.getTupleCount();
+    }
+
+    @Override
+    public void reset(ByteBuffer byteBuffer) {
+        accessor.reset(byteBuffer);
+        tupleId = INITIALIZED;
+    }
+
+    public void resetPosition(int tupleId) {
+        this.tupleId = tupleId;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/ITupleCursor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/ITupleCursor.java
new file mode 100644
index 0000000..8572ceb
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/ITupleCursor.java
@@ -0,0 +1,85 @@
+/*
+ * 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.
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+
+/**
+ * Represents an index cursor. The expected use
+ * cursor = new cursor();
+ * while(predicate){
+ * -cursor.reset()
+ * -while (cursor.hasNext()){
+ * --cursor.next()
+ * -}
+ * }
+ */
+public interface ITupleCursor<T> {
+
+    /**
+     * Checks if the Current Tuple Index Exists
+     *
+     * @return
+     */
+    boolean hasNext();
+
+    /**
+     * Increments the Tuple Index
+     *
+     */
+    void next();
+
+    /**
+     * Used in FrameTupleCursor to reset the accessor to the buffer
+     *
+     * @param param
+     */
+    void reset(T param);
+
+    /**
+     * Return the accessor
+     *
+     * @return
+     */
+    IFrameTupleAccessor getAccessor();
+
+    /**
+     * Return the tuple id.
+     *
+     * @return
+     */
+    int getTupleId();
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalJoinUtil.java
new file mode 100644
index 0000000..8a065f0
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalJoinUtil.java
@@ -0,0 +1,58 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer;
+import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+
+public class IntervalJoinUtil {
+
+    private IntervalJoinUtil() {
+    }
+
+    public static void getIntervalPointable(IFrameTupleAccessor accessor, int tupleId, int fieldId,
+            AIntervalPointable ip) {
+        int start = getIntervalOffset(accessor, tupleId, fieldId);
+        int length = accessor.getFieldLength(tupleId, fieldId) - 1;
+        ip.set(accessor.getBuffer().array(), start, length);
+    }
+
+    public static int getIntervalOffset(IFrameTupleAccessor accessor, int tupleId, int fieldId) {
+        return getIntervalOffsetWithTag(accessor, tupleId, fieldId) + 1;
+    }
+
+    public static int getIntervalOffsetWithTag(IFrameTupleAccessor accessor, int tupleId, int fieldId) {
+        int start = accessor.getTupleStartOffset(tupleId) + accessor.getFieldSlotsLength()
+                + accessor.getFieldStartOffset(tupleId, fieldId);
+        return start;
+    }
+
+    public static long getIntervalStart(IFrameTupleAccessor accessor, int tupleId, int fieldId) {
+        int start = getIntervalOffset(accessor, tupleId, fieldId);
+        long intervalStart = AIntervalSerializerDeserializer.getIntervalStart(accessor.getBuffer().array(), start);
+        return intervalStart;
+    }
+
+    public static long getIntervalEnd(IFrameTupleAccessor accessor, int tupleId, int fieldId) {
+        int start = getIntervalOffset(accessor, tupleId, fieldId);
+        long intervalEnd = AIntervalSerializerDeserializer.getIntervalEnd(accessor.getBuffer().array(), start);
+        return intervalEnd;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalSideTuple.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalSideTuple.java
new file mode 100644
index 0000000..ac30067
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/IntervalSideTuple.java
@@ -0,0 +1,79 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer;
+import org.apache.asterix.runtime.operators.joins.interval.utils.IIntervalJoinUtil;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class IntervalSideTuple {
+    // Tuple access
+    int fieldId;
+    ITupleCursor cursor;
+
+    long start;
+    long end;
+
+    // Join details
+    final IIntervalJoinUtil imjc;
+
+    public IntervalSideTuple(IIntervalJoinUtil imjc, ITupleCursor cursor, int fieldId) {
+        this.imjc = imjc;
+        this.cursor = cursor;
+        this.fieldId = fieldId;
+    }
+
+    public void loadTuple() {
+        int offset = IntervalJoinUtil.getIntervalOffset(cursor.getAccessor(), cursor.getTupleId(), fieldId);
+        start = AIntervalSerializerDeserializer.getIntervalStart(cursor.getAccessor().getBuffer().array(), offset);
+        end = AIntervalSerializerDeserializer.getIntervalEnd(cursor.getAccessor().getBuffer().array(), offset);
+    }
+
+    public int getTupleIndex() {
+        return cursor.getTupleId();
+    }
+
+    public ITupleCursor getCursor() {
+        return cursor;
+    }
+
+    public long getStart() {
+        return start;
+    }
+
+    public long getEnd() {
+        return end;
+    }
+
+    public boolean compareJoin(IntervalSideTuple ist) throws HyracksDataException {
+        return imjc.checkToSaveInResult(cursor.getAccessor(), cursor.getTupleId(), ist.cursor.getAccessor(),
+                ist.cursor.getTupleId());
+    }
+
+    public boolean removeFromMemory(IntervalSideTuple ist) {
+        return imjc.checkToRemoveInMemory(cursor.getAccessor(), cursor.getTupleId(), ist.cursor.getAccessor(),
+                ist.cursor.getTupleId());
+    }
+
+    public boolean checkForEarlyExit(IntervalSideTuple ist) {
+        return imjc.checkForEarlyExit(cursor.getAccessor(), cursor.getTupleId(), ist.cursor.getAccessor(),
+                ist.cursor.getTupleId());
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFilePointer.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFilePointer.java
new file mode 100644
index 0000000..1247948
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFilePointer.java
@@ -0,0 +1,96 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import java.util.Comparator;
+
+import org.apache.hyracks.dataflow.std.structures.IResetable;
+
+public final class RunFilePointer implements IResetable<RunFilePointer> {
+    public static final int INVALID_ID = -1;
+    private long fileOffset;
+    private int tupleIndex;
+
+    public static final Comparator<RunFilePointer> ASC = (tp1, tp2) -> {
+        int c = (int) (tp1.getFileOffset() - tp2.getFileOffset());
+        if (c == 0) {
+            c = tp1.getTupleIndex() - tp2.getTupleIndex();
+        }
+        return c;
+    };
+
+    public static final Comparator<RunFilePointer> DESC = (tp1, tp2) -> {
+        int c = (int) (tp2.getFileOffset() - tp1.getFileOffset());
+        if (c == 0) {
+            c = tp2.getTupleIndex() - tp1.getTupleIndex();
+        }
+        return c;
+    };
+
+    public RunFilePointer() {
+        this(INVALID_ID, INVALID_ID);
+    }
+
+    public RunFilePointer(long fileOffset, int tupleId) {
+        reset(fileOffset, tupleId);
+    }
+
+    public long getFileOffset() {
+        return fileOffset;
+    }
+
+    public int getTupleIndex() {
+        return tupleIndex;
+    }
+
+    @Override
+    public void reset(RunFilePointer other) {
+        reset(other.fileOffset, other.tupleIndex);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        } else if (o == null || getClass() != o.getClass()) {
+            return false;
+        } else {
+            final RunFilePointer that = (RunFilePointer) o;
+            return fileOffset == that.fileOffset && tupleIndex == that.tupleIndex;
+        }
+    }
+
+    @Override
+    public int hashCode() {
+        int result = (int) fileOffset;
+        result = 31 * result + tupleIndex;
+        return result;
+    }
+
+    public void reset(long fileOffset, int tupleId) {
+        this.fileOffset = fileOffset;
+        this.tupleIndex = tupleId;
+    }
+
+    @Override
+    public String toString() {
+        return "RunFilePointer(" + fileOffset + ", " + tupleIndex + ")";
+    }
+
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
new file mode 100644
index 0000000..07b8a00
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
@@ -0,0 +1,204 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import java.nio.ByteBuffer;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hyracks.api.comm.IFrame;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.comm.IFrameTupleAppender;
+import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.FileReference;
+import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import org.apache.hyracks.dataflow.common.io.RunFileReader;
+import org.apache.hyracks.dataflow.common.io.RunFileWriter;
+
+public class RunFileStream {
+
+    private final String key;
+    private final IFrame runFileBuffer;
+    private final IFrameTupleAppender runFileAppender;
+    private RunFileWriter runFileWriter;
+    private RunFileReader runFileReader;
+    private FileReference runfile;
+
+    private final IHyracksTaskContext ctx;
+
+    private long runFileCounter = 0;
+    private long readCount = 0;
+    private long writeCount = 0;
+    private long totalTupleCount = 0;
+    private long previousReadPointer;
+
+    private boolean reading = false;
+    private boolean writing = false;
+
+    /**
+     * The RunFileSream uses two frames to buffer read and write operations.
+     * WorkFlow: CreateRunFileWriter, Write information, close it, flush it,
+     * go to the next frame, and repeat.
+     *
+     * @param ctx
+     * @param key
+     * @throws HyracksDataException
+     */
+    public RunFileStream(IHyracksTaskContext ctx, String key) throws HyracksDataException {
+        this.ctx = ctx;
+        this.key = key;
+
+        // TODO make the stream only use one buffer.
+        runFileBuffer = new VSizeFrame(ctx);
+        runFileAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+
+    }
+
+    public long getFileCount() {
+        return runFileCounter;
+    }
+
+    public long getTupleCount() {
+        return totalTupleCount;
+    }
+
+    public long getReadCount() {
+        return readCount;
+    }
+
+    public long getWriteCount() {
+        return writeCount;
+    }
+
+    public void createRunFileWriting() throws HyracksDataException {
+        runFileCounter++;
+        String prefix = key + '-' + runFileCounter + '-' + this.toString();
+        runfile = ctx.getJobletContext().createManagedWorkspaceFile(prefix);
+        if (runFileWriter != null) {
+            runFileWriter.close();
+        }
+
+        runFileWriter = new RunFileWriter(runfile, ctx.getIoManager());
+        runFileWriter.open();
+        totalTupleCount = 0;
+    }
+
+    public void startRunFileWriting() throws HyracksDataException {
+        writing = true;
+        runFileBuffer.reset();
+    }
+
+    public void addToRunFile(IFrameTupleAccessor accessor, int tupleId) throws HyracksDataException {
+        if (!runFileAppender.append(accessor, tupleId)) {
+            runFileAppender.write(runFileWriter, true);
+            writeCount++;
+            runFileAppender.append(accessor, tupleId);
+        }
+        totalTupleCount++;
+    }
+
+    public void addToRunFile(FrameTupleCursor cursor) throws HyracksDataException {
+        if (!runFileAppender.append(cursor.getAccessor(), cursor.getTupleId())) {
+            runFileAppender.write(runFileWriter, true);
+            writeCount++;
+            runFileAppender.append(cursor.getAccessor(), cursor.getTupleId());
+        }
+        totalTupleCount++;
+    }
+
+    public void startReadingRunFile(FrameTupleCursor cursor) throws HyracksDataException {
+        startReadingRunFile(cursor, 0);
+    }
+
+    public void startReadingRunFile(FrameTupleCursor cursor, long startOffset) throws HyracksDataException {
+        if (runFileReader != null) {
+            runFileReader.close();
+        }
+        reading = true;
+        // Create reader
+        runFileReader = runFileWriter.createReader();
+        runFileReader.open();
+        runFileReader.seek(startOffset);
+        previousReadPointer = 0;
+        // Load first frame
+        loadNextBuffer(cursor);
+    }
+
+    public boolean loadNextBuffer(FrameTupleCursor cursor) throws HyracksDataException {
+        final long tempFrame = runFileReader.position();
+        if (runFileReader.nextFrame(runFileBuffer)) {
+            previousReadPointer = tempFrame;
+            cursor.reset(runFileBuffer.getBuffer());
+            readCount++;
+            return true;
+        }
+        return false;
+    }
+
+    public void flushRunFile() throws HyracksDataException {
+        writing = false;
+        // Flush buffer.
+        if (runFileAppender.getTupleCount() > 0) {
+            runFileAppender.write(runFileWriter, true);
+            writeCount++;
+        }
+        runFileBuffer.reset();
+    }
+
+    public void closeRunFileReading() throws HyracksDataException {
+        reading = false;
+        runFileReader.close();
+        previousReadPointer = -1;
+    }
+
+    public void close() throws HyracksDataException {
+        if (runFileReader != null) {
+            runFileReader.close();
+        }
+        if (runFileWriter != null) {
+            runFileWriter.close();
+        }
+    }
+
+    public void removeRunFile() {
+        if (runfile != null) {
+            FileUtils.deleteQuietly(runfile.getFile());
+        }
+    }
+
+    public boolean isReading() {
+        return reading;
+    }
+
+    public boolean isWriting() {
+        return writing;
+    }
+
+    public long getReadPointer() {
+        if (runFileReader != null) {
+            return previousReadPointer;
+        }
+        return -1;
+    }
+
+    public ByteBuffer getAppenderBuffer() {
+        return runFileAppender.getBuffer();
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/TuplePointerCursor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/TuplePointerCursor.java
new file mode 100644
index 0000000..b7fd6f0
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/TuplePointerCursor.java
@@ -0,0 +1,61 @@
+/*
+ * 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.runtime.operators.joins.interval.utils.memory;
+
+import java.util.Iterator;
+
+import org.apache.hyracks.dataflow.std.buffermanager.ITuplePointerAccessor;
+import org.apache.hyracks.dataflow.std.structures.TuplePointer;
+
+public class TuplePointerCursor extends AbstractTupleCursor<Iterator<TuplePointer>> {
+
+    Iterator<TuplePointer> iterator;
+    TuplePointer tp;
+
+    public TuplePointerCursor(ITuplePointerAccessor accessor) {
+        this.accessor = accessor;
+    }
+
+    @Override
+    public boolean hasNext() {
+        return iterator.hasNext();
+    }
+
+    @Override
+    public void next() {
+        TuplePointer tp = iterator.next();
+        this.tp = tp;
+        tupleId = tp.getTupleIndex();
+        ((ITuplePointerAccessor) accessor).reset(tp);
+    }
+
+    @Override
+    public void reset(Iterator<TuplePointer> iterator) {
+        this.iterator = iterator;
+        tupleId = INITIALIZED;
+    }
+
+    public void remove() {
+        iterator.remove();
+    }
+
+    public TuplePointer getTuplePointer() {
+        return tp;
+    }
+}
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
index 145be86..508eb76 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
@@ -346,10 +346,11 @@
                 .collect(Collectors.toSet());
     }
 
-    public DatasetResourceReference getLocalResourceReference(String absoluteFilePath) throws HyracksDataException {
+    public Optional<DatasetResourceReference> getLocalResourceReference(String absoluteFilePath)
+            throws HyracksDataException {
         final String localResourcePath = StoragePathUtil.getIndexFileRelativePath(absoluteFilePath);
         final LocalResource lr = get(localResourcePath);
-        return DatasetResourceReference.of(lr);
+        return lr != null ? Optional.of(DatasetResourceReference.of(lr)) : Optional.empty();
     }
 
     /**
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 63c2d80..a512fbd 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -1519,14 +1519,9 @@
         <version>4.5.11</version>
       </dependency>
       <dependency>
-        <groupId>net.razorvine</groupId>
-        <artifactId>pyrolite</artifactId>
-        <version>4.30</version>
-      </dependency>
-      <dependency>
-        <groupId>net.razorvine</groupId>
-        <artifactId>serpent</artifactId>
-        <version>1.23</version>
+        <groupId>org.msgpack</groupId>
+        <artifactId>msgpack-core</artifactId>
+        <version>0.8.20</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
diff --git a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
index 46e80be..ac22b60 100644
--- a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
+++ b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
@@ -135,7 +135,7 @@
         return errorCode;
     }
 
-    public Object[] getParams() {
+    public Serializable[] getParams() {
         return params;
     }
 
diff --git a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/utils/ListSet.java b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/utils/ListSet.java
index 45cd32a..3f2170a 100644
--- a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/utils/ListSet.java
+++ b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/utils/ListSet.java
@@ -25,7 +25,7 @@
 import java.util.Set;
 
 public class ListSet<E> implements Set<E> {
-    private List<E> list = new ArrayList<E>();
+    private final List<E> list = new ArrayList<E>();
 
     public ListSet() {
     }
@@ -36,17 +36,19 @@
 
     @Override
     public boolean add(E arg0) {
-        if (list.contains(arg0))
+        if (list.contains(arg0)) {
             return false;
+        }
         return list.add(arg0);
     }
 
     @Override
     public boolean addAll(Collection<? extends E> arg0) {
-        for (E item : arg0)
-            if (list.contains(item))
-                return false;
-        return list.addAll(arg0);
+        boolean modified = false;
+        for (E item : arg0) {
+            modified |= add(item);
+        }
+        return modified;
     }
 
     @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/AbstractCompilerFactoryBuilder.java b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/AbstractCompilerFactoryBuilder.java
index dbc859c..3f03cc8 100644
--- a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/AbstractCompilerFactoryBuilder.java
+++ b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/AbstractCompilerFactoryBuilder.java
@@ -42,6 +42,7 @@
 import org.apache.hyracks.algebricks.data.IPrinterFactoryProvider;
 import org.apache.hyracks.algebricks.data.ISerializerDeserializerProvider;
 import org.apache.hyracks.algebricks.data.ITypeTraitProvider;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IPredicateEvaluatorFactoryProvider;
 import org.apache.hyracks.api.exceptions.IWarningCollector;
@@ -65,6 +66,7 @@
     protected IConflictingTypeResolver conflictingTypeResolver;
     protected IExpressionEvalSizeComputer expressionEvalSizeComputer;
     protected IMissingWriterFactory missingWriterFactory;
+    protected IUnnestingPositionWriterFactory unnestingPositionWriterFactory;
     protected INormalizedKeyComputerFactoryProvider normalizedKeyComputerFactoryProvider;
     protected IPartialAggregationTypeComputer partialAggregationTypeComputer;
     protected IMergeAggregationExpressionFactory mergeAggregationExpressionFactory;
@@ -187,6 +189,14 @@
         return missingWriterFactory;
     }
 
+    public void setUnnestingPositionWriterFactory(IUnnestingPositionWriterFactory unnestingPositionWriterFactory) {
+        this.unnestingPositionWriterFactory = unnestingPositionWriterFactory;
+    }
+
+    public IUnnestingPositionWriterFactory getUnnestingPositionWriterFactory() {
+        return unnestingPositionWriterFactory;
+    }
+
     public void setExpressionEvalSizeComputer(IExpressionEvalSizeComputer expressionEvalSizeComputer) {
         this.expressionEvalSizeComputer = expressionEvalSizeComputer;
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
index 0fd107f..49be31c 100644
--- a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
+++ b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
@@ -102,10 +102,11 @@
                                 serializerDeserializerProvider, hashFunctionFactoryProvider, hashFunctionFamilyProvider,
                                 comparatorFactoryProvider, typeTraitProvider, binaryBooleanInspectorFactory,
                                 binaryIntegerInspectorFactory, printerProvider, missingWriterFactory,
-                                normalizedKeyComputerFactoryProvider, expressionRuntimeProvider, expressionTypeComputer,
-                                oc, expressionEvalSizeComputer, partialAggregationTypeComputer,
-                                predEvaluatorFactoryProvider, physicalOptimizationConfig.getFrameSize(),
-                                clusterLocations, warningCollector, maxWarnings);
+                                unnestingPositionWriterFactory, normalizedKeyComputerFactoryProvider,
+                                expressionRuntimeProvider, expressionTypeComputer, oc, expressionEvalSizeComputer,
+                                partialAggregationTypeComputer, predEvaluatorFactoryProvider,
+                                physicalOptimizationConfig.getFrameSize(), clusterLocations, warningCollector,
+                                maxWarnings);
 
                         PlanCompiler pc = new PlanCompiler(context);
                         return pc.compilePlan(plan, jobEventListenerFactory);
diff --git a/hyracks-fullstack/algebricks/algebricks-core/pom.xml b/hyracks-fullstack/algebricks/algebricks-core/pom.xml
index 5baa01e..b6c19f0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/pom.xml
+++ b/hyracks-fullstack/algebricks/algebricks-core/pom.xml
@@ -102,5 +102,14 @@
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
     </dependency>
+    <dependency>
+      <groupId>it.unimi.dsi</groupId>
+      <artifactId>fastutil</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
index 726a5df..166ab9a 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
@@ -25,6 +25,8 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableEvalSizeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+import org.apache.hyracks.algebricks.core.algebra.plan.PlanStabilityVerifier;
+import org.apache.hyracks.algebricks.core.algebra.plan.PlanStructureVerifier;
 import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
 import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
 import org.apache.hyracks.algebricks.core.algebra.properties.ILogicalPropertiesVector;
@@ -87,4 +89,8 @@
     public INodeDomain getComputationNodeDomain();
 
     public IWarningCollector getWarningCollector();
+
+    public PlanStructureVerifier getPlanStructureVerifier();
+
+    public PlanStabilityVerifier getPlanStabilityVerifier();
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java
index 84d19c1..b7f6d62 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java
@@ -40,6 +40,7 @@
     INDEX_BULKLOAD,
     INDEX_INSERT_DELETE,
     INSERT_DELETE,
+    INTERVAL_MERGE_JOIN,
     LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH,
     MATERIALIZE,
     MICRO_PRE_CLUSTERED_GROUP_BY,
@@ -48,6 +49,8 @@
     NESTED_LOOP,
     NESTED_TUPLE_SOURCE,
     ONE_TO_ONE_EXCHANGE,
+    PARTIAL_BROADCAST_RANGE_FOLLOWING_EXCHANGE,
+    PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE,
     PRE_CLUSTERED_GROUP_BY,
     PRE_SORTED_DISTINCT_BY,
     RANDOM_PARTITION_EXCHANGE,
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java
index 1cc206f..81aac03 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java
@@ -21,10 +21,12 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.commons.lang3.mutable.MutableObject;
@@ -54,23 +56,19 @@
 
     public AbstractFunctionCallExpression(FunctionKind kind, IFunctionInfo finfo,
             List<Mutable<ILogicalExpression>> arguments) {
-        this.kind = kind;
-        this.finfo = finfo;
-        this.arguments = arguments;
+        this.kind = Objects.requireNonNull(kind);
+        this.finfo = Objects.requireNonNull(finfo);
+        this.arguments = Objects.requireNonNull(arguments);
     }
 
     public AbstractFunctionCallExpression(FunctionKind kind, IFunctionInfo finfo) {
-        this.kind = kind;
-        this.finfo = finfo;
-        this.arguments = new ArrayList<Mutable<ILogicalExpression>>();
+        this(kind, finfo, new ArrayList<>());
     }
 
     public AbstractFunctionCallExpression(FunctionKind kind, IFunctionInfo finfo,
             Mutable<ILogicalExpression>... expressions) {
         this(kind, finfo);
-        for (Mutable<ILogicalExpression> e : expressions) {
-            this.arguments.add(e);
-        }
+        Collections.addAll(arguments, expressions);
     }
 
     public void setOpaqueParameters(Object[] opaqueParameters) {
@@ -212,7 +210,7 @@
 
     @Override
     public int hashCode() {
-        int h = finfo.hashCode();
+        int h = getFunctionIdentifier().hashCode();
         for (Mutable<ILogicalExpression> e : arguments) {
             h = h * 41 + e.getValue().hashCode();
         }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/ConstantExpression.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/ConstantExpression.java
index 42ff3c0..40e729d 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/ConstantExpression.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/ConstantExpression.java
@@ -19,9 +19,7 @@
 package org.apache.hyracks.algebricks.core.algebra.expressions;
 
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -31,7 +29,7 @@
 import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionVisitor;
 
 public final class ConstantExpression extends AbstractLogicalExpression {
-    private IAlgebricksConstantValue value;
+    private final IAlgebricksConstantValue value;
 
     public static final ConstantExpression TRUE = new ConstantExpression(new IAlgebricksConstantValue() {
 
@@ -115,8 +113,6 @@
         }
     });
 
-    private Map<Object, IExpressionAnnotation> annotationMap = new HashMap<>();
-
     public ConstantExpression(IAlgebricksConstantValue value) {
         this.value = value;
     }
@@ -125,10 +121,6 @@
         return value;
     }
 
-    public void setValue(IAlgebricksConstantValue value) {
-        this.value = value;
-    }
-
     @Override
     public LogicalExpressionTag getExpressionTag() {
         return LogicalExpressionTag.CONSTANT;
@@ -170,21 +162,13 @@
 
     @Override
     public AbstractLogicalExpression cloneExpression() {
-        Map<Object, IExpressionAnnotation> m = new HashMap<>();
-        annotationMap.forEach((key, value1) -> m.put(key, value1.copy()));
         ConstantExpression c = new ConstantExpression(value);
-        c.annotationMap = m;
         c.setSourceLocation(sourceLoc);
         return c;
     }
 
-    public Map<Object, IExpressionAnnotation> getAnnotations() {
-        return annotationMap;
-    }
-
     @Override
     public boolean splitIntoConjuncts(List<Mutable<ILogicalExpression>> conjs) {
         return false;
     }
-
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/functions/FunctionIdentifier.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/functions/FunctionIdentifier.java
index 74c1ba5..db5a959 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/functions/FunctionIdentifier.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/functions/FunctionIdentifier.java
@@ -19,6 +19,7 @@
 package org.apache.hyracks.algebricks.core.algebra.functions;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 public class FunctionIdentifier implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -29,20 +30,24 @@
 
     public static final int VARARGS = -1;
 
-    public FunctionIdentifier(String namespace, String name) {
-        this(namespace, name, VARARGS);
-    }
-
     public FunctionIdentifier(String namespace, String name, int arity) {
         this.namespace = namespace;
         this.name = name;
         this.arity = arity;
     }
 
+    public String getNamespace() {
+        return namespace;
+    }
+
     public String getName() {
         return name;
     }
 
+    public int getArity() {
+        return arity;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (super.equals(o)) {
@@ -50,26 +55,18 @@
         }
         if (o instanceof FunctionIdentifier) {
             FunctionIdentifier ofi = (FunctionIdentifier) o;
-            return ofi.getNamespace().equals(getNamespace()) && ofi.name.equals(name);
+            return namespace.equals(ofi.namespace) && name.equals(ofi.name) && arity == ofi.arity;
         }
         return false;
     }
 
     @Override
     public int hashCode() {
-        return name.hashCode() + namespace.hashCode();
+        return Objects.hash(namespace, name, arity);
     }
 
     @Override
     public String toString() {
-        return getNamespace() + ":" + name;
-    }
-
-    public int getArity() {
-        return arity;
-    }
-
-    public String getNamespace() {
-        return namespace;
+        return namespace + ':' + name + '#' + arity;
     }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
index 6d001dc..7aa3640 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
@@ -75,8 +75,9 @@
 
     public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getDeleteRuntime(IDataSource<S> dataSource,
             IOperatorSchema propagatedSchema, IVariableTypeEnvironment typeEnv, List<LogicalVariable> keys,
-            LogicalVariable payLoadVar, List<LogicalVariable> additionalNonKeyFields, RecordDescriptor inputRecordDesc,
-            JobGenContext context, JobSpecification jobSpec) throws AlgebricksException;
+            LogicalVariable payLoadVar, List<LogicalVariable> additionalNonKeyFields,
+            List<LogicalVariable> additionalNonFilteringFields, RecordDescriptor inputRecordDesc, JobGenContext context,
+            JobSpecification jobSpec) throws AlgebricksException;
 
     /**
      * Creates the insert runtime of IndexInsertDeletePOperator, which models
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java
index c2d2cfa..5fc69b2 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java
@@ -66,6 +66,11 @@
         return variableTypes;
     }
 
+    @Override
+    public boolean isMap() {
+        return true;
+    }
+
     /**
      * If propagateInput is true, then propagates the input variables.
      */
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestNonMapOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestNonMapOperator.java
index 1659c46..5c485d5 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestNonMapOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestNonMapOperator.java
@@ -23,22 +23,15 @@
 import java.util.List;
 
 import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.properties.VariablePropagationPolicy;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
 
 public abstract class AbstractUnnestNonMapOperator extends AbstractUnnestOperator {
 
     protected LogicalVariable positionalVariable;
 
     /**
-     * Specify the writer of the positional variable
-     */
-    protected IUnnestingPositionWriter positionWriter;
-
-    /**
      * Specify the type of the positional variable
      */
     protected Object positionalVariableType;
@@ -48,12 +41,10 @@
     }
 
     public AbstractUnnestNonMapOperator(LogicalVariable variable, Mutable<ILogicalExpression> expression,
-            LogicalVariable positionalVariable, Object positionalVariableType,
-            IUnnestingPositionWriter positionWriter) {
+            LogicalVariable positionalVariable, Object positionalVariableType) {
         this(variable, expression);
         this.setPositionalVariable(positionalVariable);
         this.setPositionalVariableType(positionalVariableType);
-        this.setPositionWriter(positionWriter);
     }
 
     public LogicalVariable getVariable() {
@@ -68,12 +59,8 @@
         return positionalVariable;
     }
 
-    public void setPositionWriter(IUnnestingPositionWriter positionWriter) {
-        this.positionWriter = positionWriter;
-    }
-
-    public IUnnestingPositionWriter getPositionWriter() {
-        return positionalVariable != null ? positionWriter : null;
+    public boolean hasPositionalVariable() {
+        return positionalVariable != null;
     }
 
     public void setPositionalVariableType(Object positionalVariableType) {
@@ -84,6 +71,13 @@
         return positionalVariableType;
     }
 
+    @Override
+    public boolean isMap() {
+        //TODO(dmitry): unnest with positional variable is not a 'map'
+        //need to return !hasPositionalVariable();
+        return true;
+    }
+
     protected static <E> List<E> makeSingletonList(E item) {
         List<E> array = new ArrayList<>(1);
         array.add(item);
@@ -95,8 +89,7 @@
         return new VariablePropagationPolicy() {
 
             @Override
-            public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources)
-                    throws AlgebricksException {
+            public void propagateVariables(IOperatorSchema target, IOperatorSchema... sources) {
                 if (sources.length > 0) {
                     target.addAllVariables(sources[0]);
                 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestOperator.java
index 1b07e2f..327d797 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestOperator.java
@@ -40,11 +40,6 @@
     }
 
     @Override
-    public boolean isMap() {
-        return true;
-    }
-
-    @Override
     public boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform visitor) throws AlgebricksException {
         return visitor.transform(expression);
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/LeftOuterUnnestOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/LeftOuterUnnestOperator.java
index bdc3227..8c95a3f 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/LeftOuterUnnestOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/LeftOuterUnnestOperator.java
@@ -26,7 +26,6 @@
 import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
 import org.apache.hyracks.algebricks.core.algebra.typing.PropagatingTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
 
 public class LeftOuterUnnestOperator extends AbstractUnnestNonMapOperator {
 
@@ -35,9 +34,8 @@
     }
 
     public LeftOuterUnnestOperator(LogicalVariable variable, Mutable<ILogicalExpression> expression,
-            LogicalVariable positionalVariable, Object positionalVariableType,
-            IUnnestingPositionWriter positionWriter) {
-        super(variable, expression, positionalVariable, positionalVariableType, positionWriter);
+            LogicalVariable positionalVariable, Object positionalVariableType) {
+        super(variable, expression, positionalVariable, positionalVariableType);
     }
 
     @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnionAllOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnionAllOperator.java
index ba5ef5a..45c6e2f 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnionAllOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnionAllOperator.java
@@ -35,7 +35,7 @@
 public class UnionAllOperator extends AbstractLogicalOperator {
 
     // (left-var, right-var, out-var)
-    private List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMap;
+    private final List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMap;
 
     public UnionAllOperator(List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMap) {
         this.varMap = varMap;
@@ -112,31 +112,21 @@
             inputSchemaIdx = 1;
         }
 
-        schema = new ArrayList<>(inputSchema.size());
-        for (LogicalVariable inVar : inputSchema) {
-            LogicalVariable outVar = findOutputVar(inVar, inputSchemaIdx);
-            schema.add(outVar != null ? outVar : inVar);
-        }
-    }
-
-    private LogicalVariable findOutputVar(LogicalVariable inputVar, int inputIdx) {
+        schema = new ArrayList<>(inputSchema);
         for (Triple<LogicalVariable, LogicalVariable, LogicalVariable> t : varMap) {
-            LogicalVariable testVar;
-            switch (inputIdx) {
-                case 0:
-                    testVar = t.first;
-                    break;
-                case 1:
-                    testVar = t.second;
-                    break;
-                default:
-                    throw new IllegalArgumentException(String.valueOf(inputIdx));
+            LogicalVariable inVar = inputSchemaIdx == 0 ? t.first : t.second;
+            LogicalVariable outVar = t.third;
+            boolean mappingFound = false;
+            for (int i = 0, n = schema.size(); i < n; i++) {
+                if (schema.get(i).equals(inVar)) {
+                    schema.set(i, outVar);
+                    mappingFound = true;
+                }
             }
-            if (inputVar.equals(testVar)) {
-                return t.third;
+            if (!mappingFound) {
+                schema.add(outVar);
             }
         }
-        return null;
     }
 
     @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
index e90298d..face56e 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
@@ -26,7 +26,6 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
 import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
 
 public class UnnestOperator extends AbstractUnnestNonMapOperator {
 
@@ -35,9 +34,8 @@
     }
 
     public UnnestOperator(LogicalVariable variable, Mutable<ILogicalExpression> expression,
-            LogicalVariable positionalVariable, Object positionalVariableType,
-            IUnnestingPositionWriter positionWriter) {
-        super(variable, expression, positionalVariable, positionalVariableType, positionWriter);
+            LogicalVariable positionalVariable, Object positionalVariableType) {
+        super(variable, expression, positionalVariable, positionalVariableType);
     }
 
     @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
index 1c02a6c..2cdcaa2 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
@@ -22,6 +22,7 @@
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.commons.lang3.mutable.Mutable;
@@ -491,29 +492,18 @@
 
     @Override
     public ILogicalOperator visitUnionOperator(UnionAllOperator op, ILogicalOperator arg) throws AlgebricksException {
-        List<Mutable<ILogicalOperator>> copiedInputs = new ArrayList<>();
-        for (Mutable<ILogicalOperator> childRef : op.getInputs()) {
-            copiedInputs.add(deepCopyOperatorReference(childRef, null));
-        }
-        List<List<LogicalVariable>> liveVarsInInputs = new ArrayList<>();
-        for (Mutable<ILogicalOperator> inputOpRef : copiedInputs) {
-            List<LogicalVariable> liveVars = new ArrayList<>();
-            VariableUtilities.getLiveVariables(inputOpRef.getValue(), liveVars);
-            liveVarsInInputs.add(liveVars);
-        }
-        List<LogicalVariable> liveVarsInLeftInput = liveVarsInInputs.get(0);
-        List<LogicalVariable> liveVarsInRightInput = liveVarsInInputs.get(1);
-        List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> copiedTriples = new ArrayList<>();
-        int index = 0;
+        List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> variableMappingsCopy =
+                new ArrayList<>(op.getVariableMappings().size());
+        UnionAllOperator opCopy = new UnionAllOperator(variableMappingsCopy);
+        deepCopyInputsAnnotationsAndExecutionMode(op, arg, opCopy);
         for (Triple<LogicalVariable, LogicalVariable, LogicalVariable> triple : op.getVariableMappings()) {
             LogicalVariable producedVar = deepCopyVariable(triple.third);
+            LogicalVariable newLeftVar = Objects.requireNonNull(inputVarToOutputVarMapping.get(triple.first));
+            LogicalVariable newRightVar = Objects.requireNonNull(inputVarToOutputVarMapping.get(triple.second));
             Triple<LogicalVariable, LogicalVariable, LogicalVariable> copiedTriple =
-                    new Triple<>(liveVarsInLeftInput.get(index), liveVarsInRightInput.get(index), producedVar);
-            copiedTriples.add(copiedTriple);
-            ++index;
+                    new Triple<>(newLeftVar, newRightVar, producedVar);
+            variableMappingsCopy.add(copiedTriple);
         }
-        UnionAllOperator opCopy = new UnionAllOperator(copiedTriples);
-        deepCopyInputsAnnotationsAndExecutionMode(op, arg, opCopy);
         return opCopy;
     }
 
@@ -565,7 +555,7 @@
     public ILogicalOperator visitUnnestOperator(UnnestOperator op, ILogicalOperator arg) throws AlgebricksException {
         UnnestOperator opCopy = new UnnestOperator(deepCopyVariable(op.getVariable()),
                 exprDeepCopyVisitor.deepCopyExpressionReference(op.getExpressionRef()),
-                deepCopyVariable(op.getPositionalVariable()), op.getPositionalVariableType(), op.getPositionWriter());
+                deepCopyVariable(op.getPositionalVariable()), op.getPositionalVariableType());
         deepCopyInputsAnnotationsAndExecutionMode(op, arg, opCopy);
         return opCopy;
     }
@@ -602,7 +592,7 @@
             throws AlgebricksException {
         LeftOuterUnnestOperator opCopy = new LeftOuterUnnestOperator(deepCopyVariable(op.getVariable()),
                 exprDeepCopyVisitor.deepCopyExpressionReference(op.getExpressionRef()),
-                deepCopyVariable(op.getPositionalVariable()), op.getPositionalVariableType(), op.getPositionWriter());
+                deepCopyVariable(op.getPositionalVariable()), op.getPositionalVariableType());
         deepCopyInputsAnnotationsAndExecutionMode(op, arg, opCopy);
         return opCopy;
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
index 62ea79d..e25c8c4 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
@@ -227,7 +227,7 @@
     @Override
     public ILogicalOperator visitUnnestOperator(UnnestOperator op, Void arg) throws AlgebricksException {
         return new UnnestOperator(op.getVariable(), deepCopyExpressionRef(op.getExpressionRef()),
-                op.getPositionalVariable(), op.getPositionalVariableType(), op.getPositionWriter());
+                op.getPositionalVariable(), op.getPositionalVariableType());
     }
 
     @Override
@@ -412,7 +412,7 @@
     public ILogicalOperator visitLeftOuterUnnestOperator(LeftOuterUnnestOperator op, Void arg)
             throws AlgebricksException {
         return new LeftOuterUnnestOperator(op.getVariable(), deepCopyExpressionRef(op.getExpressionRef()),
-                op.getPositionalVariable(), op.getPositionalVariableType(), op.getPositionWriter());
+                op.getPositionalVariable(), op.getPositionalVariableType());
     }
 
     @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
index e20e534..182f61d 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
@@ -73,9 +73,11 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.HashPartitionExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.HashPartitionMergeExchangePOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.PartialBroadcastRangeFollowingExchangePOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.PartialBroadcastRangeIntersectExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.RangePartitionExchangePOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.physical.RangePartitionMergeExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.SortMergeExchangePOperator;
+import org.apache.hyracks.algebricks.core.algebra.properties.IntervalColumn;
 import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
 import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
@@ -143,6 +145,7 @@
                 case ONE_TO_ONE_EXCHANGE:
                 case RANDOM_MERGE_EXCHANGE:
                 case SEQUENTIAL_MERGE_EXCHANGE:
+                case RANDOM_PARTITION_EXCHANGE:
                     // No variables used.
                     break;
                 case HASH_PARTITION_EXCHANGE:
@@ -163,18 +166,25 @@
                     }
                     break;
                 case RANGE_PARTITION_EXCHANGE:
-                    RangePartitionExchangePOperator rangePartitionPOp = (RangePartitionExchangePOperator) physOp;
-                    for (OrderColumn partCol : rangePartitionPOp.getPartitioningFields()) {
-                        usedVariables.add(partCol.getColumn());
+                    RangePartitionExchangePOperator rangeExchangePOp = (RangePartitionExchangePOperator) physOp;
+                    for (OrderColumn orderCol : rangeExchangePOp.getPartitioningFields()) {
+                        usedVariables.add(orderCol.getColumn());
                     }
                     break;
-                case RANGE_PARTITION_MERGE_EXCHANGE:
-                    RangePartitionMergeExchangePOperator rangeMergePOp = (RangePartitionMergeExchangePOperator) physOp;
-                    for (OrderColumn partCol : rangeMergePOp.getPartitioningFields()) {
-                        usedVariables.add(partCol.getColumn());
+                case PARTIAL_BROADCAST_RANGE_FOLLOWING_EXCHANGE:
+                    PartialBroadcastRangeFollowingExchangePOperator rangeFollowingPOp =
+                            (PartialBroadcastRangeFollowingExchangePOperator) physOp;
+                    for (OrderColumn orderCol : rangeFollowingPOp.getPartitioningFields()) {
+                        usedVariables.add(orderCol.getColumn());
                     }
                     break;
-                case RANDOM_PARTITION_EXCHANGE:
+                case PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE:
+                    PartialBroadcastRangeIntersectExchangePOperator intersectPOp =
+                            (PartialBroadcastRangeIntersectExchangePOperator) physOp;
+                    for (IntervalColumn intervalCol : intersectPOp.getIntervalFields()) {
+                        usedVariables.add(intervalCol.getStartColumn());
+                        usedVariables.add(intervalCol.getEndColumn());
+                    }
                     break;
                 default:
                     throw new AlgebricksException("Unhandled physical operator tag '" + physOp.getOperatorTag() + "'.");
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractRangeExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractRangeExchangePOperator.java
new file mode 100644
index 0000000..53f3aaf
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractRangeExchangePOperator.java
@@ -0,0 +1,135 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.operators.physical;
+
+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.common.utils.Triple;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
+import org.apache.hyracks.algebricks.data.INormalizedKeyComputerFactoryProvider;
+import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import org.apache.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+import org.apache.hyracks.dataflow.common.data.partition.range.DynamicRangeMapSupplier;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMapSupplier;
+import org.apache.hyracks.dataflow.common.data.partition.range.StaticRangeMapSupplier;
+
+abstract class AbstractRangeExchangePOperator extends AbstractExchangePOperator {
+
+    protected final List<OrderColumn> partitioningFields;
+
+    protected final INodeDomain domain;
+
+    protected final RangeMap rangeMap;
+
+    protected final boolean rangeMapIsComputedAtRunTime;
+
+    protected final String rangeMapKeyInContext;
+
+    private AbstractRangeExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain, RangeMap rangeMap,
+            boolean rangeMapIsComputedAtRunTime, String rangeMapKeyInContext) {
+        this.partitioningFields = partitioningFields;
+        this.domain = domain;
+        this.rangeMap = rangeMap;
+        this.rangeMapIsComputedAtRunTime = rangeMapIsComputedAtRunTime;
+        this.rangeMapKeyInContext = rangeMapKeyInContext;
+    }
+
+    protected AbstractRangeExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
+            String rangeMapKeyInContext) {
+        this(partitioningFields, domain, null, true, rangeMapKeyInContext);
+    }
+
+    protected AbstractRangeExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
+            RangeMap rangeMap) {
+        this(partitioningFields, domain, rangeMap, false, "");
+    }
+
+    public final List<OrderColumn> getPartitioningFields() {
+        return partitioningFields;
+    }
+
+    public final INodeDomain getDomain() {
+        return domain;
+    }
+
+    @Override
+    public String toString() {
+        return getOperatorTag().toString() + " " + partitioningFields
+                + (rangeMap != null ? " RANGE_MAP:" + rangeMap : "");
+    }
+
+    protected final RangeMapSupplier crateRangeMapSupplier() {
+        return rangeMapIsComputedAtRunTime ? new DynamicRangeMapSupplier(rangeMapKeyInContext)
+                : new StaticRangeMapSupplier(rangeMap);
+    }
+
+    protected Pair<int[], IBinaryComparatorFactory[]> createOrderColumnsAndComparators(ILogicalOperator op,
+            IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException {
+        int n = partitioningFields.size();
+        int[] sortFields = new int[n];
+        IBinaryComparatorFactory[] comps = new IBinaryComparatorFactory[n];
+        IVariableTypeEnvironment env = context.getTypeEnvironment(op);
+        int i = 0;
+        for (OrderColumn oc : partitioningFields) {
+            LogicalVariable var = oc.getColumn();
+            sortFields[i] = opSchema.findVariable(var);
+            Object type = env.getVarType(var);
+            IBinaryComparatorFactoryProvider bcfp = context.getBinaryComparatorFactoryProvider();
+            comps[i] = bcfp.getBinaryComparatorFactory(type, oc.getOrder() == OrderOperator.IOrder.OrderKind.ASC);
+            i++;
+        }
+        return new Pair<>(sortFields, comps);
+    }
+
+    protected Triple<int[], IBinaryComparatorFactory[], INormalizedKeyComputerFactory> createOrderColumnsAndComparatorsWithNormKeyComputer(
+            ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException {
+        int n = partitioningFields.size();
+        int[] sortFields = new int[n];
+        IBinaryComparatorFactory[] comps = new IBinaryComparatorFactory[n];
+        IVariableTypeEnvironment env = context.getTypeEnvironment(op);
+        INormalizedKeyComputerFactoryProvider nkcfProvider = context.getNormalizedKeyComputerFactoryProvider();
+        INormalizedKeyComputerFactory nkcf = null;
+        int i = 0;
+        for (OrderColumn oc : partitioningFields) {
+            LogicalVariable var = oc.getColumn();
+            sortFields[i] = opSchema.findVariable(var);
+            Object type = env.getVarType(var);
+            OrderOperator.IOrder.OrderKind order = oc.getOrder();
+            if (i == 0 && nkcfProvider != null && type != null) {
+                nkcf = nkcfProvider.getNormalizedKeyComputerFactory(type, order == OrderOperator.IOrder.OrderKind.ASC);
+            }
+            IBinaryComparatorFactoryProvider bcfp = context.getBinaryComparatorFactoryProvider();
+            comps[i] = bcfp.getBinaryComparatorFactory(type, oc.getOrder() == OrderOperator.IOrder.OrderKind.ASC);
+            i++;
+        }
+        return new Triple<>(sortFields, comps, nkcf);
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractUnnestPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractUnnestPOperator.java
index 5d54e1d..90e88dc 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractUnnestPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractUnnestPOperator.java
@@ -33,6 +33,7 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
 import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
 import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
 import org.apache.hyracks.algebricks.runtime.operators.std.UnnestRuntimeFactory;
 import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -81,8 +82,10 @@
         IUnnestingEvaluatorFactory unnestingFactory = expressionRuntimeProvider.createUnnestingFunctionFactory(agg,
                 context.getTypeEnvironment(op.getInputs().get(0).getValue()), inputSchemas, context);
         int[] projectionList = JobGenHelper.projectAllVariables(opSchema);
+        IUnnestingPositionWriterFactory positionWriterFactory =
+                unnest.hasPositionalVariable() ? context.getUnnestingPositionWriterFactory() : null;
         UnnestRuntimeFactory unnestRuntime = new UnnestRuntimeFactory(outCol, unnestingFactory, projectionList,
-                unnest.getPositionWriter(), leftOuter, context.getMissingWriterFactory());
+                positionWriterFactory, leftOuter, context.getMissingWriterFactory());
         unnestRuntime.setSourceLocation(unnest.getSourceLocation());
         RecordDescriptor recDesc = JobGenHelper.mkRecordDescriptor(context.getTypeEnvironment(op), opSchema, context);
         builder.contributeMicroOperator(unnest, unnestRuntime, recDesc);
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InsertDeleteUpsertPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InsertDeleteUpsertPOperator.java
index 927fb66..1d41291 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InsertDeleteUpsertPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InsertDeleteUpsertPOperator.java
@@ -114,7 +114,7 @@
                 break;
             case DELETE:
                 runtimeAndConstraints = mp.getDeleteRuntime(dataSource, propagatedSchema, typeEnv, keys, payload,
-                        additionalFilteringKeys, inputDesc, context, spec);
+                        additionalFilteringKeys, additionalNonFilteringFields, inputDesc, context, spec);
                 break;
             case UPSERT:
                 runtimeAndConstraints = mp.getUpsertRuntime(dataSource, inputSchemas[0], typeEnv, keys, payload,
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeFollowingExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeFollowingExchangePOperator.java
new file mode 100644
index 0000000..46b7fef
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeFollowingExchangePOperator.java
@@ -0,0 +1,87 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.operators.physical;
+
+import java.util.Collections;
+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.algebra.base.IHyracksJobBuilder;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedFollowingProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
+import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.api.dataflow.IConnectorDescriptor;
+import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import org.apache.hyracks.api.dataflow.value.ITupleMultiPartitionComputerFactory;
+import org.apache.hyracks.api.job.IConnectorDescriptorRegistry;
+import org.apache.hyracks.dataflow.common.data.partition.range.FieldRangeFollowingPartitionComputerFactory;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+import org.apache.hyracks.dataflow.std.connectors.MToNPartialBroadcastConnectorDescriptor;
+
+/**
+ * This exchange operator delivers {@link IPartitioningProperty.PartitioningType#PARTIAL_BROADCAST_ORDERED_FOLLOWING}
+ * structural property
+ */
+public final class PartialBroadcastRangeFollowingExchangePOperator extends AbstractRangeExchangePOperator {
+
+    public PartialBroadcastRangeFollowingExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
+            RangeMap rangeMap) {
+        super(partitioningFields, domain, rangeMap);
+    }
+
+    @Override
+    public PhysicalOperatorTag getOperatorTag() {
+        return PhysicalOperatorTag.PARTIAL_BROADCAST_RANGE_FOLLOWING_EXCHANGE;
+    }
+
+    @Override
+    public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) {
+        IPartitioningProperty pp = new PartialBroadcastOrderedFollowingProperty(partitioningFields, domain, rangeMap);
+        // Broadcasts destroy input's local properties.
+        this.deliveredProperties = new StructuralPropertiesVector(pp, Collections.emptyList());
+    }
+
+    @Override
+    public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op,
+            IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) {
+        return emptyUnaryRequirements();
+    }
+
+    @Override
+    public Pair<IConnectorDescriptor, IHyracksJobBuilder.TargetConstraint> createConnectorDescriptor(
+            IConnectorDescriptorRegistry spec, ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context)
+            throws AlgebricksException {
+        Pair<int[], IBinaryComparatorFactory[]> pOrderColumns = createOrderColumnsAndComparators(op, opSchema, context);
+        ITupleMultiPartitionComputerFactory tpcf = new FieldRangeFollowingPartitionComputerFactory(pOrderColumns.first,
+                pOrderColumns.second, crateRangeMapSupplier(), op.getSourceLocation());
+        IConnectorDescriptor conn = new MToNPartialBroadcastConnectorDescriptor(spec, tpcf);
+        return new Pair<>(conn, null);
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeIntersectExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeIntersectExchangePOperator.java
new file mode 100644
index 0000000..4097101
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PartialBroadcastRangeIntersectExchangePOperator.java
@@ -0,0 +1,143 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.operators.physical;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.common.utils.Triple;
+import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.IntervalColumn;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedIntersectProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
+import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
+import org.apache.hyracks.api.dataflow.IConnectorDescriptor;
+import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import org.apache.hyracks.api.dataflow.value.ITupleMultiPartitionComputerFactory;
+import org.apache.hyracks.api.job.IConnectorDescriptorRegistry;
+import org.apache.hyracks.dataflow.common.data.partition.range.FieldRangeIntersectPartitionComputerFactory;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+import org.apache.hyracks.dataflow.common.data.partition.range.StaticRangeMapSupplier;
+import org.apache.hyracks.dataflow.std.connectors.MToNPartialBroadcastConnectorDescriptor;
+
+/**
+ * This exchange operator delivers {@link IPartitioningProperty.PartitioningType#PARTIAL_BROADCAST_ORDERED_INTERSECT}
+ * structural property
+ */
+public class PartialBroadcastRangeIntersectExchangePOperator extends AbstractExchangePOperator {
+
+    private final List<IntervalColumn> intervalFields;
+
+    private final INodeDomain domain;
+
+    private final RangeMap rangeMap;
+
+    public PartialBroadcastRangeIntersectExchangePOperator(List<IntervalColumn> intervalFields, INodeDomain domain,
+            RangeMap rangeMap) {
+        this.intervalFields = intervalFields;
+        this.domain = domain;
+        this.rangeMap = rangeMap;
+    }
+
+    @Override
+    public PhysicalOperatorTag getOperatorTag() {
+        return PhysicalOperatorTag.PARTIAL_BROADCAST_RANGE_INTERSECT_EXCHANGE;
+    }
+
+    public final List<IntervalColumn> getIntervalFields() {
+        return intervalFields;
+    }
+
+    public final INodeDomain getDomain() {
+        return domain;
+    }
+
+    @Override
+    public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) {
+        IPartitioningProperty pp = new PartialBroadcastOrderedIntersectProperty(intervalFields, domain, rangeMap);
+        // Broadcasts destroy input's local properties.
+        this.deliveredProperties = new StructuralPropertiesVector(pp, Collections.emptyList());
+    }
+
+    @Override
+    public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op,
+            IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) {
+        return emptyUnaryRequirements();
+    }
+
+    @Override
+    public Pair<IConnectorDescriptor, IHyracksJobBuilder.TargetConstraint> createConnectorDescriptor(
+            IConnectorDescriptorRegistry spec, ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context)
+            throws AlgebricksException {
+        Triple<int[], int[], IBinaryComparatorFactory[]> pIntervalColumns =
+                createIntervalColumnsAndComparators(op, opSchema, context);
+        ITupleMultiPartitionComputerFactory tpcf =
+                new FieldRangeIntersectPartitionComputerFactory(pIntervalColumns.first, pIntervalColumns.second,
+                        pIntervalColumns.third, new StaticRangeMapSupplier(rangeMap), op.getSourceLocation());
+        IConnectorDescriptor conn = new MToNPartialBroadcastConnectorDescriptor(spec, tpcf);
+        return new Pair<>(conn, null);
+    }
+
+    private Triple<int[], int[], IBinaryComparatorFactory[]> createIntervalColumnsAndComparators(ILogicalOperator op,
+            IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException {
+        int n = intervalFields.size();
+        int[] startFields = new int[n];
+        int[] endFields = new int[n];
+        IBinaryComparatorFactory[] comps = new IBinaryComparatorFactory[n];
+        IVariableTypeEnvironment env = context.getTypeEnvironment(op);
+        int i = 0;
+        for (IntervalColumn ic : intervalFields) {
+            LogicalVariable startVar = ic.getStartColumn();
+            startFields[i] = opSchema.findVariable(startVar);
+            Object startVarType = env.getVarType(startVar);
+            LogicalVariable endEvar = ic.getEndColumn();
+            endFields[i] = opSchema.findVariable(endEvar);
+            Object endVarType = env.getVarType(endEvar);
+            if (!Objects.equals(startVarType, endVarType)) {
+                throw new IllegalStateException();
+            }
+            IBinaryComparatorFactoryProvider bcfp = context.getBinaryComparatorFactoryProvider();
+            comps[i] =
+                    bcfp.getBinaryComparatorFactory(startVarType, ic.getOrder() == OrderOperator.IOrder.OrderKind.ASC);
+            i++;
+        }
+        return new Triple<>(startFields, endFields, comps);
+    }
+
+    @Override
+    public String toString() {
+        return getOperatorTag().toString() + " " + intervalFields + (rangeMap != null ? " RANGE_MAP:" + rangeMap : "");
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionExchangePOperator.java
index fe96d4f..9c80f4c 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionExchangePOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionExchangePOperator.java
@@ -19,7 +19,7 @@
 package org.apache.hyracks.algebricks.core.algebra.operators.physical;
 
 import java.util.ArrayList;
-import java.util.LinkedList;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -27,12 +27,8 @@
 import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder.TargetConstraint;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind;
-import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
 import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -41,42 +37,23 @@
 import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
 import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
 import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
 import org.apache.hyracks.api.dataflow.IConnectorDescriptor;
 import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.job.IConnectorDescriptorRegistry;
-import org.apache.hyracks.dataflow.common.data.partition.range.DynamicRangeMapSupplier;
 import org.apache.hyracks.dataflow.common.data.partition.range.FieldRangePartitionComputerFactory;
 import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
-import org.apache.hyracks.dataflow.common.data.partition.range.RangeMapSupplier;
-import org.apache.hyracks.dataflow.common.data.partition.range.StaticRangeMapSupplier;
 import org.apache.hyracks.dataflow.std.connectors.MToNPartitioningConnectorDescriptor;
 
-public class RangePartitionExchangePOperator extends AbstractExchangePOperator {
+public final class RangePartitionExchangePOperator extends AbstractRangeExchangePOperator {
 
-    private List<OrderColumn> partitioningFields;
-    private INodeDomain domain;
-    private RangeMap rangeMap;
-    private final boolean rangeMapIsComputedAtRunTime;
-    private final String rangeMapKeyInContext;
-
-    private RangePartitionExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain, RangeMap rangeMap,
-            boolean rangeMapIsComputedAtRunTime, String rangeMapKeyInContext) {
-        this.partitioningFields = partitioningFields;
-        this.domain = domain;
-        this.rangeMap = rangeMap;
-        this.rangeMapIsComputedAtRunTime = rangeMapIsComputedAtRunTime;
-        this.rangeMapKeyInContext = rangeMapKeyInContext;
-    }
-
-    public RangePartitionExchangePOperator(List<OrderColumn> partitioningFields, String rangeMapKeyInContext,
-            INodeDomain domain) {
-        this(partitioningFields, domain, null, true, rangeMapKeyInContext);
+    public RangePartitionExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
+            String rangeMapKeyInContext) {
+        super(partitioningFields, domain, rangeMapKeyInContext);
     }
 
     public RangePartitionExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
             RangeMap rangeMap) {
-        this(partitioningFields, domain, rangeMap, false, "");
+        super(partitioningFields, domain, rangeMap);
     }
 
     @Override
@@ -84,18 +61,11 @@
         return PhysicalOperatorTag.RANGE_PARTITION_EXCHANGE;
     }
 
-    public List<OrderColumn> getPartitioningFields() {
-        return partitioningFields;
-    }
-
-    public INodeDomain getDomain() {
-        return domain;
-    }
-
     @Override
     public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) {
-        IPartitioningProperty p = new OrderedPartitionedProperty(new ArrayList<>(partitioningFields), domain, rangeMap);
-        this.deliveredProperties = new StructuralPropertiesVector(p, new LinkedList<ILocalStructuralProperty>());
+        IPartitioningProperty pp =
+                new OrderedPartitionedProperty(new ArrayList<>(partitioningFields), domain, rangeMap);
+        this.deliveredProperties = new StructuralPropertiesVector(pp, Collections.emptyList());
     }
 
     @Override
@@ -107,30 +77,10 @@
     @Override
     public Pair<IConnectorDescriptor, TargetConstraint> createConnectorDescriptor(IConnectorDescriptorRegistry spec,
             ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException {
-        int n = partitioningFields.size();
-        int[] sortFields = new int[n];
-        IBinaryComparatorFactory[] comps = new IBinaryComparatorFactory[n];
-        IVariableTypeEnvironment env = context.getTypeEnvironment(op);
-        int i = 0;
-        for (OrderColumn oc : partitioningFields) {
-            LogicalVariable var = oc.getColumn();
-            sortFields[i] = opSchema.findVariable(var);
-            Object type = env.getVarType(var);
-            IBinaryComparatorFactoryProvider bcfp = context.getBinaryComparatorFactoryProvider();
-            comps[i] = bcfp.getBinaryComparatorFactory(type, oc.getOrder() == OrderKind.ASC);
-            i++;
-        }
-        RangeMapSupplier rangeMapSupplier = rangeMapIsComputedAtRunTime
-                ? new DynamicRangeMapSupplier(rangeMapKeyInContext) : new StaticRangeMapSupplier(rangeMap);
-        FieldRangePartitionComputerFactory partitionerFactory =
-                new FieldRangePartitionComputerFactory(sortFields, comps, rangeMapSupplier, op.getSourceLocation());
+        Pair<int[], IBinaryComparatorFactory[]> pOrderColumns = createOrderColumnsAndComparators(op, opSchema, context);
+        FieldRangePartitionComputerFactory partitionerFactory = new FieldRangePartitionComputerFactory(
+                pOrderColumns.first, pOrderColumns.second, crateRangeMapSupplier(), op.getSourceLocation());
         IConnectorDescriptor conn = new MToNPartitioningConnectorDescriptor(spec, partitionerFactory);
         return new Pair<>(conn, null);
     }
-
-    @Override
-    public String toString() {
-        return getOperatorTag().toString() + " " + partitioningFields
-                + (rangeMap != null ? " RANGE_MAP:" + rangeMap : "");
-    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionMergeExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionMergeExchangePOperator.java
deleted file mode 100644
index ba4a6b7..0000000
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RangePartitionMergeExchangePOperator.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.hyracks.algebricks.core.algebra.operators.physical;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-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.algebra.base.IHyracksJobBuilder.TargetConstraint;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind;
-import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
-import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty.PropertyType;
-import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
-import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
-import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
-import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
-import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
-import org.apache.hyracks.algebricks.core.algebra.properties.OrderedPartitionedProperty;
-import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
-import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
-import org.apache.hyracks.algebricks.data.INormalizedKeyComputerFactoryProvider;
-import org.apache.hyracks.api.dataflow.IConnectorDescriptor;
-import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-import org.apache.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
-import org.apache.hyracks.api.job.IConnectorDescriptorRegistry;
-import org.apache.hyracks.dataflow.common.data.partition.range.FieldRangePartitionComputerFactory;
-import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
-import org.apache.hyracks.dataflow.common.data.partition.range.StaticRangeMapSupplier;
-import org.apache.hyracks.dataflow.std.connectors.MToNPartitioningMergingConnectorDescriptor;
-
-public class RangePartitionMergeExchangePOperator extends AbstractExchangePOperator {
-
-    private List<OrderColumn> partitioningFields;
-    private INodeDomain domain;
-    private RangeMap rangeMap;
-
-    public RangePartitionMergeExchangePOperator(List<OrderColumn> partitioningFields, INodeDomain domain,
-            RangeMap rangeMap) {
-        this.partitioningFields = partitioningFields;
-        this.domain = domain;
-        this.rangeMap = rangeMap;
-    }
-
-    @Override
-    public PhysicalOperatorTag getOperatorTag() {
-        return PhysicalOperatorTag.RANGE_PARTITION_MERGE_EXCHANGE;
-    }
-
-    public List<OrderColumn> getPartitioningFields() {
-        return partitioningFields;
-    }
-
-    public INodeDomain getDomain() {
-        return domain;
-    }
-
-    @Override
-    public void computeDeliveredProperties(ILogicalOperator op, IOptimizationContext context) {
-        IPartitioningProperty p = new OrderedPartitionedProperty(partitioningFields, domain, rangeMap);
-        AbstractLogicalOperator op2 = (AbstractLogicalOperator) op.getInputs().get(0).getValue();
-        List<ILocalStructuralProperty> op2Locals = op2.getDeliveredPhysicalProperties().getLocalProperties();
-        List<ILocalStructuralProperty> locals = new ArrayList<ILocalStructuralProperty>();
-        for (ILocalStructuralProperty prop : op2Locals) {
-            if (prop.getPropertyType() == PropertyType.LOCAL_ORDER_PROPERTY) {
-                locals.add(prop);
-            } else {
-                break;
-            }
-        }
-
-        this.deliveredProperties = new StructuralPropertiesVector(p, locals);
-    }
-
-    @Override
-    public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op,
-            IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) {
-        List<ILocalStructuralProperty> orderProps = new LinkedList<ILocalStructuralProperty>();
-        List<OrderColumn> columns = new ArrayList<OrderColumn>();
-        for (OrderColumn oc : partitioningFields) {
-            LogicalVariable var = oc.getColumn();
-            columns.add(new OrderColumn(var, oc.getOrder()));
-        }
-        orderProps.add(new LocalOrderProperty(columns));
-        StructuralPropertiesVector[] r =
-                new StructuralPropertiesVector[] { new StructuralPropertiesVector(null, orderProps) };
-        return new PhysicalRequirements(r, IPartitioningRequirementsCoordinator.NO_COORDINATION);
-    }
-
-    @Override
-    public Pair<IConnectorDescriptor, TargetConstraint> createConnectorDescriptor(IConnectorDescriptorRegistry spec,
-            ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException {
-        int n = partitioningFields.size();
-        int[] sortFields = new int[n];
-        IBinaryComparatorFactory[] comps = new IBinaryComparatorFactory[n];
-
-        INormalizedKeyComputerFactoryProvider nkcfProvider = context.getNormalizedKeyComputerFactoryProvider();
-        INormalizedKeyComputerFactory nkcf = null;
-
-        IVariableTypeEnvironment env = context.getTypeEnvironment(op);
-        int i = 0;
-        for (OrderColumn oc : partitioningFields) {
-            LogicalVariable var = oc.getColumn();
-            sortFields[i] = opSchema.findVariable(var);
-            Object type = env.getVarType(var);
-            OrderKind order = oc.getOrder();
-            if (i == 0 && nkcfProvider != null && type != null) {
-                nkcf = nkcfProvider.getNormalizedKeyComputerFactory(type, order == OrderKind.ASC);
-            }
-            IBinaryComparatorFactoryProvider bcfp = context.getBinaryComparatorFactoryProvider();
-            comps[i] = bcfp.getBinaryComparatorFactory(type, oc.getOrder() == OrderKind.ASC);
-            i++;
-        }
-        ITuplePartitionComputerFactory tpcf = new FieldRangePartitionComputerFactory(sortFields, comps,
-                new StaticRangeMapSupplier(rangeMap), op.getSourceLocation());
-        IConnectorDescriptor conn = new MToNPartitioningMergingConnectorDescriptor(spec, tpcf, sortFields, comps, nkcf);
-        return new Pair<IConnectorDescriptor, TargetConstraint>(conn, null);
-    }
-
-    @Override
-    public String toString() {
-        return getOperatorTag().toString() + " " + partitioningFields
-                + (rangeMap != null ? " RANGE_MAP:" + rangeMap : "");
-    }
-
-}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifier.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifier.java
new file mode 100644
index 0000000..3f7a0c1
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifier.java
@@ -0,0 +1,311 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.plan;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.List;
+import java.util.function.BiFunction;
+import java.util.function.BiPredicate;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractOperatorWithNestedPlans;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
+import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform;
+
+/**
+ * Verifies whether there were any changes in the plan and fails if it finds:
+ * <ul>
+ * <li>new or deleted operator reference: {@code MutableObject<ILogicalOperator>}</li>
+ * <li>new or deleted operator instance: {@code ILogicalOperator}</li>
+ * <li>new or deleted expression reference: {@code MutableObject<ILogicalExpression>}</li>
+ * <li>new or deleted expression instance {@code ILogicalExpression}</li>
+ * </ul>
+ *
+ * Usage:
+ * <ol>
+ * <li>Invoke {@link #recordPlanSignature(Mutable)} to save the plan signature</li>
+ * <li>Run an optimization rule on this plan
+ * <li>If the rule said that it didn't make any changes then
+ * invoke {@link #comparePlanSignature(Mutable)} to verify that</li>
+ * <li>(optionally) Invoke {@link #discardPlanSignature()} to discard the recorded state</li>
+ * </ol>
+ */
+public final class PlanStabilityVerifier {
+
+    static final String MSG_CREATED = "created";
+
+    static final String MSG_DELETED = "deleted";
+
+    static final String MSG_OPERATOR_REFERENCE = "operator reference (Mutable) to";
+
+    static final String MSG_OPERATOR_INSTANCE = "operator instance";
+
+    static final String MSG_EXPRESSION_REFERENCE = "expression reference (Mutable) to";
+
+    static final String MSG_EXPRESSION_INSTANCE = "expression instance";
+
+    private static final String ERROR_MESSAGE_TEMPLATE = "%s %s (%s)";
+
+    private static final int COLL_INIT_CAPACITY = 256;
+
+    private final PlanSignatureRecorderVisitor recorderVisitor = new PlanSignatureRecorderVisitor();
+
+    private final PlanStabilityVerifierVisitor verifierVisitor = new PlanStabilityVerifierVisitor();
+
+    private final List<Mutable<ILogicalOperator>> opRefColl = new ArrayList<>(COLL_INIT_CAPACITY);
+
+    private final List<ILogicalOperator> opColl = new ArrayList<>(COLL_INIT_CAPACITY);
+
+    private final List<Mutable<ILogicalExpression>> exprRefColl = new ArrayList<>(COLL_INIT_CAPACITY);
+
+    private final List<ILogicalExpression> exprColl = new ArrayList<>(COLL_INIT_CAPACITY);
+
+    private final Deque<Mutable<ILogicalOperator>> workQueue = new ArrayDeque<>(COLL_INIT_CAPACITY);
+
+    private final IPlanPrettyPrinter prettyPrinter;
+
+    public PlanStabilityVerifier(IPlanPrettyPrinter prettyPrinter) {
+        this.prettyPrinter = prettyPrinter;
+    }
+
+    public void recordPlanSignature(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+        reset();
+        walk(opRef, recorderVisitor);
+    }
+
+    public void comparePlanSignature(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+        if (opRefColl.isEmpty()) {
+            throw new IllegalStateException();
+        }
+        try {
+            walk(opRef, verifierVisitor);
+            ensureEmpty(opRefColl, MSG_DELETED, MSG_OPERATOR_REFERENCE, PlanStabilityVerifier::printOperator);
+            ensureEmpty(opColl, MSG_DELETED, MSG_OPERATOR_INSTANCE, PlanStabilityVerifier::printOperator);
+            ensureEmpty(exprRefColl, MSG_DELETED, MSG_EXPRESSION_REFERENCE, PlanStabilityVerifier::printExpression);
+            ensureEmpty(exprColl, MSG_DELETED, MSG_EXPRESSION_INSTANCE, PlanStabilityVerifier::printExpression);
+        } finally {
+            reset();
+        }
+    }
+
+    public void discardPlanSignature() {
+        reset();
+    }
+
+    private void reset() {
+        opRefColl.clear();
+        opColl.clear();
+        exprRefColl.clear();
+        exprColl.clear();
+    }
+
+    private final class PlanSignatureRecorderVisitor extends AbstractStabilityCheckingVisitor {
+        @Override
+        public void visit(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+            ILogicalOperator op = opRef.getValue();
+            // visit input ops of a multi-output op only if it's the first time we see this operator
+            boolean skipInputs = OperatorPropertiesUtil.isMultiOutputOperator(op) && findItem(opColl, op) >= 0;
+
+            opRefColl.add(opRef);
+            opColl.add(op);
+
+            if (!skipInputs) {
+                super.visit(opRef);
+            }
+        }
+
+        @Override
+        protected void addChildToWorkQueue(Mutable<ILogicalOperator> childOpRef, boolean addFirst)
+                throws AlgebricksException {
+            ILogicalOperator childOp = childOpRef.getValue();
+            if (!OperatorPropertiesUtil.isMultiOutputOperator(childOp) && opColl.contains(childOp)) {
+                throw new AlgebricksException("cycle: " + printOperator(childOp, prettyPrinter));
+            }
+            super.addChildToWorkQueue(childOpRef, addFirst);
+        }
+
+        @Override
+        protected void visitExpression(Mutable<ILogicalExpression> exprRef) {
+            exprRefColl.add(exprRef);
+            exprColl.add(exprRef.getValue());
+        }
+    }
+
+    private final class PlanStabilityVerifierVisitor extends AbstractStabilityCheckingVisitor {
+        @Override
+        public void visit(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+            int idx = findItem(opRefColl, opRef);
+            if (idx < 0) {
+                raiseException(MSG_CREATED, MSG_OPERATOR_REFERENCE, printOperator(opRef, prettyPrinter));
+            }
+            opRefColl.set(idx, null);
+
+            ILogicalOperator op = opRef.getValue();
+            idx = findItem(opColl, op);
+            if (idx < 0) {
+                raiseException(MSG_CREATED, MSG_OPERATOR_INSTANCE, printOperator(op, prettyPrinter));
+            }
+            opColl.set(idx, null);
+
+            // visit input ops of a multi-output op only if it's the last time we see this operator
+            boolean skipInputs = OperatorPropertiesUtil.isMultiOutputOperator(op) && findItem(opColl, op) >= 0;
+            if (!skipInputs) {
+                super.visit(opRef);
+            }
+        }
+
+        protected void visitExpression(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            int idx = findItem(exprRefColl, exprRef);
+            if (idx < 0) {
+                raiseException(MSG_CREATED, MSG_EXPRESSION_REFERENCE, printExpression(exprRef, prettyPrinter));
+            }
+            exprRefColl.set(idx, null);
+
+            ILogicalExpression expr = exprRef.getValue();
+            idx = findItem(exprColl, expr);
+            if (idx < 0) {
+                raiseException(MSG_CREATED, MSG_EXPRESSION_INSTANCE, printExpression(expr, prettyPrinter));
+            }
+            exprColl.set(idx, null);
+        }
+    }
+
+    private abstract class AbstractStabilityCheckingVisitor
+            implements IMutableReferenceVisitor<ILogicalOperator>, ILogicalExpressionReferenceTransform {
+
+        @Override
+        public void visit(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+            ILogicalOperator op = opRef.getValue();
+
+            op.acceptExpressionTransform(this);
+
+            for (Mutable<ILogicalOperator> inputOpRef : op.getInputs()) {
+                addChildToWorkQueue(inputOpRef, true);
+            }
+            if (op instanceof AbstractOperatorWithNestedPlans) {
+                for (ILogicalPlan nestedPlan : ((AbstractOperatorWithNestedPlans) op).getNestedPlans()) {
+                    for (Mutable<ILogicalOperator> nestedPlanRoot : nestedPlan.getRoots()) {
+                        addChildToWorkQueue(nestedPlanRoot, false);
+                    }
+                }
+            }
+        }
+
+        protected abstract void visitExpression(Mutable<ILogicalExpression> exprRef) throws AlgebricksException;
+
+        @Override
+        public final boolean transform(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            visitExpression(exprRef);
+            return false;
+        }
+
+        protected void addChildToWorkQueue(Mutable<ILogicalOperator> childOpRef, boolean addFirst)
+                throws AlgebricksException {
+            if (addFirst) {
+                workQueue.addFirst(childOpRef);
+            } else {
+                workQueue.add(childOpRef);
+            }
+
+        }
+    }
+
+    private void raiseException(String operationKind, String referenceKind, String entity) throws AlgebricksException {
+        String errorMessage = String.format(ERROR_MESSAGE_TEMPLATE, operationKind, referenceKind, entity);
+        throw new AlgebricksException(errorMessage);
+    }
+
+    private <T> void ensureEmpty(List<T> list, String operationKind, String referenceKind,
+            BiFunction<T, IPlanPrettyPrinter, String> printFunction) throws AlgebricksException {
+        int idx = findNonNull(list);
+        if (idx >= 0) {
+            T listItem = list.get(idx);
+            raiseException(operationKind, referenceKind, printFunction.apply(listItem, prettyPrinter));
+        }
+    }
+
+    private static <T> int findItem(List<T> list, T item) {
+        return indexOf(list, (listItem, paramItem) -> listItem == paramItem, item);
+    }
+
+    private static <T> int findNonNull(List<T> list) {
+        return indexOf(list, (listItem, none) -> listItem != null, null);
+    }
+
+    private static <T, U> int indexOf(List<T> list, BiPredicate<T, U> predicate, U predicateParam) {
+        for (int i = 0, n = list.size(); i < n; i++) {
+            T listItem = list.get(i);
+            if (predicate.test(listItem, predicateParam)) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    static String printOperator(Mutable<ILogicalOperator> opRef, IPlanPrettyPrinter printer) {
+        return printOperator(opRef.getValue(), printer);
+    }
+
+    static String printOperator(ILogicalOperator op, IPlanPrettyPrinter printer) {
+        try {
+            return printer.reset().printOperator((AbstractLogicalOperator) op, false).toString();
+        } catch (AlgebricksException e) {
+            // shouldn't happen
+            return op.toString();
+        }
+    }
+
+    static String printExpression(Mutable<ILogicalExpression> exprRef, IPlanPrettyPrinter printer) {
+        return printExpression(exprRef.getValue(), printer);
+    }
+
+    static String printExpression(ILogicalExpression expr, IPlanPrettyPrinter printer) {
+        try {
+            return printer.reset().printExpression(expr).toString();
+        } catch (AlgebricksException e) {
+            // shouldn't happen
+            return expr.toString();
+        }
+    }
+
+    private void walk(Mutable<ILogicalOperator> opRef, IMutableReferenceVisitor<ILogicalOperator> visitor)
+            throws AlgebricksException {
+        if (!workQueue.isEmpty()) {
+            throw new IllegalStateException();
+        }
+        Mutable<ILogicalOperator> currentOpRef = opRef;
+        do {
+            visitor.visit(currentOpRef);
+            currentOpRef = workQueue.pollFirst();
+        } while (currentOpRef != null);
+    }
+
+    private interface IMutableReferenceVisitor<T> {
+        void visit(Mutable<T> ref) throws AlgebricksException;
+    }
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifier.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifier.java
new file mode 100644
index 0000000..8495099
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifier.java
@@ -0,0 +1,218 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.plan;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Deque;
+import java.util.IdentityHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractOperatorWithNestedPlans;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
+import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
+import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform;
+
+/**
+ * Verifies plan structure and fails if it finds
+ * <ul>
+ * <li>a shared operator reference: {@code MutableObject<ILogicalOperator>}</li>
+ * <li>a shared operator instance: {@code ILogicalOperator} (except if it's a multi-output operator)</li>
+ * <li>a shared expression reference: {@code MutableObject<ILogicalExpression>}</li>
+ * <li>a shared expression instance {@code ILogicalExpression} (except if it's a {@code ConstantExpression})</li>
+ * </ul>
+ */
+public final class PlanStructureVerifier {
+
+    private static final String ERROR_MESSAGE_TEMPLATE_1 = "shared %s (%s) in %s";
+
+    private static final String ERROR_MESSAGE_TEMPLATE_2 = "shared %s (%s) between %s and %s";
+
+    private static final String ERROR_MESSAGE_TEMPLATE_3 = "missing output type environment in %s";
+
+    private static final String ERROR_MESSAGE_TEMPLATE_4 = "missing schema in %s";
+
+    private final ExpressionReferenceVerifierVisitor exprVisitor = new ExpressionReferenceVerifierVisitor();
+
+    private final Map<Mutable<ILogicalOperator>, ILogicalOperator> opRefMap = new IdentityHashMap<>();
+
+    private final Map<ILogicalOperator, ILogicalOperator> opMap = new IdentityHashMap<>();
+
+    private final Map<Mutable<ILogicalExpression>, ILogicalOperator> exprRefMap = new IdentityHashMap<>();
+
+    private final Map<ILogicalExpression, ILogicalOperator> exprMap = new IdentityHashMap<>();
+
+    private final Deque<Pair<Mutable<ILogicalOperator>, ILogicalOperator>> workQueue = new ArrayDeque<>();
+
+    private final IPlanPrettyPrinter prettyPrinter;
+
+    private final ITypingContext typeEnvProvider;
+
+    private boolean ensureTypeEnv;
+
+    private boolean ensureSchema;
+
+    public PlanStructureVerifier(IPlanPrettyPrinter prettyPrinter, ITypingContext typeEnvProvider) {
+        this.prettyPrinter = prettyPrinter;
+        this.typeEnvProvider = typeEnvProvider;
+    }
+
+    public void verifyPlanStructure(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+        reset();
+        ILogicalOperator op = opRef.getValue();
+        // if root has type-env/schema then ensure that all children have them too
+        ensureTypeEnv = typeEnvProvider.getOutputTypeEnvironment(op) != null;
+        ensureSchema = op.getSchema() != null;
+        walk(opRef);
+        reset();
+    }
+
+    private void reset() {
+        opRefMap.clear();
+        opMap.clear();
+        exprRefMap.clear();
+        exprMap.clear();
+        ensureTypeEnv = false;
+        ensureSchema = false;
+    }
+
+    private void walk(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+        if (!workQueue.isEmpty()) {
+            throw new IllegalStateException();
+        }
+        workQueue.add(new Pair<>(opRef, null));
+        for (;;) {
+            Pair<Mutable<ILogicalOperator>, ILogicalOperator> p = workQueue.pollFirst();
+            if (p == null) {
+                break;
+            }
+            Mutable<ILogicalOperator> currentOpRef = p.first;
+            ILogicalOperator currentOp = currentOpRef.getValue();
+            ILogicalOperator parentOp = p.second;
+
+            List<Mutable<ILogicalOperator>> childOps = visitOp(currentOpRef, parentOp);
+
+            for (Mutable<ILogicalOperator> childOpRef : childOps) {
+                ILogicalOperator childOp = childOpRef.getValue();
+                if (!OperatorPropertiesUtil.isMultiOutputOperator(childOp) && opMap.containsKey(childOp)) {
+                    throw new AlgebricksException(
+                            "cycle: " + PlanStabilityVerifier.printOperator(childOp, prettyPrinter));
+                }
+                workQueue.add(new Pair<>(childOpRef, currentOp));
+            }
+        }
+    }
+
+    private List<Mutable<ILogicalOperator>> visitOp(Mutable<ILogicalOperator> opRef, ILogicalOperator parentOp)
+            throws AlgebricksException {
+        ILogicalOperator op = opRef.getValue();
+        ILogicalOperator firstParentOp;
+        firstParentOp = opRefMap.put(opRef, parentOp);
+        if (firstParentOp != null) {
+            raiseException(PlanStabilityVerifier.MSG_OPERATOR_REFERENCE,
+                    PlanStabilityVerifier.printOperator(op, prettyPrinter), firstParentOp, parentOp);
+        }
+
+        if (OperatorPropertiesUtil.isMultiOutputOperator(op) && opMap.containsKey(op)) {
+            // don't visit input ops because we've already looked at them
+            return Collections.emptyList();
+        }
+
+        firstParentOp = opMap.put(op, parentOp);
+        if (firstParentOp != null) {
+            raiseException(PlanStabilityVerifier.MSG_OPERATOR_INSTANCE,
+                    PlanStabilityVerifier.printOperator(op, prettyPrinter), firstParentOp, parentOp);
+        }
+
+        exprVisitor.setOperator(op);
+        op.acceptExpressionTransform(exprVisitor);
+
+        if (ensureTypeEnv && typeEnvProvider.getOutputTypeEnvironment(op) == null) {
+            throw new AlgebricksException(
+                    String.format(ERROR_MESSAGE_TEMPLATE_3, PlanStabilityVerifier.printOperator(op, prettyPrinter)));
+        }
+        if (ensureSchema && op.getSchema() == null) {
+            throw new AlgebricksException(
+                    String.format(ERROR_MESSAGE_TEMPLATE_4, PlanStabilityVerifier.printOperator(op, prettyPrinter)));
+        }
+
+        List<Mutable<ILogicalOperator>> children = op.getInputs();
+        if (op instanceof AbstractOperatorWithNestedPlans) {
+            children = new ArrayList<>(children);
+            for (ILogicalPlan nestedPlan : ((AbstractOperatorWithNestedPlans) op).getNestedPlans()) {
+                children.addAll(nestedPlan.getRoots());
+            }
+        }
+        return children;
+    }
+
+    private void raiseException(String sharedReferenceKind, String sharedEntity, ILogicalOperator firstOp,
+            ILogicalOperator secondOp) throws AlgebricksException {
+        String errorMessage;
+        if (firstOp == secondOp) {
+            errorMessage = String.format(ERROR_MESSAGE_TEMPLATE_1, sharedReferenceKind, sharedEntity,
+                    PlanStabilityVerifier.printOperator(firstOp, prettyPrinter));
+        } else {
+            errorMessage = String.format(ERROR_MESSAGE_TEMPLATE_2, sharedReferenceKind, sharedEntity,
+                    PlanStabilityVerifier.printOperator(firstOp, prettyPrinter),
+                    PlanStabilityVerifier.printOperator(secondOp, prettyPrinter));
+        }
+        throw new AlgebricksException(errorMessage);
+    }
+
+    private final class ExpressionReferenceVerifierVisitor implements ILogicalExpressionReferenceTransform {
+
+        private ILogicalOperator currentOp;
+
+        void setOperator(ILogicalOperator currentOp) {
+            this.currentOp = Objects.requireNonNull(currentOp);
+        }
+
+        @Override
+        public boolean transform(Mutable<ILogicalExpression> exprRef) throws AlgebricksException {
+            ILogicalExpression expr = exprRef.getValue();
+            ILogicalOperator firstOp;
+            firstOp = exprRefMap.put(exprRef, currentOp);
+            if (firstOp != null) {
+                raiseException(PlanStabilityVerifier.MSG_EXPRESSION_REFERENCE,
+                        PlanStabilityVerifier.printExpression(expr, prettyPrinter), firstOp, currentOp);
+            }
+            if (expr.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
+                firstOp = exprMap.put(expr, currentOp);
+                if (firstOp != null) {
+                    raiseException(PlanStabilityVerifier.MSG_EXPRESSION_INSTANCE,
+                            PlanStabilityVerifier.printExpression(expr, prettyPrinter), firstOp, currentOp);
+                }
+            }
+            return false;
+        }
+    }
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/IPlanPrettyPrinter.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/IPlanPrettyPrinter.java
index 922e0ee..faf4976 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/IPlanPrettyPrinter.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/IPlanPrettyPrinter.java
@@ -19,6 +19,7 @@
 package org.apache.hyracks.algebricks.core.algebra.prettyprint;
 
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
 
@@ -28,7 +29,15 @@
 public interface IPlanPrettyPrinter {
 
     /** Prints the plan rooted at the operator argument. */
-    IPlanPrettyPrinter printOperator(AbstractLogicalOperator operator) throws AlgebricksException;
+    default IPlanPrettyPrinter printOperator(AbstractLogicalOperator operator) throws AlgebricksException {
+        return printOperator(operator, true);
+    }
+
+    /** Prints given operator and optionally it's inputs */
+    IPlanPrettyPrinter printOperator(AbstractLogicalOperator operator, boolean printInputs) throws AlgebricksException;
+
+    /** Prints given expression */
+    IPlanPrettyPrinter printExpression(ILogicalExpression expression) throws AlgebricksException;
 
     /** Prints the whole logical plan. */
     IPlanPrettyPrinter printPlan(ILogicalPlan plan) throws AlgebricksException;
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
index 52c7e2a..1d560ce 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
@@ -94,18 +94,20 @@
     }
 
     @Override
-    public final IPlanPrettyPrinter printOperator(AbstractLogicalOperator op) throws AlgebricksException {
-        printOperatorImpl(op, 0);
+    public final IPlanPrettyPrinter printOperator(AbstractLogicalOperator op, boolean printInputs)
+            throws AlgebricksException {
+        printOperatorImpl(op, 0, printInputs);
         return this;
     }
 
     private void printPlanImpl(ILogicalPlan plan, int indent) throws AlgebricksException {
         for (Mutable<ILogicalOperator> root : plan.getRoots()) {
-            printOperatorImpl((AbstractLogicalOperator) root.getValue(), indent);
+            printOperatorImpl((AbstractLogicalOperator) root.getValue(), indent, true);
         }
     }
 
-    private void printOperatorImpl(AbstractLogicalOperator op, int indent) throws AlgebricksException {
+    private void printOperatorImpl(AbstractLogicalOperator op, int indent, boolean printInputs)
+            throws AlgebricksException {
         op.accept(this, indent);
         IPhysicalOperator pOp = op.getPhysicalOperator();
 
@@ -117,12 +119,20 @@
             appendln(buffer, " -- |" + op.getExecutionMode() + "|");
         }
 
-        for (Mutable<ILogicalOperator> i : op.getInputs()) {
-            printOperatorImpl((AbstractLogicalOperator) i.getValue(), indent + INIT_INDENT);
+        if (printInputs) {
+            for (Mutable<ILogicalOperator> i : op.getInputs()) {
+                printOperatorImpl((AbstractLogicalOperator) i.getValue(), indent + INIT_INDENT, printInputs);
+            }
         }
     }
 
     @Override
+    public IPlanPrettyPrinter printExpression(ILogicalExpression expression) throws AlgebricksException {
+        buffer.append(expression.accept(exprVisitor, 0));
+        return this;
+    }
+
+    @Override
     public Void visitAggregateOperator(AggregateOperator op, Integer indent) throws AlgebricksException {
         addIndent(indent).append("aggregate ").append(str(op.getVariables())).append(" <- ");
         pprintExprList(op.getExpressions(), indent);
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
index 21ea331..999a818 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
@@ -159,8 +159,9 @@
     }
 
     @Override
-    public final IPlanPrettyPrinter printOperator(AbstractLogicalOperator op) throws AlgebricksException {
-        printOperatorImpl(op);
+    public final IPlanPrettyPrinter printOperator(AbstractLogicalOperator op, boolean printInputs)
+            throws AlgebricksException {
+        printOperatorImpl(op, printInputs);
         flushContentToWriter();
         return this;
     }
@@ -172,7 +173,7 @@
                 jsonGenerator.writeStartArray();
             }
             for (Mutable<ILogicalOperator> root : plan.getRoots()) {
-                printOperatorImpl((AbstractLogicalOperator) root.getValue());
+                printOperatorImpl((AbstractLogicalOperator) root.getValue(), true);
             }
             if (writeArrayOfRoots) {
                 jsonGenerator.writeEndArray();
@@ -182,7 +183,7 @@
         }
     }
 
-    private void printOperatorImpl(AbstractLogicalOperator op) throws AlgebricksException {
+    private void printOperatorImpl(AbstractLogicalOperator op, boolean printInputs) throws AlgebricksException {
         try {
             jsonGenerator.writeStartObject();
             op.accept(this, null);
@@ -192,10 +193,10 @@
                 jsonGenerator.writeStringField("physical-operator", pOp.toString());
             }
             jsonGenerator.writeStringField("execution-mode", op.getExecutionMode().toString());
-            if (!op.getInputs().isEmpty()) {
+            if (printInputs && !op.getInputs().isEmpty()) {
                 jsonGenerator.writeArrayFieldStart("inputs");
                 for (Mutable<ILogicalOperator> k : op.getInputs()) {
-                    printOperatorImpl((AbstractLogicalOperator) k.getValue());
+                    printOperatorImpl((AbstractLogicalOperator) k.getValue(), printInputs);
                 }
                 jsonGenerator.writeEndArray();
             }
@@ -206,6 +207,16 @@
     }
 
     @Override
+    public IPlanPrettyPrinter printExpression(ILogicalExpression expression) throws AlgebricksException {
+        try {
+            jsonGenerator.writeString(expression.accept(exprVisitor, null));
+            return this;
+        } catch (IOException e) {
+            throw new AlgebricksException(e, ErrorCode.ERROR_PRINTING_PLAN);
+        }
+    }
+
+    @Override
     public Void visitAggregateOperator(AggregateOperator op, Void indent) throws AlgebricksException {
         try {
             jsonGenerator.writeStringField(OPERATOR_FIELD, "aggregate");
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/AbstractOrderedPartitionedProperty.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/AbstractOrderedPartitionedProperty.java
new file mode 100644
index 0000000..7c280f4
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/AbstractOrderedPartitionedProperty.java
@@ -0,0 +1,111 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.properties;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+abstract class AbstractOrderedPartitionedProperty implements IPartitioningProperty {
+
+    protected final List<OrderColumn> orderColumns;
+
+    protected final RangeMap rangeMap;
+
+    protected INodeDomain domain;
+
+    AbstractOrderedPartitionedProperty(List<OrderColumn> orderColumns, INodeDomain domain) {
+        this(orderColumns, domain, null);
+    }
+
+    AbstractOrderedPartitionedProperty(List<OrderColumn> orderColumns, INodeDomain domain, RangeMap rangeMap) {
+        this.orderColumns = orderColumns;
+        this.domain = domain;
+        this.rangeMap = rangeMap;
+    }
+
+    public List<OrderColumn> getOrderColumns() {
+        return orderColumns;
+    }
+
+    public List<LogicalVariable> getColumns() {
+        ArrayList<LogicalVariable> cols = new ArrayList<>(orderColumns.size());
+        for (OrderColumn oc : orderColumns) {
+            cols.add(oc.getColumn());
+        }
+        return cols;
+    }
+
+    @Override
+    public String toString() {
+        return getPartitioningType().toString() + orderColumns + " domain:" + domain
+                + (rangeMap != null ? " range-map:" + rangeMap : "");
+    }
+
+    @Override
+    public void getColumns(Collection<LogicalVariable> columns) {
+        for (OrderColumn oc : orderColumns) {
+            columns.add(oc.getColumn());
+        }
+    }
+
+    public RangeMap getRangeMap() {
+        return rangeMap;
+    }
+
+    @Override
+    public INodeDomain getNodeDomain() {
+        return domain;
+    }
+
+    @Override
+    public void setNodeDomain(INodeDomain domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public IPartitioningProperty substituteColumnVars(Map<LogicalVariable, LogicalVariable> varMap) {
+        boolean applied = false;
+        List<OrderColumn> newOrderColumns = new ArrayList<>(orderColumns.size());
+        for (OrderColumn orderColumn : orderColumns) {
+            LogicalVariable columnVar = orderColumn.getColumn();
+            LogicalVariable newColumnVar = varMap.get(columnVar);
+            if (newColumnVar != null) {
+                applied = true;
+            } else {
+                newColumnVar = columnVar;
+            }
+            newOrderColumns.add(new OrderColumn(newColumnVar, orderColumn.getOrder()));
+        }
+        return applied ? newInstance(newOrderColumns, domain, rangeMap) : this;
+    }
+
+    @Override
+    public IPartitioningProperty clonePartitioningProperty() {
+        return newInstance(new ArrayList<>(orderColumns), domain, rangeMap);
+    }
+
+    protected abstract AbstractOrderedPartitionedProperty newInstance(List<OrderColumn> columns, INodeDomain domain,
+            RangeMap rangeMap);
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IPartitioningProperty.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IPartitioningProperty.java
index f5eef1c..8e181c0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IPartitioningProperty.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IPartitioningProperty.java
@@ -50,7 +50,27 @@
          * Data is range partitioned (only used on data that has a total order).
          * The partitions are order based on the data range.
          */
-        ORDERED_PARTITIONED
+        ORDERED_PARTITIONED,
+        /**
+         * Data is partially replicated as follows:
+         * <ol>
+         * <li>partition the data according to the {@link #ORDERED_PARTITIONED} layout
+         * <li>then replicate each tuple in each partition to those partitions that correspond to higher ranges
+         *     than the range of this tuple's original partition
+         * </ol>
+         */
+        PARTIAL_BROADCAST_ORDERED_FOLLOWING,
+        /**
+         * Data is partially replicated as follows:
+         * <ol>
+         * <li>assume there are two columns "start" and "end"
+         * <li>partition the data according to the {@link #ORDERED_PARTITIONED} layout on the "start" column
+         * <li>then replicate each tuple in each partition to those partitions that correspond to higher ranges
+         *     than the range of this tuple's original partition, excluding those partitions that start at a range
+         *     higher than the "end" column
+         * </ol>
+         */
+        PARTIAL_BROADCAST_ORDERED_INTERSECT
     }
 
     INodeDomain DOMAIN_FOR_UNPARTITIONED_DATA = new INodeDomain() {
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IntervalColumn.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IntervalColumn.java
new file mode 100644
index 0000000..484561c
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IntervalColumn.java
@@ -0,0 +1,78 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.properties;
+
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind;
+
+public final class IntervalColumn {
+
+    private LogicalVariable startColumn;
+
+    private LogicalVariable endColumn;
+
+    private OrderKind order;
+
+    public IntervalColumn(LogicalVariable startColumn, LogicalVariable endColumn, OrderKind order) {
+        this.startColumn = startColumn;
+        this.endColumn = endColumn;
+        this.order = order;
+    }
+
+    public LogicalVariable getStartColumn() {
+        return startColumn;
+    }
+
+    public LogicalVariable getEndColumn() {
+        return endColumn;
+    }
+
+    public OrderKind getOrder() {
+        return order;
+    }
+
+    public void setStartColumn(LogicalVariable column) {
+        this.startColumn = column;
+    }
+
+    public void setEndColumn(LogicalVariable column) {
+        this.endColumn = column;
+    }
+
+    public void setOrder(OrderKind order) {
+        this.order = order;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof IntervalColumn)) {
+            return false;
+        } else {
+            IntervalColumn ic = (IntervalColumn) obj;
+            return startColumn.equals(ic.getStartColumn()) && endColumn.equals(ic.getEndColumn())
+                    && order == ic.getOrder();
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "{" + startColumn + "," + endColumn + "," + order + "}";
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java
index 0136996..d4fcd36 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java
@@ -18,8 +18,6 @@
  */
 package org.apache.hyracks.algebricks.core.algebra.properties;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -27,32 +25,14 @@
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
 
-public class OrderedPartitionedProperty implements IPartitioningProperty {
-
-    private final List<OrderColumn> orderColumns;
-    private final RangeMap rangeMap;
-    private INodeDomain domain;
+public class OrderedPartitionedProperty extends AbstractOrderedPartitionedProperty {
 
     public OrderedPartitionedProperty(List<OrderColumn> orderColumns, INodeDomain domain) {
-        this(orderColumns, domain, null);
+        super(orderColumns, domain);
     }
 
     public OrderedPartitionedProperty(List<OrderColumn> orderColumns, INodeDomain domain, RangeMap rangeMap) {
-        this.domain = domain;
-        this.orderColumns = orderColumns;
-        this.rangeMap = rangeMap;
-    }
-
-    public List<OrderColumn> getOrderColumns() {
-        return orderColumns;
-    }
-
-    public List<LogicalVariable> getColumns() {
-        ArrayList<LogicalVariable> cols = new ArrayList<>(orderColumns.size());
-        for (OrderColumn oc : orderColumns) {
-            cols.add(oc.getColumn());
-        }
-        return cols;
+        super(orderColumns, domain, rangeMap);
     }
 
     @Override
@@ -61,59 +41,16 @@
     }
 
     @Override
-    public String toString() {
-        return getPartitioningType().toString() + orderColumns + " domain:" + domain
-                + (rangeMap != null ? " range-map:" + rangeMap : "");
-    }
-
-    @Override
     public IPartitioningProperty normalize(Map<LogicalVariable, EquivalenceClass> equivalenceClasses,
             List<FunctionalDependency> fds) {
         List<OrderColumn> columns = PropertiesUtil.replaceOrderColumnsByEqClasses(orderColumns, equivalenceClasses);
         columns = PropertiesUtil.applyFDsToOrderColumns(columns, fds);
-        return new OrderedPartitionedProperty(columns, domain, rangeMap);
+        return newInstance(columns, domain, rangeMap);
     }
 
     @Override
-    public void getColumns(Collection<LogicalVariable> columns) {
-        for (OrderColumn oc : orderColumns) {
-            columns.add(oc.getColumn());
-        }
-    }
-
-    public RangeMap getRangeMap() {
-        return rangeMap;
-    }
-
-    @Override
-    public INodeDomain getNodeDomain() {
-        return domain;
-    }
-
-    @Override
-    public void setNodeDomain(INodeDomain domain) {
-        this.domain = domain;
-    }
-
-    @Override
-    public IPartitioningProperty substituteColumnVars(Map<LogicalVariable, LogicalVariable> varMap) {
-        boolean applied = false;
-        List<OrderColumn> newOrderColumns = new ArrayList<>(orderColumns.size());
-        for (OrderColumn orderColumn : orderColumns) {
-            LogicalVariable columnVar = orderColumn.getColumn();
-            LogicalVariable newColumnVar = varMap.get(columnVar);
-            if (newColumnVar != null) {
-                applied = true;
-            } else {
-                newColumnVar = columnVar;
-            }
-            newOrderColumns.add(new OrderColumn(newColumnVar, orderColumn.getOrder()));
-        }
-        return applied ? new OrderedPartitionedProperty(newOrderColumns, domain, rangeMap) : this;
-    }
-
-    @Override
-    public IPartitioningProperty clonePartitioningProperty() {
-        return new OrderedPartitionedProperty(new ArrayList<>(orderColumns), domain, rangeMap);
+    protected AbstractOrderedPartitionedProperty newInstance(List<OrderColumn> orderColumns, INodeDomain domain,
+            RangeMap rangeMap) {
+        return new OrderedPartitionedProperty(orderColumns, domain, rangeMap);
     }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedFollowingProperty.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedFollowingProperty.java
new file mode 100644
index 0000000..1845d1b
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedFollowingProperty.java
@@ -0,0 +1,52 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.properties;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hyracks.algebricks.core.algebra.base.EquivalenceClass;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public final class PartialBroadcastOrderedFollowingProperty extends AbstractOrderedPartitionedProperty {
+
+    public PartialBroadcastOrderedFollowingProperty(List<OrderColumn> orderColumns, INodeDomain domain,
+            RangeMap rangeMap) {
+        super(orderColumns, domain, rangeMap);
+    }
+
+    @Override
+    public PartitioningType getPartitioningType() {
+        return PartitioningType.PARTIAL_BROADCAST_ORDERED_FOLLOWING;
+    }
+
+    @Override
+    public IPartitioningProperty normalize(Map<LogicalVariable, EquivalenceClass> equivalenceClasses,
+            List<FunctionalDependency> fds) {
+        return this;
+    }
+
+    @Override
+    protected AbstractOrderedPartitionedProperty newInstance(List<OrderColumn> orderColumns, INodeDomain domain,
+            RangeMap rangeMap) {
+        return new PartialBroadcastOrderedFollowingProperty(orderColumns, domain, rangeMap);
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedIntersectProperty.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedIntersectProperty.java
new file mode 100644
index 0000000..cb5b645
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PartialBroadcastOrderedIntersectProperty.java
@@ -0,0 +1,119 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.properties;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hyracks.algebricks.core.algebra.base.EquivalenceClass;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.dataflow.common.data.partition.range.RangeMap;
+
+public final class PartialBroadcastOrderedIntersectProperty implements IPartitioningProperty {
+
+    private final List<IntervalColumn> intervalColumns;
+
+    private final RangeMap rangeMap;
+
+    private INodeDomain domain;
+
+    public PartialBroadcastOrderedIntersectProperty(List<IntervalColumn> intervalColumns, INodeDomain domain,
+            RangeMap rangeMap) {
+        this.intervalColumns = intervalColumns;
+        this.domain = domain;
+        this.rangeMap = rangeMap;
+    }
+
+    @Override
+    public PartitioningType getPartitioningType() {
+        return PartitioningType.PARTIAL_BROADCAST_ORDERED_INTERSECT;
+    }
+
+    @Override
+    public String toString() {
+        return getPartitioningType().toString() + intervalColumns + " domain:" + domain
+                + (rangeMap != null ? " range-map:" + rangeMap : "");
+    }
+
+    public List<IntervalColumn> getIntervalColumns() {
+        return intervalColumns;
+    }
+
+    @Override
+    public void getColumns(Collection<LogicalVariable> columns) {
+        for (IntervalColumn ic : intervalColumns) {
+            columns.add(ic.getStartColumn());
+            columns.add(ic.getEndColumn());
+        }
+    }
+
+    public RangeMap getRangeMap() {
+        return rangeMap;
+    }
+
+    @Override
+    public INodeDomain getNodeDomain() {
+        return domain;
+    }
+
+    @Override
+    public void setNodeDomain(INodeDomain domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public IPartitioningProperty normalize(Map<LogicalVariable, EquivalenceClass> equivalenceClasses,
+            List<FunctionalDependency> fds) {
+        return this;
+    }
+
+    @Override
+    public IPartitioningProperty substituteColumnVars(Map<LogicalVariable, LogicalVariable> varMap) {
+        boolean applied = false;
+        List<IntervalColumn> newIntervalColumns = new ArrayList<>(intervalColumns.size());
+        for (IntervalColumn intervalColumn : intervalColumns) {
+            LogicalVariable startColumnVar = intervalColumn.getStartColumn();
+            LogicalVariable newStartColumnVar = varMap.get(startColumnVar);
+            if (newStartColumnVar != null) {
+                applied = true;
+            } else {
+                newStartColumnVar = startColumnVar;
+            }
+
+            LogicalVariable endColumnVar = intervalColumn.getEndColumn();
+            LogicalVariable newEndColumnVar = varMap.get(endColumnVar);
+            if (newEndColumnVar != null) {
+                applied = true;
+            } else {
+                newEndColumnVar = endColumnVar;
+            }
+
+            newIntervalColumns.add(new IntervalColumn(newStartColumnVar, newEndColumnVar, intervalColumn.getOrder()));
+        }
+        return applied ? new PartialBroadcastOrderedIntersectProperty(newIntervalColumns, domain, rangeMap) : this;
+    }
+
+    @Override
+    public IPartitioningProperty clonePartitioningProperty() {
+        return new PartialBroadcastOrderedIntersectProperty(new ArrayList<>(intervalColumns), domain, rangeMap);
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PropertiesUtil.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PropertiesUtil.java
index 1ebaeeb..1025e44 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PropertiesUtil.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/PropertiesUtil.java
@@ -181,6 +181,32 @@
                     }
                 }
             }
+            case PARTIAL_BROADCAST_ORDERED_FOLLOWING: {
+                switch (dlvd.getPartitioningType()) {
+                    case PARTIAL_BROADCAST_ORDERED_FOLLOWING: {
+                        PartialBroadcastOrderedFollowingProperty pr = (PartialBroadcastOrderedFollowingProperty) reqd;
+                        PartialBroadcastOrderedFollowingProperty pd = (PartialBroadcastOrderedFollowingProperty) dlvd;
+                        return pr.getOrderColumns().equals(pd.getOrderColumns())
+                                && pr.getRangeMap().equals(pd.getRangeMap());
+                    }
+                    default: {
+                        return false;
+                    }
+                }
+            }
+            case PARTIAL_BROADCAST_ORDERED_INTERSECT: {
+                switch (dlvd.getPartitioningType()) {
+                    case PARTIAL_BROADCAST_ORDERED_INTERSECT: {
+                        PartialBroadcastOrderedIntersectProperty pr = (PartialBroadcastOrderedIntersectProperty) reqd;
+                        PartialBroadcastOrderedIntersectProperty pd = (PartialBroadcastOrderedIntersectProperty) dlvd;
+                        return pr.getIntervalColumns().equals(pd.getIntervalColumns())
+                                && pr.getRangeMap().equals(pd.getRangeMap());
+                    }
+                    default: {
+                        return false;
+                    }
+                }
+            }
             default: {
                 return (dlvd.getPartitioningType() == reqd.getPartitioningType());
             }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorManipulationUtil.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorManipulationUtil.java
index 3f5012a..9ca2f6e 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorManipulationUtil.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorManipulationUtil.java
@@ -21,6 +21,7 @@
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.BitSet;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Deque;
 import java.util.List;
@@ -53,6 +54,7 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
 import org.apache.hyracks.algebricks.core.algebra.plan.ALogicalPlanImpl;
 import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
+import org.apache.hyracks.api.exceptions.SourceLocation;
 
 public class OperatorManipulationUtil {
 
@@ -461,4 +463,15 @@
         }
         return -1;
     }
+
+    public static List<Mutable<ILogicalExpression>> createVariableReferences(Collection<LogicalVariable> varList,
+            SourceLocation sourceLoc) {
+        List<Mutable<ILogicalExpression>> varRefs = new ArrayList<>(varList.size());
+        for (LogicalVariable var : varList) {
+            VariableReferenceExpression varRef = new VariableReferenceExpression(var);
+            varRef.setSourceLocation(sourceLoc);
+            varRefs.add(new MutableObject<>(varRef));
+        }
+        return varRefs;
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
index 49d4748..c6589b0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
@@ -352,4 +352,9 @@
                 && rightChild.getExecutionMode().equals(AbstractLogicalOperator.ExecutionMode.UNPARTITIONED);
         return unPartitioned ? StructuralPropertiesVector.EMPTY_PROPERTIES_VECTOR : partitionedPropertiesVector;
     }
+
+    public static boolean isMultiOutputOperator(ILogicalOperator op) {
+        LogicalOperatorTag opTag = op.getOperatorTag();
+        return opTag == LogicalOperatorTag.REPLICATE || opTag == LogicalOperatorTag.SPLIT;
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/config/AlgebricksConfig.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/config/AlgebricksConfig.java
index 0ab21b4..33e27ac 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/config/AlgebricksConfig.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/config/AlgebricksConfig.java
@@ -28,4 +28,5 @@
     public static final int SORT_SAMPLES = 100;
     public static final boolean SORT_PARALLEL = true;
     public static final boolean INDEX_ONLY_DEFAULT = true;
+    public static final boolean SANITYCHECK_DEFAULT = false;
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobGenContext.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobGenContext.java
index 4bc5689..41cde2e 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobGenContext.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobGenContext.java
@@ -43,6 +43,7 @@
 import org.apache.hyracks.algebricks.data.IPrinterFactoryProvider;
 import org.apache.hyracks.algebricks.data.ISerializerDeserializerProvider;
 import org.apache.hyracks.algebricks.data.ITypeTraitProvider;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
 import org.apache.hyracks.api.dataflow.value.IPredicateEvaluatorFactoryProvider;
 import org.apache.hyracks.api.exceptions.IWarningCollector;
@@ -57,7 +58,8 @@
     private final IPrinterFactoryProvider printerFactoryProvider;
     private final ITypeTraitProvider typeTraitProvider;
     private final IMetadataProvider<?, ?> metadataProvider;
-    private final IMissingWriterFactory nonMatchWriterFactory;
+    private final IMissingWriterFactory missingWriterFactory;
+    private final IUnnestingPositionWriterFactory unnestingPositionWriterFactory;
     private final INormalizedKeyComputerFactoryProvider normalizedKeyComputerFactoryProvider;
     private final Object appContext;
     private final IBinaryBooleanInspectorFactory booleanInspectorFactory;
@@ -81,7 +83,7 @@
             IBinaryComparatorFactoryProvider comparatorFactoryProvider, ITypeTraitProvider typeTraitProvider,
             IBinaryBooleanInspectorFactory booleanInspectorFactory,
             IBinaryIntegerInspectorFactory integerInspectorFactory, IPrinterFactoryProvider printerFactoryProvider,
-            IMissingWriterFactory nullWriterFactory,
+            IMissingWriterFactory missingWriterFactory, IUnnestingPositionWriterFactory unnestingPositionWriterFactory,
             INormalizedKeyComputerFactoryProvider normalizedKeyComputerFactoryProvider,
             IExpressionRuntimeProvider expressionRuntimeProvider, IExpressionTypeComputer expressionTypeComputer,
             ITypingContext typingContext, IExpressionEvalSizeComputer expressionEvalSizeComputer,
@@ -102,7 +104,8 @@
         this.printerFactoryProvider = printerFactoryProvider;
         this.clusterLocations = clusterLocations;
         this.normalizedKeyComputerFactoryProvider = normalizedKeyComputerFactoryProvider;
-        this.nonMatchWriterFactory = nullWriterFactory;
+        this.missingWriterFactory = missingWriterFactory;
+        this.unnestingPositionWriterFactory = unnestingPositionWriterFactory;
         this.expressionRuntimeProvider = expressionRuntimeProvider;
         this.expressionTypeComputer = expressionTypeComputer;
         this.typingContext = typingContext;
@@ -190,7 +193,11 @@
     }
 
     public IMissingWriterFactory getMissingWriterFactory() {
-        return nonMatchWriterFactory;
+        return missingWriterFactory;
+    }
+
+    public IUnnestingPositionWriterFactory getUnnestingPositionWriterFactory() {
+        return unnestingPositionWriterFactory;
     }
 
     public INormalizedKeyComputerFactoryProvider getNormalizedKeyComputerFactoryProvider() {
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/OperatorSchemaImpl.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/OperatorSchemaImpl.java
index 9bb620b..dc97f3b 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/OperatorSchemaImpl.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/OperatorSchemaImpl.java
@@ -19,38 +19,64 @@
 package org.apache.hyracks.algebricks.core.jobgen.impl;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.BitSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
 
+import it.unimi.dsi.fastutil.objects.Object2IntMap;
+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
+
 public class OperatorSchemaImpl implements IOperatorSchema {
-    private final Map<LogicalVariable, Integer> varMap;
+
+    private final Object2IntMap<LogicalVariable> varMap;
 
     private final List<LogicalVariable> varList;
 
     public OperatorSchemaImpl() {
-        varMap = new HashMap<LogicalVariable, Integer>();
-        varList = new ArrayList<LogicalVariable>();
+        varMap = new Object2IntOpenHashMap<>();
+        varList = new ArrayList<>();
     }
 
     @Override
     public void addAllVariables(IOperatorSchema source) {
         for (LogicalVariable v : source) {
-            varMap.put(v, varList.size());
-            varList.add(v);
+            addVariable(v);
         }
     }
 
     @Override
     public void addAllNewVariables(IOperatorSchema source) {
-        for (LogicalVariable v : source) {
-            if (varMap.get(v) == null) {
-                varMap.put(v, varList.size());
-                varList.add(v);
+        // source schema can contain the same variable more than once,
+        // we need to add it as many times if this variable is new.
+        int sourceLen = source.getSize();
+        BitSet newVarIdxs = null;
+        for (int i = 0; i < sourceLen; i++) {
+            LogicalVariable v = source.getVariable(i);
+            if (!varMap.containsKey(v)) {
+                addVariable(v);
+                if (newVarIdxs == null) {
+                    newVarIdxs = new BitSet(sourceLen);
+                }
+                newVarIdxs.set(i);
+            } else {
+                // if varMap contains this variable then we need to differentiate between two cases:
+                // 1. the variable was present before this method was called, therefore it's not new
+                // 2. the variable was not present before this method was called, but was added earlier in this loop
+                //    (i.e. it is a duplicate entry of the same variable in the source schema)
+                //    in this case it is considered new and we need to add it to varMap
+                if (newVarIdxs != null) {
+                    for (int j = newVarIdxs.nextSetBit(0); j >= 0; j = newVarIdxs.nextSetBit(j + 1)) {
+                        if (v.equals(source.getVariable(j))) {
+                            // this variable was previously added as 'new'
+                            // we need to add a duplicate entry for this variable
+                            addVariable(v);
+                            break;
+                        }
+                    }
+                }
             }
         }
     }
@@ -95,6 +121,6 @@
 
     @Override
     public String toString() {
-        return varMap.toString();
+        return varMap + " " + varList;
     }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java
index 96e15da..4287b26 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java
@@ -29,17 +29,24 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractOperatorWithNestedPlans;
 import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
 import org.apache.hyracks.algebricks.core.config.AlgebricksConfig;
+import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.util.LogRedactionUtil;
 
 public abstract class AbstractRuleController {
 
+    protected final boolean isTraceEnabled;
+
+    protected boolean isSanityCheckEnabled;
+
     protected IOptimizationContext context;
 
     public AbstractRuleController() {
+        isTraceEnabled = AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled();
     }
 
     public void setContext(IOptimizationContext context) {
         this.context = context;
+        this.isSanityCheckEnabled = context.getPhysicalOptimizationConfig().isSanityCheckEnabled();
     }
 
     /**
@@ -63,31 +70,20 @@
         return rewriteOperatorRef(opRef, rule, true, false);
     }
 
-    private String getPlanString(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
-        if (AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled() && context != null) {
-            IPlanPrettyPrinter prettyPrinter = context.getPrettyPrinter();
-            return prettyPrinter.reset().printOperator((AbstractLogicalOperator) opRef.getValue()).toString();
-        }
-        return null;
-    }
-
-    private void printRuleApplication(IAlgebraicRewriteRule rule, String beforePlan, String afterPlan) {
-        if (AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled()) {
-            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> Rule " + rule.getClass() + " fired.\n");
-            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> Before plan\n" + LogRedactionUtil.userData(beforePlan) + "\n");
-            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> After plan\n" + LogRedactionUtil.userData(afterPlan) + "\n");
-        }
-    }
-
     protected boolean rewriteOperatorRef(Mutable<ILogicalOperator> opRef, IAlgebraicRewriteRule rule,
             boolean enterNestedPlans, boolean fullDFS) throws AlgebricksException {
 
         String preBeforePlan = getPlanString(opRef);
+        sanityCheckBeforeRewrite(rule, opRef);
         if (rule.rewritePre(opRef, context)) {
             String preAfterPlan = getPlanString(opRef);
-            printRuleApplication(rule, preBeforePlan, preAfterPlan);
+            printRuleApplication(rule, "fired", preBeforePlan, preAfterPlan);
+            sanityCheckAfterRewrite(rule, opRef, true, preBeforePlan);
             return true;
+        } else {
+            sanityCheckAfterRewrite(rule, opRef, false, preBeforePlan);
         }
+
         boolean rewritten = false;
         AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
 
@@ -118,12 +114,80 @@
         }
 
         String postBeforePlan = getPlanString(opRef);
+        sanityCheckBeforeRewrite(rule, opRef);
         if (rule.rewritePost(opRef, context)) {
             String postAfterPlan = getPlanString(opRef);
-            printRuleApplication(rule, postBeforePlan, postAfterPlan);
+            printRuleApplication(rule, "fired", postBeforePlan, postAfterPlan);
+            sanityCheckAfterRewrite(rule, opRef, true, postBeforePlan);
             return true;
+        } else {
+            sanityCheckAfterRewrite(rule, opRef, false, postBeforePlan);
         }
 
         return rewritten;
     }
+
+    private void sanityCheckBeforeRewrite(IAlgebraicRewriteRule rule, Mutable<ILogicalOperator> opRef)
+            throws AlgebricksException {
+        if (isSanityCheckEnabled) {
+            sanityCheckBeforeRewriteImpl(rule, opRef);
+        }
+    }
+
+    private void sanityCheckAfterRewrite(IAlgebraicRewriteRule rule, Mutable<ILogicalOperator> opRef, boolean rewritten,
+            String beforePlan) throws AlgebricksException {
+        if (isSanityCheckEnabled) {
+            sanityCheckAfterRewriteImpl(rule, opRef, rewritten, beforePlan);
+        }
+    }
+
+    private void sanityCheckBeforeRewriteImpl(IAlgebraicRewriteRule rule, Mutable<ILogicalOperator> opRef)
+            throws AlgebricksException {
+        try {
+            context.getPlanStabilityVerifier().recordPlanSignature(opRef);
+        } catch (AlgebricksException e) {
+            throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                    String.format("Illegal state before rule %s. %s", rule.getClass().getName(), e.getMessage()));
+        }
+    }
+
+    private void sanityCheckAfterRewriteImpl(IAlgebraicRewriteRule rule, Mutable<ILogicalOperator> opRef,
+            boolean rewritten, String beforePlan) throws AlgebricksException {
+        if (rewritten) {
+            try {
+                context.getPlanStructureVerifier().verifyPlanStructure(opRef);
+            } catch (AlgebricksException e) {
+                throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                        String.format("Fired rule %s produced illegal %s", rule.getClass().getName(), e.getMessage()));
+            }
+        } else {
+            try {
+                context.getPlanStabilityVerifier().comparePlanSignature(opRef);
+            } catch (AlgebricksException e) {
+                if (isTraceEnabled) {
+                    printRuleApplication(rule, "not fired, but failed sanity check: " + e.getMessage(), beforePlan,
+                            getPlanString(opRef));
+                }
+                throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                        String.format("Non-fired rule %s unexpectedly %s", rule.getClass().getName(), e.getMessage()));
+            }
+        }
+        context.getPlanStabilityVerifier().discardPlanSignature();
+    }
+
+    private String getPlanString(Mutable<ILogicalOperator> opRef) throws AlgebricksException {
+        if (isTraceEnabled && context != null) {
+            IPlanPrettyPrinter prettyPrinter = context.getPrettyPrinter();
+            return prettyPrinter.reset().printOperator((AbstractLogicalOperator) opRef.getValue()).toString();
+        }
+        return null;
+    }
+
+    private void printRuleApplication(IAlgebraicRewriteRule rule, String status, String beforePlan, String afterPlan) {
+        if (isTraceEnabled) {
+            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> Rule " + rule.getClass().getName() + " " + status + "\n");
+            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> Before plan\n" + LogRedactionUtil.userData(beforePlan) + "\n");
+            AlgebricksConfig.ALGEBRICKS_LOGGER.trace(">> After plan\n" + LogRedactionUtil.userData(afterPlan) + "\n");
+        }
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java
index 0fa0023..d1fd247 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java
@@ -38,6 +38,8 @@
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableEvalSizeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+import org.apache.hyracks.algebricks.core.algebra.plan.PlanStabilityVerifier;
+import org.apache.hyracks.algebricks.core.algebra.plan.PlanStructureVerifier;
 import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
 import org.apache.hyracks.algebricks.core.algebra.properties.DefaultNodeGroupDomain;
 import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
@@ -89,6 +91,8 @@
     private final IPlanPrettyPrinter prettyPrinter;
     private final IConflictingTypeResolver conflictingTypeResovler;
     private final IWarningCollector warningCollector;
+    private final PlanStructureVerifier planStructureVerifier;
+    private final PlanStabilityVerifier planStabilityVerifier;
 
     public AlgebricksOptimizationContext(int varCounter, IExpressionEvalSizeComputer expressionEvalSizeComputer,
             IMergeAggregationExpressionFactory mergeAggregationExpressionFactory,
@@ -106,6 +110,9 @@
         this.prettyPrinter = prettyPrinter;
         this.conflictingTypeResovler = conflictingTypeResovler;
         this.warningCollector = warningCollector;
+        boolean isSanityCheckEnabled = physicalOptimizationConfig.isSanityCheckEnabled();
+        this.planStructureVerifier = isSanityCheckEnabled ? new PlanStructureVerifier(prettyPrinter, this) : null;
+        this.planStabilityVerifier = isSanityCheckEnabled ? new PlanStabilityVerifier(prettyPrinter) : null;
     }
 
     @Override
@@ -337,4 +344,14 @@
     public IWarningCollector getWarningCollector() {
         return warningCollector;
     }
+
+    @Override
+    public PlanStructureVerifier getPlanStructureVerifier() {
+        return planStructureVerifier;
+    }
+
+    @Override
+    public PlanStabilityVerifier getPlanStabilityVerifier() {
+        return planStabilityVerifier;
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java
index 25d53b0..ab06488 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java
@@ -30,6 +30,7 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractOperatorWithNestedPlans;
 import org.apache.hyracks.algebricks.core.config.AlgebricksConfig;
+import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.util.LogRedactionUtil;
 import org.apache.logging.log4j.Level;
 
@@ -58,6 +59,7 @@
         }
 
         logPlanAt("Plan Before Optimization", Level.TRACE);
+        sanityCheckBeforeOptimization(plan);
         runLogicalOptimizationSets(plan, logicalRewrites);
         computeSchemaBottomUpForPlan(plan);
         runPhysicalOptimizationSets(plan, physicalRewrites);
@@ -118,4 +120,17 @@
         }
         runOptimizationSets(plan, optimizationSet);
     }
+
+    private void sanityCheckBeforeOptimization(ILogicalPlan plan) throws AlgebricksException {
+        if (context.getPhysicalOptimizationConfig().isSanityCheckEnabled()) {
+            try {
+                for (Mutable<ILogicalOperator> opRef : plan.getRoots()) {
+                    context.getPlanStructureVerifier().verifyPlanStructure(opRef);
+                }
+            } catch (AlgebricksException e) {
+                throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                        String.format("Initial plan contains illegal %s", e.getMessage()));
+            }
+        }
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java
index 22eeb23..4f6fee0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java
@@ -40,6 +40,7 @@
     private static final String SORT_PARALLEL = "SORT_PARALLEL";
     private static final String SORT_SAMPLES = "SORT_SAMPLES";
     private static final String INDEX_ONLY = "INDEX_ONLY";
+    private static final String SANITY_CHECK = "SANITY_CHECK";
 
     private Properties properties = new Properties();
 
@@ -181,6 +182,14 @@
         return getBoolean(INDEX_ONLY, AlgebricksConfig.INDEX_ONLY_DEFAULT);
     }
 
+    public void setSanityCheckEnabled(boolean sanityCheck) {
+        setBoolean(SANITY_CHECK, sanityCheck);
+    }
+
+    public boolean isSanityCheckEnabled() {
+        return getBoolean(SANITY_CHECK, AlgebricksConfig.SANITYCHECK_DEFAULT);
+    }
+
     private void setInt(String property, int value) {
         properties.setProperty(property, Integer.toString(value));
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
index a1ae42b..5a8c128 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
@@ -754,6 +754,12 @@
                         break;
                     case UNPARTITIONED:
                         stringBuilder.append("Data is in one place.");
+                    case PARTIAL_BROADCAST_ORDERED_FOLLOWING:
+                        stringBuilder.append("Data is partially broadcasted to partitions.");
+                        break;
+                    case PARTIAL_BROADCAST_ORDERED_INTERSECT:
+                        stringBuilder.append("Data is partially broadcasted to partitions.");
+                        break;
                 }
                 if (nodeDomain instanceof DefaultNodeGroupDomain) {
                     DefaultNodeGroupDomain nd = (DefaultNodeGroupDomain) nodeDomain;
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/Substitution.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/Substitution.java
deleted file mode 100644
index 4495314..0000000
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/Substitution.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.hyracks.algebricks.core.utils;
-
-public class Substitution<T> {
-    public T substituted;
-    public T substitutedWith;
-
-    public Substitution(T substituted, T substitutedWith) {
-        this.substituted = substituted;
-        this.substitutedWith = substitutedWith;
-    }
-}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifierTest.java b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifierTest.java
new file mode 100644
index 0000000..7502788
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStabilityVerifierTest.java
@@ -0,0 +1,316 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.plan;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.SubplanOperator;
+import org.junit.Assert;
+import org.junit.Test;
+
+public final class PlanStabilityVerifierTest extends PlanVerifierTestBase {
+
+    final PlanStabilityVerifier verifier = new PlanStabilityVerifier(planPrinter);
+
+    @Test
+    public void testVerifySuccess() throws Exception {
+        Mutable<ILogicalOperator> opRef1 = createSamplePlan1();
+        verifier.recordPlanSignature(opRef1);
+        verifier.comparePlanSignature(opRef1);
+    }
+
+    @Test
+    public void testAddOperator() throws Exception {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        verifier.recordPlanSignature(opRef1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        op1.getInputs().add(newMutable(op2));
+
+        try {
+            verifier.comparePlanSignature(opRef1);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testAddOperatorInNestedPlan() throws Exception {
+        AssignOperator nestedOp1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+
+        SubplanOperator op = new SubplanOperator(nestedOp1);
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        AssignOperator nestedOp2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        nestedOp1.getInputs().add(newMutable(nestedOp2));
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(nestedOp2)));
+        }
+    }
+
+    @Test
+    public void testRemoveOperator() throws Exception {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        op1.getInputs().add(newMutable(op2));
+
+        verifier.recordPlanSignature(opRef1);
+
+        op1.getInputs().clear();
+
+        try {
+            verifier.comparePlanSignature(opRef1);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("deleted operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testRemoveOperatorInNestedPlan() throws Exception {
+        AssignOperator nestedOp1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+
+        AssignOperator nestedOp2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        nestedOp1.getInputs().add(newMutable(nestedOp2));
+
+        SubplanOperator op = new SubplanOperator(nestedOp1);
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        nestedOp1.getInputs().clear();
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("deleted operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(nestedOp2)));
+        }
+    }
+
+    @Test
+    public void testReplaceOperator() throws Exception {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        op1.getInputs().add(newMutable(op2));
+
+        verifier.recordPlanSignature(opRef1);
+
+        AssignOperator op3 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        op1.getInputs().clear();
+        op1.getInputs().add(newMutable(op3));
+
+        try {
+            verifier.comparePlanSignature(opRef1);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op3)));
+        }
+    }
+
+    @Test
+    public void testReplaceOperatorInNestedPlan() throws Exception {
+        AssignOperator nestedOp1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+
+        AssignOperator nestedOp2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        nestedOp1.getInputs().add(newMutable(nestedOp2));
+
+        SubplanOperator op = new SubplanOperator(nestedOp1);
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        AssignOperator nestedOp3 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        nestedOp1.getInputs().clear();
+        nestedOp1.getInputs().add(newMutable(nestedOp3));
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(nestedOp3)));
+        }
+    }
+
+    @Test
+    public void testAddExpression() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        op.getVariables().add(newVar());
+        LogicalVariable testVar = newVar();
+        op.getExpressions().add(newMutable(newVarRef(testVar)));
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created expression reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printVar(testVar)));
+        }
+    }
+
+    @Test
+    public void testRemoveExpression() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        op.getVariables().add(newVar());
+        LogicalVariable testVar = newVar();
+        op.getExpressions().add(newMutable(newVarRef(testVar)));
+
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        op.getVariables().remove(1);
+        op.getExpressions().remove(1);
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("deleted expression reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printVar(testVar)));
+        }
+    }
+
+    @Test
+    public void testReplaceExpression() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+
+        LogicalVariable testVar = newVar();
+        op.getExpressions().get(0).setValue(newVarRef(testVar));
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertEquals(String.format("created expression instance (%s)", printVar(testVar)), e.getMessage());
+        }
+    }
+
+    @Test
+    public void testCycleBeforeRecord() {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        Mutable<ILogicalOperator> opRef2 = newMutable(op2);
+
+        op1.getInputs().add(opRef2);
+        op2.getInputs().add(opRef1);
+
+        try {
+            verifier.recordPlanSignature(opRef1);
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("cycle"));
+        }
+    }
+
+    @Test
+    public void testCycleBeforeCompare() throws Exception {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        Mutable<ILogicalOperator> opRef2 = newMutable(op2);
+
+        op1.getInputs().add(opRef2);
+
+        verifier.recordPlanSignature(opRef1);
+
+        op2.getInputs().add(new MutableObject<>(op1));
+
+        try {
+            verifier.comparePlanSignature(opRef1);
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("created operator reference"));
+        }
+    }
+
+    @Test
+    public void testApiDiscard() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(newVarRef(newVar())));
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+        verifier.comparePlanSignature(opRef);
+
+        verifier.discardPlanSignature();
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + IllegalStateException.class.getName());
+        } catch (IllegalStateException e) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testApiRecordAfterRecordFailure() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(newVarRef(newVar())));
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        verifier.recordPlanSignature(opRef);
+        verifier.recordPlanSignature(opRef); // ok. the previously recorded state is discarded
+        verifier.comparePlanSignature(opRef);
+    }
+
+    @Test
+    public void testApiCompareWithoutRecordFailure() throws Exception {
+        AssignOperator op = newAssign(newVar(), newMutable(newVarRef(newVar())));
+        Mutable<ILogicalOperator> opRef = newMutable(op);
+
+        try {
+            verifier.comparePlanSignature(opRef);
+            Assert.fail("Expected to catch " + IllegalStateException.class.getName());
+        } catch (IllegalStateException e) {
+            // expected
+        }
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifierTest.java b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifierTest.java
new file mode 100644
index 0000000..f047cec
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanStructureVerifierTest.java
@@ -0,0 +1,351 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.plan;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IMissableTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.SelectOperator;
+import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
+import org.junit.Assert;
+import org.junit.Test;
+
+public final class PlanStructureVerifierTest extends PlanVerifierTestBase implements ITypingContext {
+
+    final PlanStructureVerifier verifier = new PlanStructureVerifier(planPrinter, this);
+
+    @Test
+    public void testVerifySuccess() throws Exception {
+        Mutable<ILogicalOperator> opRef1 = createSamplePlan1();
+        verifier.verifyPlanStructure(opRef1);
+    }
+
+    @Test
+    public void testSharedExpressionReferenceInSameOp() {
+        LogicalVariable v1 = newVar();
+        AssignOperator op1 = newAssign(v1, newMutable(ConstantExpression.TRUE));
+
+        Mutable<ILogicalExpression> v1Ref = newMutable(newVarRef(v1));
+
+        AssignOperator op2 = newAssign(newVar(), v1Ref, newVar(), v1Ref);
+        op2.getInputs().add(newMutable(op1));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op2));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared expression reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("to (" + printVar(v1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("in " + printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testSharedExpressionInSameOp() {
+        LogicalVariable v1 = newVar();
+        AssignOperator op1 = newAssign(v1, newMutable(ConstantExpression.TRUE));
+
+        ILogicalExpression v1Ref = newVarRef(v1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(v1Ref), newVar(), newMutable(v1Ref));
+        op2.getInputs().add(newMutable(op1));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op2));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared expression instance"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("(" + printVar(v1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("in " + printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testSharedExpressionReferenceBetweenOps() {
+        LogicalVariable v1 = newVar();
+        AssignOperator op1 = newAssign(v1, newMutable(ConstantExpression.TRUE));
+
+        Mutable<ILogicalExpression> v1Ref = newMutable(newVarRef(v1));
+
+        AssignOperator op2 = newAssign(newVar(), v1Ref);
+        op2.getInputs().add(newMutable(op1));
+
+        AssignOperator op3 = newAssign(newVar(), v1Ref);
+        op3.getInputs().add(newMutable(op2));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op3));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared expression reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("to (" + printVar(v1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op3)));
+        }
+    }
+
+    @Test
+    public void testSharedExpressionBetweenOps() {
+        LogicalVariable v1 = newVar();
+        AssignOperator op1 = newAssign(v1, newMutable(ConstantExpression.TRUE));
+
+        ILogicalExpression v1Ref = newVarRef(v1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(v1Ref));
+        op2.getInputs().add(newMutable(op1));
+
+        AssignOperator op3 = newAssign(newVar(), newMutable(v1Ref));
+        op3.getInputs().add(newMutable(op2));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op3));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared expression instance"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("(" + printVar(v1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op3)));
+        }
+    }
+
+    @Test
+    public void testSharedOperatorReferenceInSameOp() {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        InnerJoinOperator op2 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+        op2.getInputs().add(opRef1);
+        op2.getInputs().add(opRef1);
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op2));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("to (" + printOp(op1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("in " + printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testSharedOperatorInSameOp() {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+
+        InnerJoinOperator op2 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+        op2.getInputs().add(newMutable(op1));
+        op2.getInputs().add(newMutable(op1));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op2));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared operator instance"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("(" + printOp(op1) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("in " + printOp(op2)));
+        }
+    }
+
+    @Test
+    public void testSharedOperatorReferenceBetweenOps() {
+        InnerJoinOperator op1 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+
+        InnerJoinOperator op2 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+        op1.getInputs().add(newMutable(op2));
+
+        InnerJoinOperator op3 = new InnerJoinOperator(newMutable(ConstantExpression.FALSE));
+        op1.getInputs().add(newMutable(op3));
+
+        AssignOperator op4 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        Mutable<ILogicalOperator> opRef4 = newMutable(op4);
+
+        op2.getInputs().add(opRef4);
+        op2.getInputs().add(newMutable(newAssign(newVar(), newMutable(ConstantExpression.MISSING))));
+
+        op3.getInputs().add(opRef4);
+        op3.getInputs().add(newMutable(newAssign(newVar(), newMutable(ConstantExpression.MISSING))));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op1));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared operator reference"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("to (" + printOp(op4) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op3)));
+        }
+    }
+
+    @Test
+    public void testSharedOperatorBetweenOps() {
+        InnerJoinOperator op1 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+
+        InnerJoinOperator op2 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+        op1.getInputs().add(newMutable(op2));
+
+        InnerJoinOperator op3 = new InnerJoinOperator(newMutable(ConstantExpression.FALSE));
+        op1.getInputs().add(newMutable(op3));
+
+        AssignOperator op4 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+
+        op2.getInputs().add(newMutable(op4));
+        op2.getInputs().add(newMutable(newAssign(newVar(), newMutable(ConstantExpression.MISSING))));
+
+        op3.getInputs().add(newMutable(op4));
+        op3.getInputs().add(newMutable(newAssign(newVar(), newMutable(ConstantExpression.MISSING))));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op1));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("shared operator instance"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("(" + printOp(op4) + ")"));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op2)));
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains(printOp(op3)));
+        }
+    }
+
+    @Test
+    public void testCycle() {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        Mutable<ILogicalOperator> opRef1 = newMutable(op1);
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        Mutable<ILogicalOperator> opRef2 = newMutable(op2);
+
+        op1.getInputs().add(opRef2);
+        op2.getInputs().add(opRef1);
+
+        try {
+            verifier.verifyPlanStructure(opRef1);
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("cycle"));
+        }
+    }
+
+    @Test
+    public void testNoSchema() {
+        EmptyTupleSourceOperator ets = newETS();
+        ets.recomputeSchema();
+
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+        op1.getInputs().add(newMutable(ets));
+        op1.recomputeSchema();
+
+        op1.getInputs().clear();
+
+        AssignOperator op2 = newAssign(newVar(), newMutable(ConstantExpression.FALSE));
+        // no schema
+        op1.getInputs().add(newMutable(op2));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op1));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("missing schema"));
+        }
+    }
+
+    @Test
+    public void testNoTypeEnvironment() throws Exception {
+        EmptyTupleSourceOperator ets = newETS();
+        computeAndSetTypeEnvironmentForOperator(ets);
+        ets.recomputeSchema();
+
+        SelectOperator op1 = new SelectOperator(newMutable(ConstantExpression.TRUE), false, null);
+        op1.getInputs().add(newMutable(ets));
+        computeAndSetTypeEnvironmentForOperator(op1);
+        op1.recomputeSchema();
+
+        op1.getInputs().clear();
+
+        SelectOperator op2 = new SelectOperator(newMutable(ConstantExpression.FALSE), false, null);
+        op2.getInputs().add(newMutable(ets));
+        op2.recomputeSchema();
+        // no type env
+
+        op1.getInputs().add(newMutable(op2));
+
+        try {
+            verifier.verifyPlanStructure(newMutable(op1));
+            Assert.fail("Expected to catch " + AlgebricksException.class.getName());
+        } catch (AlgebricksException e) {
+            Assert.assertTrue(e.getMessage(), e.getMessage().contains("missing output type environment"));
+        }
+    }
+
+    // ITypingContext
+
+    final Map<ILogicalOperator, IVariableTypeEnvironment> typeEnvMap = new HashMap<>();
+
+    @Override
+    public void computeAndSetTypeEnvironmentForOperator(ILogicalOperator op) throws AlgebricksException {
+        setOutputTypeEnvironment(op, op.computeOutputTypeEnvironment(this));
+    }
+
+    @Override
+    public void setOutputTypeEnvironment(ILogicalOperator op, IVariableTypeEnvironment env) {
+        typeEnvMap.put(op, env);
+    }
+
+    @Override
+    public IVariableTypeEnvironment getOutputTypeEnvironment(ILogicalOperator op) {
+        return typeEnvMap.get(op);
+    }
+
+    @Override
+    public void invalidateTypeEnvironmentForOperator(ILogicalOperator op) {
+        typeEnvMap.remove(op);
+    }
+
+    @Override
+    public IExpressionTypeComputer getExpressionTypeComputer() {
+        return null;
+    }
+
+    @Override
+    public IMissableTypeComputer getMissableTypeComputer() {
+        return null;
+    }
+
+    @Override
+    public IConflictingTypeResolver getConflictingTypeResolver() {
+        return null;
+    }
+
+    @Override
+    public IMetadataProvider<?, ?> getMetadataProvider() {
+        return null;
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanVerifierTestBase.java b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanVerifierTestBase.java
new file mode 100644
index 0000000..7bfbaa9
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/test/java/org/apache/hyracks/algebricks/core/algebra/plan/PlanVerifierTestBase.java
@@ -0,0 +1,119 @@
+/*
+ * 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.hyracks.algebricks.core.algebra.plan;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.SubplanOperator;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
+
+public abstract class PlanVerifierTestBase {
+    final IPlanPrettyPrinter planPrinter = PlanPrettyPrinter.createStringPlanPrettyPrinter();
+
+    int varCounter;
+
+    EmptyTupleSourceOperator newETS() {
+        return new EmptyTupleSourceOperator();
+    }
+
+    AssignOperator newAssign(LogicalVariable var, Mutable<ILogicalExpression> exprRef) {
+        return new AssignOperator(var, exprRef);
+    }
+
+    AssignOperator newAssign(LogicalVariable var1, Mutable<ILogicalExpression> exprRef1, LogicalVariable var2,
+            Mutable<ILogicalExpression> exprRef2) {
+        AssignOperator op = new AssignOperator(var1, exprRef1);
+        op.getVariables().add(var2);
+        op.getExpressions().add(exprRef2);
+        return op;
+    }
+
+    <T> Mutable<T> newMutable(T item) {
+        return new MutableObject<>(item);
+    }
+
+    VariableReferenceExpression newVarRef(LogicalVariable var) {
+        return new VariableReferenceExpression(var);
+    }
+
+    LogicalVariable newVar() {
+        return new LogicalVariable(varCounter++);
+    }
+
+    String printOp(ILogicalOperator op) {
+        try {
+            return planPrinter.reset().printOperator((AbstractLogicalOperator) op, false).toString();
+        } catch (AlgebricksException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    String printExpr(ILogicalExpression expr) {
+        try {
+            return planPrinter.reset().printExpression(expr).toString();
+        } catch (AlgebricksException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    String printVar(LogicalVariable var) {
+        return printExpr(newVarRef(var));
+    }
+
+    Mutable<ILogicalOperator> createSamplePlan1() {
+        AssignOperator op1 = newAssign(newVar(), newMutable(ConstantExpression.TRUE));
+
+        SubplanOperator op2 = new SubplanOperator(newAssign(newVar(), newMutable(ConstantExpression.TRUE)));
+        op1.getInputs().add(newMutable(op2));
+
+        InnerJoinOperator op3 = new InnerJoinOperator(newMutable(ConstantExpression.TRUE));
+        op2.getInputs().add(newMutable(op3));
+
+        AssignOperator op4 = new AssignOperator(newVar(), newMutable(ConstantExpression.TRUE));
+        op3.getInputs().add(newMutable(op4));
+
+        AssignOperator op5 = new AssignOperator(newVar(), newMutable(ConstantExpression.FALSE));
+        op3.getInputs().add(newMutable(op5));
+
+        ReplicateOperator op6 = new ReplicateOperator(2);
+
+        op4.getInputs().add(newMutable(op6));
+        op6.getOutputs().add(newMutable(op4));
+
+        op5.getInputs().add(newMutable(op6));
+        op6.getOutputs().add(newMutable(op5));
+
+        op6.getInputs().add(newMutable(newETS()));
+
+        return newMutable(op1);
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriter.java b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriter.java
new file mode 100644
index 0000000..935665e
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriter.java
@@ -0,0 +1,26 @@
+/*
+ * 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.hyracks.algebricks.data;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+public interface IUnnestingPositionWriter {
+    void write(DataOutput dataOutput, long position) throws IOException;
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriterFactory.java b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriterFactory.java
new file mode 100644
index 0000000..164ea99
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/IUnnestingPositionWriterFactory.java
@@ -0,0 +1,27 @@
+/*
+ * 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.hyracks.algebricks.data;
+
+import java.io.Serializable;
+
+@FunctionalInterface
+public interface IUnnestingPositionWriterFactory extends Serializable {
+    IUnnestingPositionWriter createUnnestingPositionWriter();
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/AbstractIntroduceGroupByCombinerRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/AbstractIntroduceGroupByCombinerRule.java
index 6c42929..b917ce1 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/AbstractIntroduceGroupByCombinerRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/AbstractIntroduceGroupByCombinerRule.java
@@ -87,7 +87,7 @@
             if (!newGbyLiveVars.contains(usedVar)) {
                 // Let the left-hand side of gbyOp's decoration expressions populated through the combiner group-by without
                 // any intermediate assignment.
-                newGbyOp.addDecorExpression(null, p.second.getValue());
+                newGbyOp.addDecorExpression(null, p.second.getValue().cloneExpression());
                 newGbyLiveVars.add(usedVar);
             }
         }
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
index 706028b..cf95d01 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
@@ -70,6 +70,8 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.HashPartitionMergeExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.MicroStableSortPOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.OneToOneExchangePOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.PartialBroadcastRangeFollowingExchangePOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.physical.PartialBroadcastRangeIntersectExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.RandomMergeExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.RandomPartitionExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.RangePartitionExchangePOperator;
@@ -90,6 +92,8 @@
 import org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
 import org.apache.hyracks.algebricks.core.algebra.properties.OrderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedFollowingProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.PartialBroadcastOrderedIntersectProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
 import org.apache.hyracks.algebricks.core.algebra.properties.PropertiesUtil;
 import org.apache.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
@@ -601,6 +605,18 @@
                     pop = new RandomPartitionExchangePOperator(nd);
                     break;
                 }
+                case PARTIAL_BROADCAST_ORDERED_FOLLOWING: {
+                    PartialBroadcastOrderedFollowingProperty pbp = (PartialBroadcastOrderedFollowingProperty) pp;
+                    pop = new PartialBroadcastRangeFollowingExchangePOperator(pbp.getOrderColumns(),
+                            pbp.getNodeDomain(), pbp.getRangeMap());
+                    break;
+                }
+                case PARTIAL_BROADCAST_ORDERED_INTERSECT: {
+                    PartialBroadcastOrderedIntersectProperty pbp = (PartialBroadcastOrderedIntersectProperty) pp;
+                    pop = new PartialBroadcastRangeIntersectExchangePOperator(pbp.getIntervalColumns(),
+                            pbp.getNodeDomain(), pbp.getRangeMap());
+                    break;
+                }
                 default: {
                     throw new NotImplementedException("Enforcer for " + pp.getPartitioningType()
                             + " partitioning type has not been implemented.");
@@ -678,14 +694,16 @@
     private IPhysicalOperator createRangePartitionerConnector(AbstractLogicalOperator parentOp, INodeDomain domain,
             IPartitioningProperty requiredPartitioning, int childIndex, IOptimizationContext ctx)
             throws AlgebricksException {
-        // options for range partitioning: 1. static range map, 2. dynamic range map computed at run time
+        // options for range partitioning: 1. Range Map from Hint computed at run time 2. static range map, 3. dynamic range map computed at run time
         List<OrderColumn> partitioningColumns = ((OrderedPartitionedProperty) requiredPartitioning).getOrderColumns();
-        if (parentOp.getAnnotations().containsKey(OperatorAnnotations.USE_STATIC_RANGE)) {
-            RangeMap rangeMap = (RangeMap) parentOp.getAnnotations().get(OperatorAnnotations.USE_STATIC_RANGE);
+        RangeMap rangeMap = ((OrderedPartitionedProperty) requiredPartitioning).getRangeMap();
+        if (rangeMap != null) {
             return new RangePartitionExchangePOperator(partitioningColumns, domain, rangeMap);
-        } else {
-            return createDynamicRangePartitionExchangePOperator(parentOp, ctx, domain, partitioningColumns, childIndex);
+        } else if (parentOp.getAnnotations().containsKey(OperatorAnnotations.USE_STATIC_RANGE)) {
+            RangeMap map = (RangeMap) parentOp.getAnnotations().get(OperatorAnnotations.USE_STATIC_RANGE);
+            return new RangePartitionExchangePOperator(partitioningColumns, domain, map);
         }
+        return createDynamicRangePartitionExchangePOperator(parentOp, ctx, domain, partitioningColumns, childIndex);
     }
 
     private IPhysicalOperator createDynamicRangePartitionExchangePOperator(AbstractLogicalOperator parentOp,
@@ -698,9 +716,8 @@
         // these two exchange ops are needed so that the parents of replicate stay the same during later optimizations.
         // This is because replicate operator has references to its parents. If any later optimizations add new parents,
         // then replicate would still point to the old ones.
-        MutableObject<ILogicalOperator> replicateOpRef = new MutableObject<>(replicateOp);
-        ExchangeOperator exchToLocalAgg = createOneToOneExchangeOp(replicateOpRef, ctx);
-        ExchangeOperator exchToForward = createOneToOneExchangeOp(replicateOpRef, ctx);
+        ExchangeOperator exchToLocalAgg = createOneToOneExchangeOp(new MutableObject<>(replicateOp), ctx);
+        ExchangeOperator exchToForward = createOneToOneExchangeOp(new MutableObject<>(replicateOp), ctx);
         MutableObject<ILogicalOperator> exchToLocalAggRef = new MutableObject<>(exchToLocalAgg);
         MutableObject<ILogicalOperator> exchToForwardRef = new MutableObject<>(exchToForward);
 
@@ -732,7 +749,7 @@
         parentOp.getInputs().set(childIndex, forwardRef);
         parentOp.recomputeSchema();
         ctx.computeAndSetTypeEnvironmentForOperator(parentOp);
-        return new RangePartitionExchangePOperator(partitioningColumns, rangeMapKey, targetDomain);
+        return new RangePartitionExchangePOperator(partitioningColumns, targetDomain, rangeMapKey);
     }
 
     private static ReplicateOperator createReplicateOperator(Mutable<ILogicalOperator> inputOperator,
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java
index b8dd24f..2cfa241 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java
@@ -256,6 +256,7 @@
                     }
                 } else {
                     if (expr.isFunctional() && assignCommonExpression(exprEqClass, expr)) {
+                        modified = true;
                         //re-obtain the live vars after rewriting in the method called in the if condition
                         Set<LogicalVariable> liveVars = new HashSet<LogicalVariable>();
                         VariableUtilities.getLiveVariables(op, liveVars);
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonOperatorsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonOperatorsRule.java
index 176ab7a..bd24644 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonOperatorsRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonOperatorsRule.java
@@ -29,13 +29,13 @@
 import org.apache.commons.lang3.mutable.MutableInt;
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.ListSet;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
 import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractReplicateOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
@@ -48,6 +48,7 @@
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.OneToOneExchangePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.ReplicatePOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.StreamProjectPOperator;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 
@@ -172,7 +173,6 @@
             ReplicateOperator rop = new ReplicateOperator(group.size(), materializationFlags);
             rop.setSourceLocation(candidateSourceLoc);
             rop.setPhysicalOperator(new ReplicatePOperator());
-            Mutable<ILogicalOperator> ropRef = new MutableObject<ILogicalOperator>(rop);
             AbstractLogicalOperator aopCandidate = (AbstractLogicalOperator) candidate.getValue();
             List<Mutable<ILogicalOperator>> originalCandidateParents = childrenToParents.get(candidate);
 
@@ -186,51 +186,55 @@
                 Mutable<ILogicalOperator> beforeExchangeRef = new MutableObject<ILogicalOperator>(beforeExchange);
                 beforeExchange.getInputs().add(candidate);
                 context.computeAndSetTypeEnvironmentForOperator(beforeExchange);
+                beforeExchange.recomputeSchema();
                 rop.getInputs().add(beforeExchangeRef);
             }
             context.computeAndSetTypeEnvironmentForOperator(rop);
+            rop.recomputeSchema();
 
             for (Mutable<ILogicalOperator> parentRef : originalCandidateParents) {
                 AbstractLogicalOperator parent = (AbstractLogicalOperator) parentRef.getValue();
                 int index = parent.getInputs().indexOf(candidate);
                 if (parent.getOperatorTag() == LogicalOperatorTag.EXCHANGE) {
-                    parent.getInputs().set(index, ropRef);
+                    parent.getInputs().set(index, new MutableObject<>(rop));
                     rop.getOutputs().add(parentRef);
                 } else {
                     AbstractLogicalOperator exchange = new ExchangeOperator();
                     exchange.setPhysicalOperator(new OneToOneExchangePOperator());
                     exchange.setExecutionMode(rop.getExecutionMode());
                     MutableObject<ILogicalOperator> exchangeRef = new MutableObject<ILogicalOperator>(exchange);
-                    exchange.getInputs().add(ropRef);
+                    exchange.getInputs().add(new MutableObject<>(rop));
                     rop.getOutputs().add(exchangeRef);
                     context.computeAndSetTypeEnvironmentForOperator(exchange);
+                    exchange.recomputeSchema();
                     parent.getInputs().set(index, exchangeRef);
                     context.computeAndSetTypeEnvironmentForOperator(parent);
+                    parent.recomputeSchema();
                 }
             }
-            List<LogicalVariable> liveVarsNew = new ArrayList<LogicalVariable>();
+            List<LogicalVariable> liveVarsNew = new ArrayList<>();
             VariableUtilities.getLiveVariables(candidate.getValue(), liveVarsNew);
-            ArrayList<Mutable<ILogicalExpression>> assignExprs = new ArrayList<Mutable<ILogicalExpression>>();
-            for (LogicalVariable liveVar : liveVarsNew) {
-                VariableReferenceExpression liveVarRef = new VariableReferenceExpression(liveVar);
-                liveVarRef.setSourceLocation(candidateSourceLoc);
-                assignExprs.add(new MutableObject<ILogicalExpression>(liveVarRef));
-            }
             for (Mutable<ILogicalOperator> ref : group) {
                 if (ref.equals(candidate)) {
                     continue;
                 }
-                ArrayList<LogicalVariable> liveVars = new ArrayList<LogicalVariable>();
-                Map<LogicalVariable, LogicalVariable> variableMappingBack =
-                        new HashMap<LogicalVariable, LogicalVariable>();
+                ListSet<LogicalVariable> liveVarsNewSet = new ListSet<>(liveVarsNew);
+                List<LogicalVariable> liveVars = new ArrayList<>(liveVarsNew.size());
+                ListSet<LogicalVariable> liveVarsSet = new ListSet<>();
+                Map<LogicalVariable, LogicalVariable> variableMappingBack = new HashMap<>();
                 IsomorphismUtilities.mapVariablesTopDown(ref.getValue(), candidate.getValue(), variableMappingBack);
-                for (int i = 0; i < liveVarsNew.size(); i++) {
-                    liveVars.add(variableMappingBack.get(liveVarsNew.get(i)));
+                for (LogicalVariable liveVarNew : liveVarsNew) {
+                    liveVars.add(variableMappingBack.get(liveVarNew));
+                }
+                for (LogicalVariable liveVarNew : liveVarsNewSet) {
+                    liveVarsSet.add(variableMappingBack.get(liveVarNew));
                 }
 
                 SourceLocation refSourceLoc = ref.getValue().getSourceLocation();
 
-                AbstractLogicalOperator assignOperator = new AssignOperator(liveVars, assignExprs);
+                List<Mutable<ILogicalExpression>> assignExprs =
+                        OperatorManipulationUtil.createVariableReferences(liveVarsNewSet, candidateSourceLoc);
+                AbstractLogicalOperator assignOperator = new AssignOperator(new ArrayList<>(liveVarsSet), assignExprs);
                 assignOperator.setSourceLocation(refSourceLoc);
                 assignOperator.setExecutionMode(rop.getExecutionMode());
                 assignOperator.setPhysicalOperator(new AssignPOperator());
@@ -241,7 +245,7 @@
                 AbstractLogicalOperator exchOp = new ExchangeOperator();
                 exchOp.setPhysicalOperator(new OneToOneExchangePOperator());
                 exchOp.setExecutionMode(rop.getExecutionMode());
-                exchOp.getInputs().add(ropRef);
+                exchOp.getInputs().add(new MutableObject<>(rop));
                 MutableObject<ILogicalOperator> exchOpRef = new MutableObject<ILogicalOperator>(exchOp);
                 rop.getOutputs().add(exchOpRef);
                 assignOperator.getInputs().add(exchOpRef);
@@ -249,8 +253,11 @@
 
                 // set the types
                 context.computeAndSetTypeEnvironmentForOperator(exchOp);
+                exchOp.recomputeSchema();
                 context.computeAndSetTypeEnvironmentForOperator(assignOperator);
+                assignOperator.recomputeSchema();
                 context.computeAndSetTypeEnvironmentForOperator(projectOperator);
+                projectOperator.recomputeSchema();
 
                 List<Mutable<ILogicalOperator>> parentOpList = childrenToParents.get(ref);
                 for (Mutable<ILogicalOperator> parentOpRef : parentOpList) {
@@ -270,8 +277,10 @@
                         exchg.getInputs().add(new MutableObject<ILogicalOperator>(childOp));
                         parentOp.getInputs().set(index, new MutableObject<ILogicalOperator>(exchg));
                         context.computeAndSetTypeEnvironmentForOperator(exchg);
+                        exchg.recomputeSchema();
                     }
                     context.computeAndSetTypeEnvironmentForOperator(parentOp);
+                    parentOp.recomputeSchema();
                 }
             }
             cleanupPlan();
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InsertProjectBeforeUnionRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InsertProjectBeforeUnionRule.java
index c4ae57d..5745d9b 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InsertProjectBeforeUnionRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InsertProjectBeforeUnionRule.java
@@ -82,7 +82,9 @@
         projectOp.setPhysicalOperator(new StreamProjectPOperator());
         projectOp.setExecutionMode(inputOp.getExecutionMode());
         context.computeAndSetTypeEnvironmentForOperator(projectOp);
+        projectOp.recomputeSchema();
         context.computeAndSetTypeEnvironmentForOperator(inputOp);
+        inputOp.recomputeSchema();
     }
 
     private boolean isIdentical(List<LogicalVariable> finalSchema, List<LogicalVariable> inputSchema)
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
index a724014..ca92331 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
@@ -165,6 +165,7 @@
                     projectOp.getInputs().add(new MutableObject<ILogicalOperator>(childOp));
                     op.getInputs().get(i).setValue(projectOp);
                     context.computeAndSetTypeEnvironmentForOperator(projectOp);
+                    projectOp.recomputeSchema();
                     modified = true;
                 }
             }
@@ -177,11 +178,13 @@
             if (liveVars.size() == projectVarsTemp.size() && liveVars.containsAll(projectVarsTemp)) {
                 // The existing project has become useless. Remove it.
                 parentOp.getInputs().get(parentInputIndex).setValue(op.getInputs().get(0).getValue());
+                modified = true;
             }
         }
 
         if (modified) {
             context.computeAndSetTypeEnvironmentForOperator(op);
+            op.recomputeSchema();
         }
         return modified;
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IsolateHyracksOperatorsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IsolateHyracksOperatorsRule.java
index 35b2dea..e13ec30 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IsolateHyracksOperatorsRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IsolateHyracksOperatorsRule.java
@@ -27,10 +27,8 @@
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
 import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.physical.OneToOneExchangePOperator;
-import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
 public class IsolateHyracksOperatorsRule implements IAlgebraicRewriteRule {
@@ -124,20 +122,17 @@
         return false;
     }
 
-    private final static void insertOneToOneExchange(Mutable<ILogicalOperator> i, IOptimizationContext context)
+    private static void insertOneToOneExchange(Mutable<ILogicalOperator> inOpRef, IOptimizationContext context)
             throws AlgebricksException {
+        ILogicalOperator inOp = inOpRef.getValue();
+
         ExchangeOperator e = new ExchangeOperator();
         e.setPhysicalOperator(new OneToOneExchangePOperator());
-        ILogicalOperator inOp = i.getValue();
-
-        e.getInputs().add(new MutableObject<ILogicalOperator>(inOp));
-        i.setValue(e);
-        // e.recomputeSchema();
-        OperatorPropertiesUtil.computeSchemaAndPropertiesRecIfNull(e, context);
-        ExecutionMode em = ((AbstractLogicalOperator) inOp).getExecutionMode();
-        e.setExecutionMode(em);
-        e.computeDeliveredPhysicalProperties(context);
+        e.getInputs().add(new MutableObject<>(inOp));
+        e.setExecutionMode(inOp.getExecutionMode());
         context.computeAndSetTypeEnvironmentForOperator(e);
-    }
+        e.recomputeSchema();
 
+        inOpRef.setValue(e);
+    }
 }
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushAssignBelowUnionAllRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushAssignBelowUnionAllRule.java
deleted file mode 100644
index 145761c..0000000
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushAssignBelowUnionAllRule.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * 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.hyracks.algebricks.rewriter.rules;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.Triple;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-/**
- * Pushes an AssignOperator below a UnionAll operator by creating an new AssignOperator below each of
- * the UnionAllOperator's branches with appropriate variable replacements.
- * This rule can help to enable other rules that are difficult to fire across a UnionAllOperator,
- * for example, eliminating common sub-expressions.
- * Example:
- * Before plan:
- * ...
- * assign [$$20, $$21] <- [funcA($$3), funcB($$6)]
- * union ($$1, $$2, $$3) ($$4, $$5, $$6)
- * union_branch_0
- * ...
- * union_branch_1
- * ...
- * After plan:
- * ...
- * union ($$1, $$2, $$3) ($$4, $$5, $$6) ($$22, $$24, $$20) ($$23, $$25, $$21)
- * assign [$$22, $$23] <- [funcA($$1), funcB($$4)]
- * union_branch_0
- * ...
- * assign [$$24, $$25] <- [funcA($$2), funcB($$5)]
- * union_branch_1
- * ...
- */
-public class PushAssignBelowUnionAllRule implements IAlgebraicRewriteRule {
-
-    @Override
-    public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
-            throws AlgebricksException {
-        return false;
-    }
-
-    @Override
-    public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
-            throws AlgebricksException {
-        AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
-        if (!op.hasInputs()) {
-            return false;
-        }
-
-        boolean modified = false;
-        inputs_loop: for (int i = 0; i < op.getInputs().size(); i++) {
-            AbstractLogicalOperator childOp = (AbstractLogicalOperator) op.getInputs().get(i).getValue();
-            if (childOp.getOperatorTag() != LogicalOperatorTag.ASSIGN) {
-                continue;
-            }
-            AssignOperator assignOp = (AssignOperator) childOp;
-            for (Mutable<ILogicalExpression> expr : assignOp.getExpressions()) {
-                if (!expr.getValue().isFunctional()) {
-                    continue inputs_loop;
-                }
-            }
-
-            AbstractLogicalOperator childOfChildOp = (AbstractLogicalOperator) assignOp.getInputs().get(0).getValue();
-            if (childOfChildOp.getOperatorTag() != LogicalOperatorTag.UNIONALL) {
-                continue;
-            }
-            UnionAllOperator unionOp = (UnionAllOperator) childOfChildOp;
-            Set<LogicalVariable> assignUsedVars = new HashSet<>();
-            VariableUtilities.getUsedVariables(assignOp, assignUsedVars);
-            List<LogicalVariable> assignVars = assignOp.getVariables();
-            AssignOperator[] newAssignOps = new AssignOperator[2];
-            for (int j = 0; j < unionOp.getInputs().size(); j++) {
-                newAssignOps[j] = createAssignBelowUnionAllBranch(unionOp, j, assignOp, assignUsedVars, context);
-                if (newAssignOps[j] == null) {
-                    continue inputs_loop;
-                }
-            }
-            // Add original assign variables to the union variable mappings.
-            for (int j = 0; j < assignVars.size(); j++) {
-                LogicalVariable first = newAssignOps[0].getVariables().get(j);
-                LogicalVariable second = newAssignOps[1].getVariables().get(j);
-                unionOp.getVariableMappings().add(new Triple<>(first, second, assignVars.get(j)));
-            }
-            context.computeAndSetTypeEnvironmentForOperator(unionOp);
-            // Remove original assign operator.
-            op.getInputs().set(i, assignOp.getInputs().get(0));
-            context.computeAndSetTypeEnvironmentForOperator(op);
-            modified = true;
-        }
-
-        return modified;
-    }
-
-    private AssignOperator createAssignBelowUnionAllBranch(UnionAllOperator unionOp, int inputIndex,
-            AssignOperator originalAssignOp, Set<LogicalVariable> assignUsedVars, IOptimizationContext context)
-            throws AlgebricksException {
-        AssignOperator newAssignOp = cloneAssignOperator(originalAssignOp, context, unionOp, inputIndex);
-        if (newAssignOp == null) {
-            return null;
-        }
-        newAssignOp.getInputs().add(new MutableObject<>(unionOp.getInputs().get(inputIndex).getValue()));
-        unionOp.getInputs().get(inputIndex).setValue(newAssignOp);
-        int numVarMappings = unionOp.getVariableMappings().size();
-        for (int i = 0; i < numVarMappings; i++) {
-            Triple<LogicalVariable, LogicalVariable, LogicalVariable> varMapping = unionOp.getVariableMappings().get(i);
-            if (assignUsedVars.contains(varMapping.third)) {
-                LogicalVariable replacementVar;
-                if (inputIndex == 0) {
-                    replacementVar = varMapping.first;
-                } else {
-                    replacementVar = varMapping.second;
-                }
-                VariableUtilities.substituteVariables(newAssignOp, varMapping.third, replacementVar, context);
-            }
-        }
-        context.computeAndSetTypeEnvironmentForOperator(newAssignOp);
-        return newAssignOp;
-    }
-
-    /**
-     * Clones the given assign operator changing the returned variables to be new ones.
-     * Also, leaves the inputs of the clone clear. It returns null if the assign operator cannot be pushed.
-     */
-    private AssignOperator cloneAssignOperator(AssignOperator assignOp, IOptimizationContext context,
-            UnionAllOperator unionOp, int inputIndex) throws AlgebricksException {
-        List<LogicalVariable> vars = new ArrayList<>();
-        List<Mutable<ILogicalExpression>> exprs = new ArrayList<>();
-        int numVars = assignOp.getVariables().size();
-        for (int i = 0; i < numVars; i++) {
-            vars.add(context.newVar());
-            ILogicalExpression clonedExpression = assignOp.getExpressions().get(i).getValue().cloneExpression();
-            if (!modifyExpression(clonedExpression, unionOp, context, inputIndex)) {
-                return null; // bail if the expression couldn't be modified according to the branch it is moved to
-            }
-            exprs.add(new MutableObject<>(clonedExpression));
-        }
-        AssignOperator assignCloneOp = new AssignOperator(vars, exprs);
-        assignCloneOp.setSourceLocation(assignOp.getSourceLocation());
-        assignCloneOp.setExecutionMode(assignOp.getExecutionMode());
-        return assignCloneOp;
-    }
-
-    // modifies the cloned expression according to the branch it'll be moved to. returns true if successful.
-    protected boolean modifyExpression(ILogicalExpression expression, UnionAllOperator unionOp,
-            IOptimizationContext ctx, int inputIndex) throws AlgebricksException {
-        // default implementation does not check specific expressions
-        return true;
-    }
-}
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushMapOperatorThroughUnionRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushMapOperatorThroughUnionRule.java
new file mode 100644
index 0000000..3c468be
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushMapOperatorThroughUnionRule.java
@@ -0,0 +1,185 @@
+/*
+ * 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.hyracks.algebricks.rewriter.rules;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.common.utils.Triple;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.LogicalOperatorDeepCopyWithNewVariablesVisitor;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
+import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
+import org.apache.hyracks.api.exceptions.ErrorCode;
+
+/**
+ * @author kereno, ecarm002, ildar.absalyamov
+ *         Pushes down 'map' operator through both branches of the union-all operator
+ *         Before rule:
+ *         ============
+ *         map_op
+ *         union-all (left_branch, right_branch, res)
+ *         left_branch
+ *         left_op_1
+ *         ...
+ *         right_branch
+ *         right_op_1
+ *
+ *         After rule:
+ *         ============
+ *         union-all (left_branch, right_branch, res)
+ *         left_branch
+ *         map_op
+ *         left_op_1
+ *         right_branch
+ *         map_op
+ *         right_op_1
+ */
+public abstract class PushMapOperatorThroughUnionRule implements IAlgebraicRewriteRule {
+
+    @Override
+    public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) {
+        return false;
+    }
+
+    protected boolean isOperatorKindPushableThroughUnion(ILogicalOperator op) {
+        return op.isMap();
+    }
+
+    @Override
+    public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
+            throws AlgebricksException {
+        AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
+
+        boolean pushable = isOperatorKindPushableThroughUnion(op) && OperatorPropertiesUtil.isMovable(op);
+        if (!pushable) {
+            return false;
+        }
+
+        Mutable<ILogicalOperator> inputOpRef = op.getInputs().get(0);
+        AbstractLogicalOperator inputOp = (AbstractLogicalOperator) inputOpRef.getValue();
+        if (inputOp.getOperatorTag() != LogicalOperatorTag.UNIONALL) {
+            return false;
+        }
+        UnionAllOperator unionAllOp = (UnionAllOperator) inputOp;
+
+        List<LogicalVariable> opProducedVars = new ArrayList<>();
+        VariableUtilities.getProducedVariables(op, opProducedVars);
+
+        Set<LogicalVariable> opUsedVars = new HashSet<>();
+        VariableUtilities.getUsedVariables(op, opUsedVars);
+
+        Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> leftBranchPair =
+                insertIntoBranch(op, opUsedVars, unionAllOp, 0, context);
+        if (leftBranchPair == null) {
+            return false;
+        }
+        ILogicalOperator leftBranchRootOp = leftBranchPair.first;
+        //  < original produced var, new produced variable in left branch >
+        Map<LogicalVariable, LogicalVariable> leftBranchProducedVarMap = leftBranchPair.second;
+
+        Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> rightBranchPair =
+                insertIntoBranch(op, opUsedVars, unionAllOp, 1, context);
+        if (rightBranchPair == null) {
+            return false;
+        }
+        ILogicalOperator rightBranchRootOp = rightBranchPair.first;
+        // < original produced var, new produced variable in right branch >
+        Map<LogicalVariable, LogicalVariable> rightBranchProducedVarMap = rightBranchPair.second;
+
+        UnionAllOperator newUnionAllOp = (UnionAllOperator) OperatorManipulationUtil.deepCopy(unionAllOp);
+        newUnionAllOp.getInputs().add(new MutableObject<>(leftBranchRootOp));
+        newUnionAllOp.getInputs().add(new MutableObject<>(rightBranchRootOp));
+
+        for (LogicalVariable opProducedVar : opProducedVars) {
+            LogicalVariable leftBranchProducedVar = leftBranchProducedVarMap.get(opProducedVar);
+            if (leftBranchProducedVar == null) {
+                throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE, op.getSourceLocation(),
+                        "Cannot find " + opProducedVar);
+            }
+            LogicalVariable rightBranchProducedVar = rightBranchProducedVarMap.get(opProducedVar);
+            if (rightBranchProducedVar == null) {
+                throw AlgebricksException.create(ErrorCode.COMPILATION_ILLEGAL_STATE, op.getSourceLocation(),
+                        "Cannot find " + opProducedVar);
+            }
+
+            newUnionAllOp.getVariableMappings()
+                    .add(new Triple<>(leftBranchProducedVar, rightBranchProducedVar, opProducedVar));
+        }
+
+        context.computeAndSetTypeEnvironmentForOperator(newUnionAllOp);
+        opRef.setValue(newUnionAllOp);
+
+        return true;
+    }
+
+    private Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> insertIntoBranch(AbstractLogicalOperator op,
+            Set<LogicalVariable> opUsedVars, UnionAllOperator unionAllOp, int branchIdx, IOptimizationContext context)
+            throws AlgebricksException {
+        ILogicalOperator branchRootOp = unionAllOp.getInputs().get(branchIdx).getValue();
+        Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> newBranchRootOpPair =
+                deepCopyForBranch(op, opUsedVars, unionAllOp, branchIdx, context);
+        if (newBranchRootOpPair == null) {
+            return null;
+        }
+
+        ILogicalOperator newBranchRootOp = newBranchRootOpPair.first;
+        newBranchRootOp.getInputs().get(0).setValue(branchRootOp);
+        context.computeAndSetTypeEnvironmentForOperator(newBranchRootOp);
+
+        // [ operator, < original produced var, new variable (produced in branch) > ]
+        return newBranchRootOpPair;
+    }
+
+    protected Pair<ILogicalOperator, Map<LogicalVariable, LogicalVariable>> deepCopyForBranch(ILogicalOperator op,
+            Set<LogicalVariable> opUsedVars, UnionAllOperator unionAllOp, int branchIdx, IOptimizationContext context)
+            throws AlgebricksException {
+        // < union-output-var, union-branch-var >
+        LinkedHashMap<LogicalVariable, LogicalVariable> usedVarsMapping = new LinkedHashMap<>();
+        for (Triple<LogicalVariable, LogicalVariable, LogicalVariable> t : unionAllOp.getVariableMappings()) {
+            LogicalVariable unionOutputVar = t.third;
+            if (opUsedVars.contains(unionOutputVar)) {
+                LogicalVariable branchVar = branchIdx == 0 ? t.first : t.second;
+                usedVarsMapping.put(unionOutputVar, branchVar);
+            }
+        }
+
+        LogicalOperatorDeepCopyWithNewVariablesVisitor deepCopyVisitor =
+                new LogicalOperatorDeepCopyWithNewVariablesVisitor(context, null, usedVarsMapping, true);
+        ILogicalOperator newOp = deepCopyVisitor.deepCopy(op);
+
+        return new Pair<>(newOp, deepCopyVisitor.getInputToOutputVariableMapping());
+    }
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushProjectDownRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushProjectDownRule.java
index 9457b60..c919195 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushProjectDownRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushProjectDownRule.java
@@ -68,7 +68,9 @@
         Set<LogicalVariable> toPush = new LinkedHashSet<LogicalVariable>();
         toPush.addAll(pi.getVariables());
 
-        Pair<Boolean, Boolean> p = pushThroughOp(toPush, opRef2, op, context);
+        boolean recomputeSchema = op.getSchema() != null;
+
+        Pair<Boolean, Boolean> p = pushThroughOp(toPush, opRef2, op, context, recomputeSchema);
         boolean smthWasPushed = p.first;
         if (p.second) { // the original projection is redundant
             opRef.setValue(op.getInputs().get(0).getValue());
@@ -79,7 +81,8 @@
     }
 
     private static Pair<Boolean, Boolean> pushThroughOp(Set<LogicalVariable> toPush, Mutable<ILogicalOperator> opRef2,
-            ILogicalOperator initialOp, IOptimizationContext context) throws AlgebricksException {
+            ILogicalOperator initialOp, IOptimizationContext context, boolean recomputeSchema)
+            throws AlgebricksException {
         List<LogicalVariable> initProjectList = new ArrayList<LogicalVariable>(toPush);
         AbstractLogicalOperator op2 = (AbstractLogicalOperator) opRef2.getValue();
         do {
@@ -135,6 +138,9 @@
             gby.getDecorList().addAll(newDecorList);
             if (gbyChanged) {
                 context.computeAndSetTypeEnvironmentForOperator(gby);
+                if (recomputeSchema) {
+                    gby.recomputeSchema();
+                }
             }
         }
         used2.clear();
@@ -149,7 +155,7 @@
 
         boolean smthWasPushed = false;
         for (Mutable<ILogicalOperator> c : op2.getInputs()) {
-            if (pushNeededProjections(toPush, c, context, initialOp)) {
+            if (pushNeededProjections(toPush, c, context, initialOp, recomputeSchema)) {
                 smthWasPushed = true;
             }
         }
@@ -157,7 +163,7 @@
             AbstractOperatorWithNestedPlans n = (AbstractOperatorWithNestedPlans) op2;
             for (ILogicalPlan p : n.getNestedPlans()) {
                 for (Mutable<ILogicalOperator> r : p.getRoots()) {
-                    if (pushNeededProjections(toPush, r, context, initialOp)) {
+                    if (pushNeededProjections(toPush, r, context, initialOp, recomputeSchema)) {
                         smthWasPushed = true;
                     }
                 }
@@ -168,7 +174,8 @@
 
     // It does not try to push above another Projection.
     private static boolean pushNeededProjections(Set<LogicalVariable> toPush, Mutable<ILogicalOperator> opRef,
-            IOptimizationContext context, ILogicalOperator initialOp) throws AlgebricksException {
+            IOptimizationContext context, ILogicalOperator initialOp, boolean recomputeSchema)
+            throws AlgebricksException {
         Set<LogicalVariable> allP = new LinkedHashSet<LogicalVariable>();
         AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
         VariableUtilities.getSubplanLocalLiveVariables(op, allP);
@@ -183,19 +190,19 @@
             // projection would be redundant, since we would project everything
             // but we can try with the children
             boolean push = false;
-            if (pushThroughOp(toProject, opRef, initialOp, context).first) {
+            if (pushThroughOp(toProject, opRef, initialOp, context, recomputeSchema).first) {
                 push = true;
             }
             return push;
         } else {
-            return pushAllProjectionsOnTopOf(toProject, opRef, context, initialOp);
+            return pushAllProjectionsOnTopOf(toProject, opRef, context, initialOp, recomputeSchema);
         }
     }
 
     // It does not try to push above another Projection.
     private static boolean pushAllProjectionsOnTopOf(Collection<LogicalVariable> toPush,
-            Mutable<ILogicalOperator> opRef, IOptimizationContext context, ILogicalOperator initialOp)
-            throws AlgebricksException {
+            Mutable<ILogicalOperator> opRef, IOptimizationContext context, ILogicalOperator initialOp,
+            boolean recomputeSchema) throws AlgebricksException {
         if (toPush.isEmpty()) {
             return false;
         }
@@ -215,6 +222,9 @@
         opRef.setValue(pi2);
         pi2.setExecutionMode(op.getExecutionMode());
         context.computeAndSetTypeEnvironmentForOperator(pi2);
+        if (recomputeSchema) {
+            pi2.recomputeSchema();
+        }
         return true;
     }
 
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushUnnestDownThroughUnionRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushUnnestDownThroughUnionRule.java
deleted file mode 100644
index 434faff..0000000
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushUnnestDownThroughUnionRule.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.hyracks.algebricks.rewriter.rules;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.Triple;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
-import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-/**
- * @author kereno, ecarm002, ildar.absalyamov
- *         Pushes down unnest through both branches of the union operator
- *         Before rule:
- *         ============
- *         unnest
- *         union (left_branch, right_branch, res)
- *         left_branch
- *         right_branch
- *         After rule:
- *         ============
- *         union (left_branch, right_branch, res)
- *         unnest
- *         left_branch
- *         unnest
- *         right_branch
- */
-public class PushUnnestDownThroughUnionRule implements IAlgebraicRewriteRule {
-
-    @Override
-    public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) {
-        return false;
-    }
-
-    @Override
-    public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
-            throws AlgebricksException {
-
-        AbstractLogicalOperator unnest = (AbstractLogicalOperator) opRef.getValue();
-        if (unnest.getOperatorTag() != LogicalOperatorTag.UNNEST) {
-            return false;
-        }
-        UnnestOperator unnestOpRef = (UnnestOperator) opRef.getValue();
-        Mutable<ILogicalOperator> unionOp = unnest.getInputs().get(0);
-
-        AbstractLogicalOperator unionAbstractOp = (AbstractLogicalOperator) unionOp.getValue();
-        if (unionAbstractOp.getOperatorTag() != LogicalOperatorTag.UNIONALL) {
-            return false;
-        }
-
-        LogicalVariable unnestVar1 = context.newVar();
-        UnnestOperator unnest1 = new UnnestOperator(unnestVar1,
-                new MutableObject<ILogicalExpression>(unnestOpRef.getExpressionRef().getValue().cloneExpression()));
-        LogicalVariable unnestVar2 = context.newVar();
-        UnnestOperator unnest2 = new UnnestOperator(unnestVar2,
-                new MutableObject<ILogicalExpression>(unnestOpRef.getExpressionRef().getValue().cloneExpression()));
-
-        //Getting the two topmost branched and adding them as an input to the unnests:
-        Mutable<ILogicalOperator> branch1 = unionAbstractOp.getInputs().get(0);
-        ILogicalOperator agg1 = branch1.getValue();
-        List<LogicalVariable> agg1_var = new ArrayList<LogicalVariable>();
-        VariableUtilities.getLiveVariables(agg1, agg1_var);
-        Mutable<ILogicalOperator> branch2 = unionAbstractOp.getInputs().get(1);
-        ILogicalOperator agg2 = branch2.getValue();
-        List<LogicalVariable> agg2_var = new ArrayList<LogicalVariable>();
-        VariableUtilities.getLiveVariables(agg2, agg2_var);
-
-        //Modifying the unnest so it has the right variable
-        List<LogicalVariable> var_unnest_1 = new ArrayList<LogicalVariable>();
-        unnest1.getExpressionRef().getValue().getUsedVariables(var_unnest_1);
-        unnest1.getExpressionRef().getValue().substituteVar(var_unnest_1.get(0), agg1_var.get(0));
-
-        List<LogicalVariable> var_unnest2 = new ArrayList<LogicalVariable>();
-        unnest2.getExpressionRef().getValue().getUsedVariables(var_unnest2);
-        unnest2.getExpressionRef().getValue().substituteVar(var_unnest2.get(0), agg2_var.get(0));
-
-        unnest1.getInputs().add(branch1);
-        unnest2.getInputs().add(branch2);
-        context.computeAndSetTypeEnvironmentForOperator(unnest1);
-        context.computeAndSetTypeEnvironmentForOperator(unnest2);
-
-        //creating a new union operator with the updated logical variables
-        List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMap =
-                new ArrayList<Triple<LogicalVariable, LogicalVariable, LogicalVariable>>(1);
-        Triple<LogicalVariable, LogicalVariable, LogicalVariable> union_triple_vars =
-                new Triple<LogicalVariable, LogicalVariable, LogicalVariable>(unnestVar1, unnestVar2,
-                        unnestOpRef.getVariables().get(0));
-        varMap.add(union_triple_vars);
-        UnionAllOperator unionOpFinal = new UnionAllOperator(varMap);
-
-        unionOpFinal.getInputs().add(new MutableObject<ILogicalOperator>(unnest1));
-        unionOpFinal.getInputs().add(new MutableObject<ILogicalOperator>(unnest2));
-
-        context.computeAndSetTypeEnvironmentForOperator(unionOpFinal);
-
-        opRef.setValue(unionOpFinal);
-        return true;
-
-    }
-}
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesInUnionRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesInUnionRule.java
new file mode 100644
index 0000000..fc9bb05
--- /dev/null
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesInUnionRule.java
@@ -0,0 +1,142 @@
+/*
+ * 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.hyracks.algebricks.rewriter.rules;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Triple;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
+import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
+
+/**
+ * Removes redundant variable mapping from the union-all operator as follows:
+ * <p>
+ * Before rule:
+ * <pre>
+ * union-all([$left, $right, $out_1], [$left, $right, $out_2])
+ * </pre>
+ * <p>
+ * After rule:
+ * <pre>
+ * assign $out_2 := $out_1
+ * union-all([$left, $right, $out_1])
+ * </pre>
+ * Notes:
+ * <ul>
+ * <li>
+ * The new assign operator is annotated as {@link OperatorPropertiesUtil#MOVABLE non-movable}
+ * to prevent it from being pushed back into the union-all by {@link PushMapOperatorThroughUnionRule}.
+ * It is supposed to be removed later by {@link RemoveUnusedAssignAndAggregateRule}.
+ * <li>
+ * This rule is supposed to run during logical optimization stage because
+ * it does not compute schema for the new assign operator
+ * </ul>
+ */
+public final class RemoveRedundantVariablesInUnionRule implements IAlgebraicRewriteRule {
+
+    @Override
+    public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context) {
+        return false;
+    }
+
+    @Override
+    public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
+            throws AlgebricksException {
+        ILogicalOperator op = opRef.getValue();
+        if (op.getOperatorTag() != LogicalOperatorTag.UNIONALL) {
+            return false;
+        }
+
+        if (context.checkIfInDontApplySet(this, op)) {
+            return false;
+        }
+
+        UnionAllOperator unionAllOp = (UnionAllOperator) op;
+        List<LogicalVariable> newAssignVars = null;
+        List<Mutable<ILogicalExpression>> newAssignExprs = null;
+
+        List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMappings = unionAllOp.getVariableMappings();
+
+        for (int i = 0; i < varMappings.size();) {
+            Triple<LogicalVariable, LogicalVariable, LogicalVariable> varMapping = varMappings.get(i);
+            LogicalVariable existingOutputVar = findVarMapping(varMappings, i, varMapping.first, varMapping.second);
+            if (existingOutputVar != null) {
+                LogicalVariable thisOutputVar = varMapping.third;
+                if (newAssignVars == null) {
+                    newAssignVars = new ArrayList<>();
+                    newAssignExprs = new ArrayList<>();
+                }
+                VariableReferenceExpression existingOutputVarRef = new VariableReferenceExpression(existingOutputVar);
+                existingOutputVarRef.setSourceLocation(unionAllOp.getSourceLocation());
+                newAssignVars.add(thisOutputVar);
+                newAssignExprs.add(new MutableObject<>(existingOutputVarRef));
+
+                varMappings.remove(i);
+            } else {
+                i++;
+            }
+        }
+
+        if (newAssignVars == null) {
+            return false;
+        }
+
+        AssignOperator newAssignOp = new AssignOperator(newAssignVars, newAssignExprs);
+        newAssignOp.setSourceLocation(unionAllOp.getSourceLocation());
+        newAssignOp.getInputs().add(new MutableObject<>(unionAllOp));
+
+        // this Assign is supposed to be removed later by RemoveUnusedAssignAndAggregateRule.
+        // mark it as non-movable to prevent PushMapThroughUnionRule from pushing it back into the UnionAll operator
+        OperatorPropertiesUtil.markMovable(newAssignOp, false);
+
+        context.computeAndSetTypeEnvironmentForOperator(unionAllOp);
+        context.computeAndSetTypeEnvironmentForOperator(newAssignOp);
+        opRef.setValue(newAssignOp);
+
+        context.addToDontApplySet(this, unionAllOp);
+
+        return true;
+    }
+
+    private static LogicalVariable findVarMapping(
+            List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> varMappings, int endIndexExclusive,
+            LogicalVariable firstBranchVar, LogicalVariable secondBranchVar) {
+        int n = Math.min(endIndexExclusive, varMappings.size());
+        for (int i = 0; i < n; i++) {
+            Triple<LogicalVariable, LogicalVariable, LogicalVariable> t = varMappings.get(i);
+            if (t.first.equals(firstBranchVar) && t.second.equals(secondBranchVar)) {
+                return t.third;
+            }
+        }
+        return null;
+    }
+}
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/PushSubplanIntoGroupByRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/PushSubplanIntoGroupByRule.java
index 8e41a15..6d5d67d 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/PushSubplanIntoGroupByRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/subplan/PushSubplanIntoGroupByRule.java
@@ -204,7 +204,7 @@
                             newGbyNestedPlans.add(new ALogicalPlanImpl(rootOpRef));
 
                             upperSubplanRootRefIterator.remove();
-                            changed |= true;
+                            changed = true;
                             break;
                         }
                     }
@@ -212,10 +212,12 @@
 
                 if (upperSubplanRootRefs.isEmpty()) {
                     subplanNestedPlanIterator.remove();
+                    changed = true;
                 }
             }
             if (subplan.getNestedPlans().isEmpty()) {
                 subplanOperatorIterator.remove();
+                changed = true;
             }
         }
 
@@ -228,7 +230,7 @@
         parent.getInputs().get(0).setValue(gby);
 
         // Removes unnecessary pipelines inside the group by operator.
-        cleanup(currentRootRef.getValue(), gby);
+        changed |= cleanup(currentRootRef.getValue(), gby);
 
         // Computes type environments.
         context.computeAndSetTypeEnvironmentForOperator(gby);
@@ -245,7 +247,8 @@
      *            the group-by operator.
      * @throws AlgebricksException
      */
-    private void cleanup(ILogicalOperator rootOp, GroupByOperator gby) throws AlgebricksException {
+    private boolean cleanup(ILogicalOperator rootOp, GroupByOperator gby) throws AlgebricksException {
+        boolean changed = false;
         Set<LogicalVariable> freeVars = new HashSet<>();
         OperatorPropertiesUtil.getFreeVariablesInPath(rootOp, gby, freeVars);
         Iterator<ILogicalPlan> nestedPlanIterator = gby.getNestedPlans().iterator();
@@ -259,16 +262,20 @@
                     if (!freeVars.contains(aggOp.getVariables().get(varIndex))) {
                         aggOp.getVariables().remove(varIndex);
                         aggOp.getExpressions().remove(varIndex);
+                        changed = true;
                     }
                 }
                 if (aggOp.getVariables().isEmpty()) {
                     nestRootRefIterator.remove();
+                    changed = true;
                 }
             }
             if (nestedPlan.getRoots().isEmpty()) {
                 nestedPlanIterator.remove();
+                changed = true;
             }
         }
+        return changed;
     }
 
     private Mutable<ILogicalOperator> downToNts(Mutable<ILogicalOperator> opRef) {
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/base/IUnnestingPositionWriter.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/base/IUnnestingPositionWriter.java
deleted file mode 100644
index 092d22e..0000000
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/base/IUnnestingPositionWriter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.hyracks.algebricks.runtime.base;
-
-import java.io.DataOutput;
-import java.io.IOException;
-
-public interface IUnnestingPositionWriter {
-    public void write(DataOutput dataOutput, long position) throws IOException;
-}
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
index 71b44d3..9f4541f5 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
@@ -70,13 +70,11 @@
     }
 
     protected void flushAndReset() throws HyracksDataException {
-        if (appender.getTupleCount() > 0) {
-            appender.write(writer, true);
-        }
+        appender.write(writer, true);
     }
 
     protected void flushIfNotFailed() throws HyracksDataException {
-        if (!failed) {
+        if (!failed && appender.getTupleCount() > 0) {
             flushAndReset();
         }
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
index 3cee12d..6e5c2c9 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
@@ -224,7 +224,9 @@
                 for (int t = 0; t < nTuple; t++) {
                     appendConcat(tRef.getFrameTupleAccessor(), tRef.getTupleIndex(), ta, t);
                 }
-                smthWasWritten = true;
+                if (nTuple > 0) {
+                    smthWasWritten = true;
+                }
             }
 
             @Override
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/UnnestRuntimeFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/UnnestRuntimeFactory.java
index 74e182b..9ee5a48 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/UnnestRuntimeFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/UnnestRuntimeFactory.java
@@ -24,10 +24,11 @@
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriter;
+import org.apache.hyracks.algebricks.data.IUnnestingPositionWriterFactory;
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
 import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
 import org.apache.hyracks.algebricks.runtime.evaluators.EvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime;
 import org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputRuntimeFactory;
@@ -46,7 +47,7 @@
     private final int outCol;
     private final IUnnestingEvaluatorFactory unnestingFactory;
     private final boolean unnestColIsProjected;
-    private final IUnnestingPositionWriter positionWriter;
+    private final IUnnestingPositionWriterFactory positionWriterFactory;
     private final boolean leftOuter;
     private final IMissingWriterFactory missingWriterFactory;
     private int outColPos;
@@ -57,7 +58,8 @@
     }
 
     public UnnestRuntimeFactory(int outCol, IUnnestingEvaluatorFactory unnestingFactory, int[] projectionList,
-            IUnnestingPositionWriter positionWriter, boolean leftOuter, IMissingWriterFactory missingWriterFactory) {
+            IUnnestingPositionWriterFactory positionWriterFactory, boolean leftOuter,
+            IMissingWriterFactory missingWriterFactory) {
         super(projectionList);
         this.outCol = outCol;
         this.unnestingFactory = unnestingFactory;
@@ -68,7 +70,7 @@
             }
         }
         unnestColIsProjected = outColPos >= 0;
-        this.positionWriter = positionWriter;
+        this.positionWriterFactory = positionWriterFactory;
         this.leftOuter = leftOuter;
         this.missingWriterFactory = missingWriterFactory;
     }
@@ -94,6 +96,8 @@
             private IPointable p = VoidPointable.FACTORY.createPointable();
             private ArrayTupleBuilder tupleBuilder = new ArrayTupleBuilder(projectionList.length);
             private IUnnestingEvaluator unnest = unnestingFactory.createUnnestingEvaluator(evalCtx);
+            private final IUnnestingPositionWriter positionWriter =
+                    positionWriterFactory != null ? positionWriterFactory.createUnnestingPositionWriter() : null;
 
             @Override
             public void open() throws HyracksDataException {
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
index 16ba168..a93da48 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
@@ -158,6 +158,7 @@
     public static final int ERROR_PRINTING_PLAN = 122;
     public static final int INSUFFICIENT_MEMORY = 123;
     public static final int PARSING_ERROR = 124;
+    public static final int INVALID_INVERTED_LIST_TYPE_TRAITS = 125;
 
     // Compilation error codes.
     public static final int RULECOLLECTION_NOT_INSTANCE_OF_LIST = 10000;
@@ -169,6 +170,7 @@
     public static final int INAPPLICABLE_HINT = 10006;
     public static final int CROSS_PRODUCT_JOIN = 10007;
     public static final int GROUP_ALL_DECOR = 10008;
+    public static final int COMPILATION_ILLEGAL_STATE = 10009;
 
     private static class Holder {
         private static final Map<Integer, String> errorMessageMap;
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties b/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
index 7423419..01895a6 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
@@ -142,6 +142,7 @@
 122 = Encountered an error while printing the plan
 123 = Insufficient memory is provided for the join operators, please increase the join memory budget.
 124 = Parsing error at %1$s line %2$s field %3$s: %4$s
+125 = Invalid inverted list type traits: %1$s
 
 10000 = The given rule collection %1$s is not an instance of the List class.
 10001 = Cannot compose partition constraint %1$s with %2$s
@@ -151,4 +152,5 @@
 10005 = Operator is not implemented: %1$s
 10006 = Could not apply %1$s hint: %2$s
 10007 = Encountered a cross product join
-10008 = Inappropriate use of group by all with decor variables
\ No newline at end of file
+10008 = Inappropriate use of group by all with decor variables
+10009 = Illegal state. %1$s
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
index c175dd4..0ba9090 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
@@ -18,6 +18,8 @@
  */
 package org.apache.hyracks.control.common.config;
 
+import static org.apache.hyracks.control.common.config.OptionTypes.COLLECTION_TYPES;
+
 import java.io.IOException;
 import java.io.Serializable;
 import java.lang.reflect.Array;
@@ -340,17 +342,27 @@
                 throw new HyracksException("Unknown section in ini: " + section.getName());
             }
             Map<String, IOption> optionMap = getSectionOptionMap(rootSection);
-            for (Map.Entry<String, String> iniOption : section.entrySet()) {
-                String name = iniOption.getKey();
+            for (String name : section.keySet()) {
                 final IOption option = optionMap == null ? null : optionMap.get(name);
                 if (option == null) {
                     handleUnknownOption(section, name);
                     return;
                 }
-                final String value = iniOption.getValue();
-                LOGGER.debug("setting " + option.toIniString() + " to " + value);
-                final Object parsed = option.type().parse(value);
-                invokeSetters(option, parsed, node);
+                final List<String> values = section.getAll(name);
+                if (values.size() <= 1) {
+                    LOGGER.debug("setting " + option.toIniString() + " to " + values.get(0));
+                    final Object parsed = option.type().parse(values.get(0));
+                    invokeSetters(option, parsed, node);
+                } else {
+                    if (option.type().targetType().isArray()) {
+                        Object[] val = values.stream()
+                                .map(v -> ((String) (COLLECTION_TYPES.get(option.type()).parse(v)))).toArray();
+                        invokeSetters(option, Arrays.copyOf(val, val.length, option.type().targetType()), node);
+                    } else {
+                        throw new HyracksException(
+                                "Multiple option values specified for unary option" + option.toIniString());
+                    }
+                }
             }
         }
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigUtils.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigUtils.java
index 1cc739c..c95a3d1 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigUtils.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigUtils.java
@@ -37,6 +37,7 @@
 import org.apache.hyracks.api.config.Section;
 import org.apache.hyracks.api.config.SerializedOption;
 import org.apache.hyracks.control.common.controllers.ControllerConfig;
+import org.ini4j.Config;
 import org.ini4j.Ini;
 import org.kohsuke.args4j.CmdLineException;
 import org.kohsuke.args4j.CmdLineParser;
@@ -88,6 +89,9 @@
 
     public static Ini loadINIFile(String configFile) throws IOException {
         Ini ini = new Ini();
+        Config conf = new Config();
+        conf.setMultiOption(true);
+        ini.setConfig(conf);
         File conffile = new File(configFile);
         if (!conffile.exists()) {
             throw new FileNotFoundException(configFile);
@@ -98,6 +102,9 @@
 
     public static Ini loadINIFile(URL configURL) throws IOException {
         Ini ini = new Ini();
+        Config conf = new Config();
+        conf.setMultiOption(true);
+        ini.setConfig(conf);
         ini.load(configURL);
         return ini;
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/OptionTypes.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/OptionTypes.java
index 7088e08..0dcb7a4 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/OptionTypes.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/OptionTypes.java
@@ -20,7 +20,10 @@
 
 import java.net.MalformedURLException;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Stream;
 
 import org.apache.hyracks.api.config.IOptionType;
@@ -388,6 +391,13 @@
         }
     };
 
+    static Map<IOptionType, IOptionType> COLLECTION_TYPES;
+    static {
+        Map<IOptionType, IOptionType> collTypes = new HashMap<>();
+        collTypes.put(STRING_ARRAY, STRING);
+        COLLECTION_TYPES = Collections.unmodifiableMap(collTypes);
+    }
+
     private OptionTypes() {
     }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
index 510db51..eaf0418 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
@@ -18,6 +18,7 @@
  */
 package org.apache.hyracks.control.common.controllers;
 
+import static org.apache.hyracks.control.common.config.OptionTypes.BOOLEAN;
 import static org.apache.hyracks.control.common.config.OptionTypes.INTEGER;
 import static org.apache.hyracks.control.common.config.OptionTypes.INTEGER_BYTE_UNIT;
 import static org.apache.hyracks.control.common.config.OptionTypes.LONG;
@@ -91,7 +92,10 @@
         KEY_STORE_PASSWORD(STRING, (String) null),
         IO_WORKERS_PER_PARTITION(POSITIVE_INTEGER, 2),
         IO_QUEUE_SIZE(POSITIVE_INTEGER, 10),
-        PYTHON_HOME(STRING, "/usr/bin/python3");
+        PYTHON_CMD(STRING, (String) null),
+        PYTHON_ADDITIONAL_PACKAGES(STRING_ARRAY, (String[]) null),
+        PYTHON_USE_BUNDLED_MSGPACK(BOOLEAN, true),
+        PYTHON_ARGS(STRING_ARRAY, (String[]) null);
 
         private final IOptionType parser;
         private final String defaultValueDescription;
@@ -224,8 +228,14 @@
                     return "Number of threads per partition used to write and read from storage";
                 case IO_QUEUE_SIZE:
                     return "Length of the queue used for requests to write and read";
-                case PYTHON_HOME:
-                    return "Path to python interpreter";
+                case PYTHON_CMD:
+                    return "Absolute path to python interpreter. Defaults to environmental Python3";
+                case PYTHON_ADDITIONAL_PACKAGES:
+                    return "List of additional paths, separated by a path separator character, to add to sys.path behind msgpack and library package paths";
+                case PYTHON_USE_BUNDLED_MSGPACK:
+                    return "True to include bundled msgpack on Python sys.path, false to use system-provided msgpack";
+                case PYTHON_ARGS:
+                    return "Python args to pass to Python interpreter";
                 default:
                     throw new IllegalStateException("Not yet implemented: " + this);
             }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
index 2ba4768..6b5b5db 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
@@ -70,6 +70,7 @@
 import org.apache.hyracks.control.common.job.profiling.om.TaskProfile;
 import org.apache.hyracks.ipc.api.IPayloadSerializerDeserializer;
 import org.apache.hyracks.ipc.impl.JavaSerializationBasedPayloadSerializerDeserializer;
+import org.apache.hyracks.ipc.impl.Message;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -1431,12 +1432,12 @@
         }
 
         @Override
-        public Object deserializeObject(ByteBuffer buffer, int length) throws Exception {
+        public Object deserializeObject(ByteBuffer buffer, int length, byte flag) throws Exception {
             if (length < FID_CODE_SIZE) {
                 throw new IllegalStateException("Message size too small: " + length);
             }
             byte fid = buffer.get();
-            return deserialize(fid, buffer, length - FID_CODE_SIZE);
+            return deserialize(fid, buffer, length - FID_CODE_SIZE, flag);
         }
 
         @Override
@@ -1448,7 +1449,7 @@
             if (fid != FunctionId.OTHER.ordinal()) {
                 throw new IllegalStateException("Expected FID for OTHER, found: " + fid);
             }
-            return (Exception) deserialize(fid, buffer, length - FID_CODE_SIZE);
+            return (Exception) deserialize(fid, buffer, length - FID_CODE_SIZE, Message.ERROR);
         }
 
         @Override
@@ -1515,7 +1516,7 @@
             JavaSerializationBasedPayloadSerializerDeserializer.serialize(out, object);
         }
 
-        private Object deserialize(byte fid, ByteBuffer buffer, int length) throws Exception {
+        private Object deserialize(byte fid, ByteBuffer buffer, int length, byte flag) throws Exception {
             switch (FunctionId.values()[fid]) {
                 case REGISTER_PARTITION_PROVIDER:
                     return RegisterPartitionProviderFunction.deserialize(buffer, length);
@@ -1542,7 +1543,7 @@
                     return CleanupJobletFunction.deserialize(buffer, length);
             }
 
-            return javaSerde.deserializeObject(buffer, length);
+            return javaSerde.deserializeObject(buffer, length, flag);
         }
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/pom.xml b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/pom.xml
index c0091f0..a11d8de 100644
--- a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/pom.xml
+++ b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/pom.xml
@@ -32,10 +32,6 @@
   </properties>
   <dependencies>
     <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.hyracks</groupId>
       <artifactId>hyracks-util</artifactId>
       <version>${project.version}</version>
@@ -56,5 +52,9 @@
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
     </dependency>
+    <dependency>
+      <groupId>it.unimi.dsi</groupId>
+      <artifactId>fastutil</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/UTF8StringPointable.java b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/UTF8StringPointable.java
index 9ff2f41..828de18 100644
--- a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/UTF8StringPointable.java
+++ b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/UTF8StringPointable.java
@@ -18,11 +18,12 @@
  */
 package org.apache.hyracks.data.std.primitive;
 
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.StandardCharsets;
+import static org.apache.hyracks.util.string.UTF8StringUtil.HIGH_SURROGATE_WITHOUT_LOW_SURROGATE;
+import static org.apache.hyracks.util.string.UTF8StringUtil.LOW_SURROGATE_WITHOUT_HIGH_SURROGATE;
 
-import org.apache.commons.lang3.CharSet;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.io.IJsonSerializable;
@@ -38,6 +39,8 @@
 
 import com.fasterxml.jackson.databind.JsonNode;
 
+import it.unimi.dsi.fastutil.ints.IntCollection;
+
 public final class UTF8StringPointable extends AbstractPointable implements IHashable, IComparable {
 
     public static final UTF8StringPointableFactory FACTORY = new UTF8StringPointableFactory();
@@ -50,6 +53,9 @@
     private int hashValue;
     private int stringLength;
 
+    public static final UTF8StringPointable SPACE_STRING_POINTABLE = generateUTF8Pointable(" ");
+    public static final Charset CESU8_CHARSET = Charset.forName("CESU8");
+
     /**
      * reset those meta length.
      * Since the {@code utf8Length} and the {@code metaLength} are often used, we compute those two values in advance.
@@ -114,6 +120,26 @@
         return UTF8StringUtil.charSize(bytes, start + offset);
     }
 
+    public int codePointAt(int offset) {
+        return UTF8StringUtil.codePointAt(bytes, start + offset);
+    }
+
+    public int codePointSize(int offset) {
+        return UTF8StringUtil.codePointSize(bytes, start + offset);
+    }
+
+    public void getCodePoints(IntCollection codePointSet) {
+        int byteIdx = 0;
+        while (byteIdx < utf8Length) {
+            codePointSet.add(codePointAt(metaLength + byteIdx));
+            byteIdx += codePointSize(metaLength + byteIdx);
+        }
+
+        if (byteIdx != utf8Length) {
+            throw new IllegalArgumentException("Decoding error: malformed bytes");
+        }
+    }
+
     /**
      * Gets the length of the string in characters.
      * The first time call will need to go through the entire string, the following call will just return the pre-caculated result
@@ -168,11 +194,7 @@
 
     @Override
     public String toString() {
-        try {
-            return new String(bytes, getCharStartOffset(), getUTF8Length(), StandardCharsets.UTF_8.name());
-        } catch (UnsupportedEncodingException e) {
-            throw new IllegalStateException(e);
-        }
+        return new String(bytes, getCharStartOffset(), getUTF8Length(), CESU8_CHARSET);
     }
 
     public int ignoreCaseCompareTo(UTF8StringPointable other) {
@@ -216,19 +238,56 @@
      *            the pattern string.
      * @param ignoreCase,
      *            to ignore case or not.
+     * @return the offset in the unit of code point of the first character of the matching string. Not including the MetaLength.
+     */
+    public static int findInCodePoint(UTF8StringPointable src, UTF8StringPointable pattern, boolean ignoreCase) {
+        return findInByteOrCodePoint(src, pattern, ignoreCase, 0, false);
+    }
+
+    /**
+     * @param src,
+     *            the source string.
+     * @param pattern,
+     *            the pattern string.
+     * @param ignoreCase,
+     *            to ignore case or not.
      * @param startMatch,
      *            the start offset.
      * @return the byte offset of the first character of the matching string after <code>startMatchPos}</code>.
      *         Not including the MetaLength.
      */
     public static int find(UTF8StringPointable src, UTF8StringPointable pattern, boolean ignoreCase, int startMatch) {
+        return findInByteOrCodePoint(src, pattern, ignoreCase, startMatch, true);
+    }
+
+    /**
+     * @param src,
+     *            the source string.
+     * @param pattern,
+     *            the pattern string.
+     * @param ignoreCase,
+     *            to ignore case or not.
+     * @param startMatch,
+     *            the start offset.
+     * @return the offset in the unit of code point of the first character of the matching string. Not including the MetaLength.
+     */
+    public static int findInCodePoint(UTF8StringPointable src, UTF8StringPointable pattern, boolean ignoreCase,
+            int startMatch) {
+        return findInByteOrCodePoint(src, pattern, ignoreCase, startMatch, false);
+    }
+
+    // If resultInByte is true, then return the position in bytes, otherwise return the position in code points
+    private static int findInByteOrCodePoint(UTF8StringPointable src, UTF8StringPointable pattern, boolean ignoreCase,
+            int startMatch, boolean resultInByte) {
         int startMatchPos = startMatch;
         final int srcUtfLen = src.getUTF8Length();
         final int pttnUtfLen = pattern.getUTF8Length();
         final int srcStart = src.getMetaDataLength();
         final int pttnStart = pattern.getMetaDataLength();
+        int codePointCount = 0;
 
         int maxStart = srcUtfLen - pttnUtfLen;
+        boolean prevHighSurrogate = false;
         while (startMatchPos <= maxStart) {
             int c1 = startMatchPos;
             int c2 = 0;
@@ -237,6 +296,14 @@
                 char ch2 = pattern.charAt(pttnStart + c2);
 
                 if (ch1 != ch2) {
+                    // Currently, the ignoreCase is only valid for one-surrogate characters
+                    // (e.g. characters whose UTF-16 encoding is 2-byte (1 Java char) instead of 4-byte (2 Java chars).
+                    // We may need to support the two-surrogate characters in the future
+                    //
+                    // Another edge case is that one letter may have different forms of lower cases in different languages
+                    // For example, the letter I may have "i" as the lower case in English but "ı" in Turkish.
+                    // We may need to use methods such as String.toLowerCase(Locale locale) to support other languages in the future
+                    // Reference: https://stackoverflow.com/questions/11063102/using-locales-with-javas-tolowercase-and-touppercase
                     if (!ignoreCase || Character.toLowerCase(ch1) != Character.toLowerCase(ch2)) {
                         break;
                     }
@@ -244,9 +311,35 @@
                 c1 += src.charSize(srcStart + c1);
                 c2 += pattern.charSize(pttnStart + c2);
             }
+
             if (c2 == pttnUtfLen) {
-                return startMatchPos;
+                if (resultInByte) {
+                    return startMatchPos;
+                } else {
+                    if (prevHighSurrogate) {
+                        throw new IllegalArgumentException(HIGH_SURROGATE_WITHOUT_LOW_SURROGATE);
+                    }
+                    return codePointCount;
+                }
             }
+
+            // The result is counted in code point instead of bytes
+            if (resultInByte == false) {
+                char ch = src.charAt(srcStart + startMatchPos);
+                if (Character.isHighSurrogate(ch)) {
+                    prevHighSurrogate = true;
+                } else if (Character.isLowSurrogate(ch)) {
+                    if (prevHighSurrogate) {
+                        codePointCount++;
+                        prevHighSurrogate = false;
+                    } else {
+                        throw new IllegalArgumentException(LOW_SURROGATE_WITHOUT_HIGH_SURROGATE);
+                    }
+                } else {
+                    codePointCount++;
+                }
+            }
+
             startMatchPos += src.charSize(srcStart + startMatchPos);
         }
         return -1;
@@ -337,43 +430,45 @@
     }
 
     /**
+     * Return the substring. Note that the offset and length are in the unit of code point.
      * @return {@code true} if substring was successfully written into given {@code out}, or
-     *         {@code false} if substring could not be obtained ({@code charOffset} or {@code charLength}
+     *         {@code false} if substring could not be obtained ({@code codePointOffset} or {@code codePointLength}
      *         are less than 0 or starting position is greater than the input length)
      */
-    public boolean substr(int charOffset, int charLength, UTF8StringBuilder builder, GrowableArray out)
+    public boolean substr(int codePointOffset, int codePointLength, UTF8StringBuilder builder, GrowableArray out)
             throws IOException {
-        return substr(this, charOffset, charLength, builder, out);
+        return substr(this, codePointOffset, codePointLength, builder, out);
     }
 
     /**
+     * Return the substring. Note that the offset and length are in the unit of code point.
      * @return {@code true} if substring was successfully written into given {@code out}, or
-     *         {@code false} if substring could not be obtained ({@code charOffset} or {@code charLength}
+     *         {@code false} if substring could not be obtained ({@code codePointOffset} or {@code codePointLength}
      *         are less than 0 or starting position is greater than the input length)
      */
-    public static boolean substr(UTF8StringPointable src, int charOffset, int charLength, UTF8StringBuilder builder,
-            GrowableArray out) throws IOException {
-        if (charOffset < 0 || charLength < 0) {
+    public static boolean substr(UTF8StringPointable src, int codePointOffset, int codePointLength,
+            UTF8StringBuilder builder, GrowableArray out) throws IOException {
+        if (codePointOffset < 0 || codePointLength < 0) {
             return false;
         }
 
         int utfLen = src.getUTF8Length();
-        int chIdx = 0;
+        int codePointIdx = 0;
         int byteIdx = 0;
-        while (byteIdx < utfLen && chIdx < charOffset) {
-            byteIdx += src.charSize(src.getMetaDataLength() + byteIdx);
-            chIdx++;
+        while (byteIdx < utfLen && codePointIdx < codePointOffset) {
+            byteIdx += src.codePointSize(src.getMetaDataLength() + byteIdx);
+            codePointIdx++;
         }
         if (byteIdx >= utfLen) {
             return false;
         }
 
-        builder.reset(out, Math.min(utfLen - byteIdx, (int) (charLength * 1.0 * byteIdx / chIdx)));
-        chIdx = 0;
-        while (byteIdx < utfLen && chIdx < charLength) {
-            builder.appendChar(src.charAt(src.getMetaDataLength() + byteIdx));
-            chIdx++;
-            byteIdx += src.charSize(src.getMetaDataLength() + byteIdx);
+        builder.reset(out, Math.min(utfLen - byteIdx, (int) (codePointLength * 1.0 * byteIdx / codePointIdx)));
+        codePointIdx = 0;
+        while (byteIdx < utfLen && codePointIdx < codePointLength) {
+            builder.appendCodePoint(src.codePointAt(src.getMetaDataLength() + byteIdx));
+            codePointIdx++;
+            byteIdx += src.codePointSize(src.getMetaDataLength() + byteIdx);
         }
         builder.finish();
         return true;
@@ -543,16 +638,11 @@
         builder.finish();
     }
 
-    public void trim(UTF8StringBuilder builder, GrowableArray out, boolean left, boolean right, CharSet charSet)
-            throws IOException {
-        trim(this, builder, out, left, right, charSet);
-    }
-
     /**
      * Generates a trimmed string of an input source string.
      *
      * @param srcPtr
-     *            , the input source string.
+     *            , the input source string
      * @param builder
      *            , the result string builder.
      * @param out
@@ -561,23 +651,23 @@
      *            , whether to trim the left side.
      * @param right
      *            , whether to trim the right side.
-     * @param charSet
-     *            , the chars that should be trimmed.
+     * @param codePointSet
+     *            , the set of code points that should be trimmed.
      * @throws IOException
      */
     public static void trim(UTF8StringPointable srcPtr, UTF8StringBuilder builder, GrowableArray out, boolean left,
-            boolean right, CharSet charSet) throws IOException {
+            boolean right, IntCollection codePointSet) throws IOException {
         final int srcUtfLen = srcPtr.getUTF8Length();
         final int srcStart = srcPtr.getMetaDataLength();
         // Finds the start Index (inclusive).
         int startIndex = 0;
         if (left) {
             while (startIndex < srcUtfLen) {
-                char ch = srcPtr.charAt(srcStart + startIndex);
-                if (!charSet.contains(ch)) {
+                int codepoint = srcPtr.codePointAt(srcStart + startIndex);
+                if (!codePointSet.contains(codepoint)) {
                     break;
                 }
-                startIndex += srcPtr.charSize(srcStart + startIndex);
+                startIndex += srcPtr.codePointSize(srcStart + startIndex);
             }
         }
 
@@ -587,9 +677,9 @@
             endIndex = startIndex;
             int cursorIndex = startIndex;
             while (cursorIndex < srcUtfLen) {
-                char ch = srcPtr.charAt(srcStart + cursorIndex);
-                cursorIndex += srcPtr.charSize(srcStart + cursorIndex);
-                if (!charSet.contains(ch)) {
+                int codePioint = srcPtr.codePointAt(srcStart + cursorIndex);
+                cursorIndex += srcPtr.codePointSize(srcStart + cursorIndex);
+                if (!codePointSet.contains(codePioint)) {
                     endIndex = cursorIndex;
                 }
             }
@@ -603,6 +693,26 @@
     }
 
     /**
+     * Generates a trimmed string from the original string.
+     *
+     * @param builder
+     *            , the result string builder.
+     * @param out
+     *            , the storage for the output string.
+     * @param left
+     *            , whether to trim the left side.
+     * @param right
+     *            , whether to trim the right side.
+     * @param codePointSet
+     *            , the set of code points that should be trimmed.
+     * @throws IOException
+     */
+    public void trim(UTF8StringBuilder builder, GrowableArray out, boolean left, boolean right,
+            IntCollection codePointSet) throws IOException {
+        trim(this, builder, out, left, right, codePointSet);
+    }
+
+    /**
      * Generates a reversed string from an input source string
      *
      * @param srcPtr
@@ -620,7 +730,27 @@
         int srcEnd = srcPtr.getStartOffset() + srcPtr.getLength() - 1;
         for (int cursorIndex = srcEnd; cursorIndex >= srcStart; cursorIndex--) {
             if (UTF8StringUtil.isCharStart(srcPtr.bytes, cursorIndex)) {
+                char ch = UTF8StringUtil.charAt(srcPtr.bytes, cursorIndex);
                 int charSize = UTF8StringUtil.charSize(srcPtr.bytes, cursorIndex);
+
+                if (Character.isLowSurrogate(ch)) {
+                    while (cursorIndex >= srcStart) {
+                        cursorIndex--;
+                        if (UTF8StringUtil.isCharStart(srcPtr.bytes, cursorIndex)) {
+                            ch = UTF8StringUtil.charAt(srcPtr.bytes, cursorIndex);
+                            if (Character.isHighSurrogate(ch) == false) {
+                                throw new IllegalArgumentException(
+                                        "Decoding Error: no corresponding high surrogate found for the following low surrogate");
+                            }
+
+                            charSize += UTF8StringUtil.charSize(srcPtr.bytes, cursorIndex);
+                            break;
+                        }
+                    }
+                } else if (Character.isHighSurrogate(ch)) {
+                    throw new IllegalArgumentException("Decoding Error: get a high surrogate without low surrogate");
+                }
+
                 builder.appendUtf8StringPointable(srcPtr, cursorIndex, charSize);
             }
         }
diff --git a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VarLengthTypeTrait.java b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VarLengthTypeTrait.java
index 1b27784..b6e4d94 100644
--- a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VarLengthTypeTrait.java
+++ b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VarLengthTypeTrait.java
@@ -39,6 +39,11 @@
 
     @Override
     public int getFixedLength() {
+        // This method should never be called: here we are getting the fixed length of a variable length field
+        // A better way to handle this method is to throw an exception
+        // such as UnsupportedOperationException("try to get the fixed length of a variable length type trait"),
+        // however, since this method is somehow fundamental and pretty old, we want to keep it this way
+        // to avoid potential issues.
         return 0;
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/util/UTF8StringBuilder.java b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/util/UTF8StringBuilder.java
index 2300c06..9913a39 100644
--- a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/util/UTF8StringBuilder.java
+++ b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/util/UTF8StringBuilder.java
@@ -23,11 +23,20 @@
 
 public class UTF8StringBuilder extends AbstractVarLenObjectBuilder {
 
+    private final char[] tmpCharsForCodePointConversion = new char[2];
+
     public void appendChar(char ch) throws IOException {
         UTF8StringUtil.writeCharAsModifiedUTF8(ch, out);
     }
 
-    public void appendString(String string) throws IOException {
+    public void appendCodePoint(int codePoint) throws IOException {
+        int numChar = Character.toChars(codePoint, tmpCharsForCodePointConversion, 0);
+        for (int i = 0; i < numChar; i++) {
+            appendChar(tmpCharsForCodePointConversion[i]);
+        }
+    }
+
+    public void appendString(CharSequence string) throws IOException {
         for (int i = 0; i < string.length(); i++) {
             appendChar(string.charAt(i));
         }
diff --git a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/test/java/org/apache/hyracks/data/std/primitive/UTF8StringPointableTest.java b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/test/java/org/apache/hyracks/data/std/primitive/UTF8StringPointableTest.java
index 302e7a0..dcf9a10 100644
--- a/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/test/java/org/apache/hyracks/data/std/primitive/UTF8StringPointableTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/test/java/org/apache/hyracks/data/std/primitive/UTF8StringPointableTest.java
@@ -20,17 +20,25 @@
 package org.apache.hyracks.data.std.primitive;
 
 import static org.apache.hyracks.data.std.primitive.UTF8StringPointable.generateUTF8Pointable;
+import static org.apache.hyracks.util.string.UTF8StringSample.EMOJI_BASKETBALL;
+import static org.apache.hyracks.util.string.UTF8StringSample.STRING_EMOJI_FAMILY_OF_2;
+import static org.apache.hyracks.util.string.UTF8StringSample.STRING_EMOJI_FAMILY_OF_4;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.commons.lang3.CharSet;
+import java.io.IOException;
+import java.util.Arrays;
+
 import org.apache.hyracks.data.std.util.GrowableArray;
 import org.apache.hyracks.data.std.util.UTF8StringBuilder;
 import org.apache.hyracks.util.string.UTF8StringSample;
 import org.apache.hyracks.util.string.UTF8StringUtil;
 import org.junit.Test;
 
+import it.unimi.dsi.fastutil.ints.IntArraySet;
+import it.unimi.dsi.fastutil.ints.IntCollection;
+
 public class UTF8StringPointableTest {
     public static UTF8StringPointable STRING_EMPTY = generateUTF8Pointable(UTF8StringSample.EMPTY_STRING);
     public static UTF8StringPointable STRING_UTF8_MIX = generateUTF8Pointable(UTF8StringSample.STRING_UTF8_MIX);
@@ -40,8 +48,13 @@
     public static UTF8StringPointable STRING_LEN_127 = generateUTF8Pointable(UTF8StringSample.STRING_LEN_127);
     public static UTF8StringPointable STRING_LEN_128 = generateUTF8Pointable(UTF8StringSample.STRING_LEN_128);
 
+    public static UTF8StringPointable STRING_POINTABLE_EMOJI_FAMILY_OF_4 =
+            generateUTF8Pointable(STRING_EMOJI_FAMILY_OF_4);
+    public static UTF8StringPointable STRING_POINTABLE_EMOJI_FAMILY_OF_2 =
+            generateUTF8Pointable(STRING_EMOJI_FAMILY_OF_2);
+
     @Test
-    public void testGetStringLength() throws Exception {
+    public void testGetStringUTF8Length() throws Exception {
         UTF8StringPointable utf8Ptr = generateUTF8Pointable(UTF8StringSample.STRING_LEN_127);
         assertEquals(127, utf8Ptr.getUTF8Length());
         assertEquals(1, utf8Ptr.getMetaDataLength());
@@ -55,6 +68,16 @@
     }
 
     @Test
+    public void testFindInCodePoint() {
+        UTF8StringPointable strp = generateUTF8Pointable(STRING_EMOJI_FAMILY_OF_4 + EMOJI_BASKETBALL);
+        UTF8StringPointable pattern = generateUTF8Pointable(EMOJI_BASKETBALL);
+
+        assertEquals(7, UTF8StringPointable.findInCodePoint(strp, pattern, false));
+
+        assertEquals(7, UTF8StringPointable.findInCodePoint(strp, pattern, true));
+    }
+
+    @Test
     public void testContains() throws Exception {
         assertTrue(STRING_UTF8_MIX.contains(STRING_UTF8_MIX, false));
         assertTrue(STRING_UTF8_MIX.contains(STRING_UTF8_MIX, true));
@@ -119,6 +142,19 @@
     }
 
     @Test
+    public void testSubstrWithMultiCodePointCharacter() throws IOException {
+        GrowableArray storage = new GrowableArray();
+        UTF8StringBuilder builder = new UTF8StringBuilder();
+
+        // The middle 2 people of the 4-people-family is a 2-people-family
+        STRING_POINTABLE_EMOJI_FAMILY_OF_4.substr(2, 3, builder, storage);
+        UTF8StringPointable result = new UTF8StringPointable();
+        result.set(storage.getByteArray(), 0, storage.getLength());
+
+        assertEquals(0, STRING_POINTABLE_EMOJI_FAMILY_OF_2.compareTo(result));
+    }
+
+    @Test
     public void testSubstrBefore() throws Exception {
         UTF8StringBuilder builder = new UTF8StringBuilder();
         GrowableArray storage = new GrowableArray();
@@ -207,26 +243,35 @@
         GrowableArray storage = new GrowableArray();
         UTF8StringPointable result = new UTF8StringPointable();
         UTF8StringPointable input = generateUTF8Pointable("  this is it.i am;here.  ");
+        IntCollection spaceCodePointSet = new IntArraySet(Arrays.asList((int) ' '));
 
         // Trims both sides.
-        input.trim(builder, storage, true, true, CharSet.getInstance(" "));
+        input.trim(builder, storage, true, true, spaceCodePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         UTF8StringPointable expected = generateUTF8Pointable("this is it.i am;here.");
         assertEquals(0, expected.compareTo(result));
 
         // Only trims the right side.
         storage.reset();
-        input.trim(builder, storage, false, true, CharSet.getInstance(" "));
+        input.trim(builder, storage, false, true, spaceCodePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         expected = generateUTF8Pointable("  this is it.i am;here.");
         assertEquals(0, expected.compareTo(result));
 
         // Only trims the left side.
         storage.reset();
-        input.trim(builder, storage, true, false, CharSet.getInstance(" "));
+        input.trim(builder, storage, true, false, spaceCodePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         expected = generateUTF8Pointable("this is it.i am;here.  ");
         assertEquals(0, expected.compareTo(result));
+
+        // Only trims the left side in case of emoji
+        input = STRING_POINTABLE_EMOJI_FAMILY_OF_4;
+        storage.reset();
+        input.trim(builder, storage, true, false, spaceCodePointSet);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        expected = STRING_POINTABLE_EMOJI_FAMILY_OF_4;
+        assertEquals(0, expected.compareTo(result));
     }
 
     @Test
@@ -236,25 +281,85 @@
         UTF8StringPointable result = new UTF8StringPointable();
         UTF8StringPointable input = generateUTF8Pointable("  this is it.i am;here.  ");
 
+        String pattern = " hert.";
+        UTF8StringPointable patternPointable = generateUTF8Pointable(pattern);
+        IntCollection codePointSet = new IntArraySet();
+        codePointSet.clear();
+        patternPointable.getCodePoints(codePointSet);
+
         // Trims both sides.
-        input.trim(builder, storage, true, true, CharSet.getInstance(" hert."));
+        input.trim(builder, storage, true, true, codePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         UTF8StringPointable expected = generateUTF8Pointable("is is it.i am;");
         assertEquals(0, expected.compareTo(result));
 
         // Only trims the right side.
         storage.reset();
-        input.trim(builder, storage, false, true, CharSet.getInstance(" hert."));
+        input.trim(builder, storage, false, true, codePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         expected = generateUTF8Pointable("  this is it.i am;");
         assertEquals(0, expected.compareTo(result));
 
         // Only trims the left side.
         storage.reset();
-        input.trim(builder, storage, true, false, CharSet.getInstance(" hert."));
+        input.trim(builder, storage, true, false, codePointSet);
         result.set(storage.getByteArray(), 0, storage.getLength());
         expected = generateUTF8Pointable("is is it.i am;here.  ");
         assertEquals(0, expected.compareTo(result));
+
+        // Test Emoji trim
+        input = STRING_POINTABLE_EMOJI_FAMILY_OF_4;
+        pattern = "👨👦";
+        patternPointable = generateUTF8Pointable(pattern);
+        codePointSet.clear();
+        patternPointable.getCodePoints(codePointSet);
+
+        // Trim left
+        storage.reset();
+        input.trim(builder, storage, true, false, codePointSet);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        expected = generateUTF8Pointable("\u200D" + "👨‍👦‍👦");
+        assertEquals(0, expected.compareTo(result));
+
+        // Trim right
+        storage.reset();
+        input.trim(builder, storage, false, true, codePointSet);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        expected = generateUTF8Pointable("👨‍👨‍👦" + "\u200D");
+        assertEquals(0, expected.compareTo(result));
+
+        // Trim left and right
+        storage.reset();
+        input.trim(builder, storage, true, true, codePointSet);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        expected = generateUTF8Pointable("\u200D" + "👨‍👦" + "\u200D");
+        assertEquals(0, expected.compareTo(result));
+    }
+
+    @Test
+    public void testReverse() throws Exception {
+        UTF8StringBuilder builder = new UTF8StringBuilder();
+        GrowableArray storage = new GrowableArray();
+        UTF8StringPointable result = new UTF8StringPointable();
+        UTF8StringPointable input = generateUTF8Pointable(" I'd like to reverse ");
+        UTF8StringPointable expected = generateUTF8Pointable(" esrever ot ekil d'I ");
+
+        UTF8StringPointable.reverse(input, builder, storage);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        assertEquals(0, expected.compareTo(result));
+    }
+
+    @Test
+    public void testReverseWithEmoji() throws IOException {
+        UTF8StringBuilder builder = new UTF8StringBuilder();
+        GrowableArray storage = new GrowableArray();
+        UTF8StringPointable result = new UTF8StringPointable();
+        UTF8StringPointable input = generateUTF8Pointable("\uD83C\uDDE8\uD83C\uDDF3"); // CN flag
+        UTF8StringPointable expected = generateUTF8Pointable("\uD83C\uDDF3\uD83C\uDDE8"); // NC flag
+
+        UTF8StringPointable.reverse(input, builder, storage);
+        result.set(storage.getByteArray(), 0, storage.getLength());
+        assertEquals(0, expected.compareTo(result));
     }
 
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java
index a9371e9..59ab2f4 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java
@@ -110,14 +110,6 @@
         return false;
     }
 
-    @Override
-    public void flush(IFrameWriter writer) throws HyracksDataException {
-        if (tupleCount > 0) {
-            write(writer, true);
-        }
-        writer.flush();
-    }
-
     public void flush(IFrameWriter writer, ITracer tracer, String name, long traceCategory, String args)
             throws HyracksDataException {
         final long tid = tracer.durationB(name, traceCategory, args);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/SingleFrameBufferManager.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/SingleFrameBufferManager.java
new file mode 100644
index 0000000..2b4ffc8
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/SingleFrameBufferManager.java
@@ -0,0 +1,62 @@
+
+/*
+ * 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.hyracks.dataflow.std.buffermanager;
+
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+// This SingleFrameBufferManager is used for **scan** purpose.
+// When scanning an inverted index, we will load the pages from disk to memory one by one,
+// and this single frame buffer manager will allocate only one frame at the same time.
+//
+// Note: this buffer manager is NOT thread-safe
+public class SingleFrameBufferManager implements ISimpleFrameBufferManager {
+    boolean isAcquired = false;
+    ByteBuffer buffer = null;
+
+    @Override
+    public ByteBuffer acquireFrame(int frameSize) throws HyracksDataException {
+        if (buffer == null) {
+            buffer = ByteBuffer.allocate(frameSize);
+        }
+
+        if (isAcquired) {
+            return null;
+        } else {
+            if (buffer.capacity() >= frameSize) {
+                isAcquired = true;
+                buffer.clear();
+                Arrays.fill(buffer.array(), (byte) 0);
+                return buffer;
+            } else {
+                throw new HyracksDataException("Frame size changed");
+            }
+        }
+    }
+
+    @Override
+    public void releaseFrame(ByteBuffer frame) {
+        buffer.clear();
+        isAcquired = false;
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VariableDeletableTupleMemoryManager.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VariableDeletableTupleMemoryManager.java
index 33d0fda..b053cac 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VariableDeletableTupleMemoryManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VariableDeletableTupleMemoryManager.java
@@ -42,8 +42,8 @@
     private final IFramePool pool;
     private final IFrameFreeSlotPolicy policy;
     private final IAppendDeletableFrameTupleAccessor accessor;
-    private final ArrayList<ByteBuffer> frames;
-    private final RecordDescriptor recordDescriptor;
+    protected final ArrayList<ByteBuffer> frames;
+    protected final RecordDescriptor recordDescriptor;
     private int numTuples;
     private int statsReOrg;
 
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupBuildOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupBuildOperatorNodePushable.java
index 43f57af..20d223e 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupBuildOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupBuildOperatorNodePushable.java
@@ -38,6 +38,11 @@
 
 public class ExternalGroupBuildOperatorNodePushable extends AbstractUnaryInputSinkOperatorNodePushable
         implements IRunFileWriterGenerator {
+    /**
+     * Use a random seed to avoid hash collision with the hash exchange operator.
+     * See https://issues.apache.org/jira/browse/ASTERIXDB-2783 for more details.
+     */
+    private static final int INIT_SEED = 573275022;
 
     private static final Logger LOGGER = LogManager.getLogger();
     private final IHyracksTaskContext ctx;
@@ -85,7 +90,7 @@
         state = new ExternalGroupState(ctx.getJobletContext().getJobId(), stateId);
         ISpillableTable table = spillableTableFactory.buildSpillableTable(ctx, tableSize, fileSize, keyFields,
                 comparators, firstNormalizerComputer, aggregatorFactory, inRecordDescriptor, outRecordDescriptor,
-                framesLimit, 0);
+                framesLimit, INIT_SEED);
         RunFileWriter[] runFileWriters = new RunFileWriter[table.getNumPartitions()];
         this.externalGroupBy = new ExternalHashGroupBy(this, table, runFileWriters, inRecordDescriptor);
 
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
index fb2d4e9..4b1e4aa 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
@@ -112,10 +112,13 @@
     }
 
     public void build(ByteBuffer buffer) throws HyracksDataException {
-        buffers.add(buffer);
-        int bIndex = buffers.size() - 1;
         accessorBuild.reset(buffer);
         int tCount = accessorBuild.getTupleCount();
+        if (tCount <= 0) {
+            return;
+        }
+        buffers.add(buffer);
+        int bIndex = buffers.size() - 1;
         for (int i = 0; i < tCount; ++i) {
             int entry = tpcBuild.partition(accessorBuild, i, table.getTableSize());
             storedTuplePointer.reset(bIndex, i);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NestedLoopJoin.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NestedLoopJoin.java
index 361d1ee..b7693c7 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NestedLoopJoin.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NestedLoopJoin.java
@@ -96,7 +96,10 @@
     }
 
     public void cache(ByteBuffer buffer) throws HyracksDataException {
-        runFileWriter.nextFrame(buffer);
+        accessorInner.reset(buffer);
+        if (accessorInner.getTupleCount() > 0) {
+            runFileWriter.nextFrame(buffer);
+        }
     }
 
     /**
@@ -109,6 +112,10 @@
     }
 
     public void join(ByteBuffer outerBuffer, IFrameWriter writer) throws HyracksDataException {
+        accessorOuter.reset(outerBuffer);
+        if (accessorOuter.getTupleCount() <= 0) {
+            return;
+        }
         if (outerBufferMngr.insertFrame(outerBuffer) < 0) {
             RunFileReader runFileReader = runFileWriter.createReader();
             try {
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
index 97f9c24..c142113 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
@@ -107,6 +107,12 @@
  */
 
 public class OptimizedHybridHashJoinOperatorDescriptor extends AbstractOperatorDescriptor {
+    /**
+     * Use a random seed to avoid hash collision with the hash exchange operator.
+     * See https://issues.apache.org/jira/browse/ASTERIXDB-2783 for more details.
+     */
+    private static final int INIT_SEED = 982028031;
+
     private static final int BUILD_AND_PARTITION_ACTIVITY_ID = 0;
     private static final int PARTITION_AND_JOIN_ACTIVITY_ID = 1;
 
@@ -269,10 +275,11 @@
                         ctx.getJobletContext().getJobId(), new TaskId(getActivityId(), partition));
 
                 ITuplePartitionComputer probeHpc =
-                        new FieldHashPartitionComputerFamily(probeKeys, propHashFunctionFactories).createPartitioner(0);
+                        new FieldHashPartitionComputerFamily(probeKeys, propHashFunctionFactories)
+                                .createPartitioner(INIT_SEED);
                 ITuplePartitionComputer buildHpc =
                         new FieldHashPartitionComputerFamily(buildKeys, buildHashFunctionFactories)
-                                .createPartitioner(0);
+                                .createPartitioner(INIT_SEED);
                 boolean failed = false;
 
                 @Override
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
index 74223d8..b121fbb 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
@@ -139,6 +139,9 @@
     @Override
     public boolean insertFrame(ByteBuffer inputBuffer) throws HyracksDataException {
         inputTupleAccessor.reset(inputBuffer);
+        if (inputTupleAccessor.getTupleCount() <= 0) {
+            return true;
+        }
         long requiredMemory = getRequiredMemory(inputTupleAccessor);
         if (totalMemoryUsed + requiredMemory <= maxSortMemory && bufferManager.insertFrame(inputBuffer) >= 0) {
             // we have enough memory
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/union/UnionAllOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/union/UnionAllOperatorDescriptor.java
index a03d8d7..a1ea25b 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/union/UnionAllOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/union/UnionAllOperatorDescriptor.java
@@ -92,7 +92,9 @@
                 @Override
                 public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
                     synchronized (UnionOperator.this) {
-                        writer.nextFrame(buffer);
+                        if (!failed) {
+                            writer.nextFrame(buffer);
+                        }
                     }
                 }
 
@@ -100,9 +102,9 @@
                 public void fail() throws HyracksDataException {
                     synchronized (UnionOperator.this) {
                         if (!failed) {
+                            failed = true;
                             writer.fail();
                         }
-                        failed = true;
                     }
                 }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
index ce1734a..a8996e3 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
@@ -96,4 +96,11 @@
      * Indicates which scheme the client used making this request
      */
     HttpScheme getScheme();
+
+    /**
+     * Gets the local address of this request
+     *
+     * @return the remote address
+     */
+    InetSocketAddress getLocalAddress();
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
index bd56eb3..f5749b1 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
@@ -38,17 +38,20 @@
     protected final Map<String, List<String>> parameters;
     protected final InetSocketAddress remoteAddress;
     protected final HttpScheme scheme;
+    protected final InetSocketAddress localAddress;
 
     public static IServletRequest create(ChannelHandlerContext ctx, FullHttpRequest request, HttpScheme scheme) {
         QueryStringDecoder decoder = new QueryStringDecoder(request.uri());
         Map<String, List<String>> param = decoder.parameters();
         InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress();
-        return new BaseRequest(request, remoteAddress, param, scheme);
+        InetSocketAddress localAddress = (InetSocketAddress) ctx.channel().localAddress();
+        return new BaseRequest(request, localAddress, remoteAddress, param, scheme);
     }
 
-    protected BaseRequest(FullHttpRequest request, InetSocketAddress remoteAddress,
+    protected BaseRequest(FullHttpRequest request, InetSocketAddress localAddress, InetSocketAddress remoteAddress,
             Map<String, List<String>> parameters, HttpScheme scheme) {
         this.request = request;
+        this.localAddress = localAddress;
         this.remoteAddress = remoteAddress;
         this.parameters = parameters;
         this.scheme = scheme;
@@ -99,4 +102,9 @@
     public HttpScheme getScheme() {
         return scheme;
     }
+
+    @Override
+    public InetSocketAddress getLocalAddress() {
+        return localAddress;
+    }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
index 0e57d8d..de6ed72 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
@@ -44,11 +44,12 @@
         new QueryStringDecoder(request.uri()).parameters()
                 .forEach((name, value) -> parameters.computeIfAbsent(name, a -> new ArrayList<>()).addAll(value));
         InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress();
-        return new FormUrlEncodedRequest(request, remoteAddress, parameters, scheme);
+        InetSocketAddress localAddress = (InetSocketAddress) ctx.channel().localAddress();
+        return new FormUrlEncodedRequest(request, localAddress, remoteAddress, parameters, scheme);
     }
 
-    private FormUrlEncodedRequest(FullHttpRequest request, InetSocketAddress remoteAddress,
-            Map<String, List<String>> parameters, HttpScheme scheme) {
-        super(request, remoteAddress, parameters, scheme);
+    private FormUrlEncodedRequest(FullHttpRequest request, InetSocketAddress localAddress,
+            InetSocketAddress remoteAddress, Map<String, List<String>> parameters, HttpScheme scheme) {
+        super(request, localAddress, remoteAddress, parameters, scheme);
     }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IIPCHandle.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IIPCHandle.java
index d66f233..6920cfb 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IIPCHandle.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IIPCHandle.java
@@ -31,5 +31,7 @@
 
     public Object getAttachment();
 
+    public int getAttachmentLen();
+
     public boolean isConnected();
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IPayloadSerializerDeserializer.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IPayloadSerializerDeserializer.java
index 1d2c754..2b69513 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IPayloadSerializerDeserializer.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/IPayloadSerializerDeserializer.java
@@ -21,7 +21,7 @@
 import java.nio.ByteBuffer;
 
 public interface IPayloadSerializerDeserializer {
-    public Object deserializeObject(ByteBuffer buffer, int length) throws Exception;
+    public Object deserializeObject(ByteBuffer buffer, int length, byte flag) throws Exception;
 
     public Exception deserializeException(ByteBuffer buffer, int length) throws Exception;
 
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java
index ddcc677..cc0a852 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java
@@ -39,6 +39,8 @@
 
     private Object attachment;
 
+    private int attachmentLen;
+
     private ByteBuffer inBuffer;
 
     private ByteBuffer outBuffer;
@@ -95,6 +97,11 @@
         return attachment;
     }
 
+    @Override
+    public int getAttachmentLen() {
+        return attachmentLen;
+    }
+
     SelectionKey getKey() {
         return key;
     }
@@ -178,6 +185,7 @@
                     throw new IllegalStateException();
                 }
             } else {
+                attachmentLen = message.getPayloadLen();
                 system.deliverIncomingMessage(message);
             }
         }
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/JavaSerializationBasedPayloadSerializerDeserializer.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/JavaSerializationBasedPayloadSerializerDeserializer.java
index 439f230..64befde 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/JavaSerializationBasedPayloadSerializerDeserializer.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/JavaSerializationBasedPayloadSerializerDeserializer.java
@@ -33,7 +33,7 @@
 public class JavaSerializationBasedPayloadSerializerDeserializer implements IPayloadSerializerDeserializer {
 
     @Override
-    public Object deserializeObject(ByteBuffer buffer, int length) throws Exception {
+    public Object deserializeObject(ByteBuffer buffer, int length, byte flag) throws Exception {
         return deserialize(buffer, length);
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/Message.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/Message.java
index 550ce45..5f73890 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/Message.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/Message.java
@@ -22,18 +22,18 @@
 
 import org.apache.hyracks.ipc.api.IPayloadSerializerDeserializer;
 
-class Message {
+public class Message {
     private static final int MSG_SIZE_SIZE = 4;
 
-    private static final int HEADER_SIZE = 17;
+    public static final int HEADER_SIZE = 17;
 
-    static final byte INITIAL_REQ = 1;
+    public static final byte INITIAL_REQ = 1;
 
-    static final byte INITIAL_ACK = 2;
+    public static final byte INITIAL_ACK = 2;
 
-    static final byte ERROR = 3;
+    public static final byte ERROR = 3;
 
-    static final byte NORMAL = 0;
+    public static final byte NORMAL = 0;
 
     private IPCHandle ipcHandle;
 
@@ -45,7 +45,9 @@
 
     private Object payload;
 
-    Message(IPCHandle ipcHandle) {
+    private int payloadLen;
+
+    public Message(IPCHandle ipcHandle) {
         this.ipcHandle = ipcHandle;
     }
 
@@ -53,31 +55,31 @@
         return ipcHandle;
     }
 
-    void setMessageId(long messageId) {
+    public void setMessageId(long messageId) {
         this.messageId = messageId;
     }
 
-    long getMessageId() {
+    public long getMessageId() {
         return messageId;
     }
 
-    void setRequestMessageId(long requestMessageId) {
+    public void setRequestMessageId(long requestMessageId) {
         this.requestMessageId = requestMessageId;
     }
 
-    long getRequestMessageId() {
+    public long getRequestMessageId() {
         return requestMessageId;
     }
 
-    void setFlag(byte flag) {
+    public void setFlag(byte flag) {
         this.flag = flag;
     }
 
-    byte getFlag() {
+    public byte getFlag() {
         return flag;
     }
 
-    void setPayload(Object payload) {
+    public void setPayload(Object payload) {
         this.payload = payload;
     }
 
@@ -85,15 +87,19 @@
         return payload;
     }
 
-    static boolean hasMessage(ByteBuffer buffer) {
+    int getPayloadLen() {
+        return payloadLen;
+    }
+
+    public static boolean hasMessage(ByteBuffer buffer) {
         if (buffer.remaining() < MSG_SIZE_SIZE) {
             return false;
         }
         int msgSize = buffer.getInt(buffer.position());
-        return buffer.remaining() >= msgSize + MSG_SIZE_SIZE;
+        return msgSize > 0 && buffer.remaining() >= msgSize + MSG_SIZE_SIZE;
     }
 
-    void read(ByteBuffer buffer) throws Exception {
+    public void read(ByteBuffer buffer) throws Exception {
         assert hasMessage(buffer);
         int msgSize = buffer.getInt();
         messageId = buffer.getLong();
@@ -101,29 +107,49 @@
         flag = buffer.get();
         int finalPosition = buffer.position() + msgSize - HEADER_SIZE;
         int length = msgSize - HEADER_SIZE;
+        payloadLen = length;
         try {
             IPayloadSerializerDeserializer serde = ipcHandle.getIPCSystem().getSerializerDeserializer();
-            payload = flag == ERROR ? serde.deserializeException(buffer, length)
-                    : serde.deserializeObject(buffer, length);
+            switch (flag) {
+                case NORMAL:
+                case INITIAL_ACK:
+                case INITIAL_REQ:
+                    payload = serde.deserializeObject(buffer, length, flag);
+                    break;
+                case ERROR:
+                    payload = serde.deserializeException(buffer, length);
+                    break;
+                default:
+                    throw new UnsupportedOperationException("Unknown message flag");
+            }
+
         } finally {
             buffer.position(finalPosition);
         }
     }
 
-    boolean write(ByteBuffer buffer) throws Exception {
+    public boolean write(ByteBuffer buffer) throws Exception {
         IPayloadSerializerDeserializer serde = ipcHandle.getIPCSystem().getSerializerDeserializer();
+        return write(buffer, serde);
+    }
+
+    public boolean write(ByteBuffer buffer, IPayloadSerializerDeserializer serde) throws Exception {
         byte[] bytes = flag == ERROR ? serde.serializeException((Exception) payload) : serde.serializeObject(payload);
         if (buffer.remaining() >= MSG_SIZE_SIZE + HEADER_SIZE + bytes.length) {
-            buffer.putInt(HEADER_SIZE + bytes.length);
-            buffer.putLong(messageId);
-            buffer.putLong(requestMessageId);
-            buffer.put(flag);
+            writeHeader(buffer, bytes.length, messageId, requestMessageId, flag);
             buffer.put(bytes);
             return true;
         }
         return false;
     }
 
+    public static void writeHeader(ByteBuffer buffer, int dlen, long messageId, long requestMessageId, byte flag) {
+        buffer.putInt(HEADER_SIZE + dlen);
+        buffer.putLong(messageId);
+        buffer.putLong(requestMessageId);
+        buffer.put(flag);
+    }
+
     @Override
     public String toString() {
         return "MSG[" + messageId + ":" + requestMessageId + ":" + flag + ":" + payload + "]";
diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/ReconnectingIPCHandle.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/ReconnectingIPCHandle.java
index a3578ad..ff048a4 100644
--- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/ReconnectingIPCHandle.java
+++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/ReconnectingIPCHandle.java
@@ -65,6 +65,11 @@
     }
 
     @Override
+    public int getAttachmentLen() {
+        return delegate.getAttachmentLen();
+    }
+
+    @Override
     public boolean isConnected() {
         return delegate.isConnected();
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/build/IndexBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/build/IndexBuilder.java
index f62860a..45bfed1 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/build/IndexBuilder.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/build/IndexBuilder.java
@@ -47,6 +47,7 @@
     protected final IResourceFactory localResourceFactory;
     protected final boolean durable;
     private final IResourceIdFactory resourceIdFactory;
+    private final String resourceRelPath;
 
     /*
      * Ideally, we should not pass resource id factory to the constructor since we can obtain it through
@@ -62,6 +63,7 @@
         this.localResourceFactory = localResourceFactory;
         this.durable = durable;
         this.resourceRef = resourceRef;
+        resourceRelPath = resourceRef.getRelativePath();
     }
 
     @Override
@@ -72,35 +74,34 @@
             // physical artifact that the LocalResourceRepository is managing (e.g. a file containing the resource Id).
             // Once the index has been created, a new resource Id can be generated.
             ILocalResourceRepository localResourceRepository = storageManager.getLocalResourceRepository(ctx);
-            LocalResource lr = localResourceRepository.get(resourceRef.getRelativePath());
+            LocalResource lr = localResourceRepository.get(resourceRelPath);
             long resourceId = lr == null ? -1 : lr.getId();
             if (resourceId != -1) {
-                localResourceRepository.delete(resourceRef.getRelativePath());
+                localResourceRepository.delete(resourceRelPath);
             }
             resourceId = resourceIdFactory.createId();
             IResource resource = localResourceFactory.createResource(resourceRef);
             lr = new LocalResource(resourceId, ITreeIndexFrame.Constants.VERSION, durable, resource);
-            IIndex index = lcManager.get(resourceRef.getRelativePath());
+            IIndex index = lcManager.get(resourceRelPath);
             if (index != null) {
                 //how is this right?????????? <needs to be fixed>
                 //The reason for this is to handle many cases such as:
                 //1. Crash while delete index is running (we don't do global cleanup on restart)
                 //2. Node leaves and then join with old data
-                LOGGER.log(Level.WARN,
-                        "Removing existing index on index create for the index: " + resourceRef.getRelativePath());
-                lcManager.unregister(resourceRef.getRelativePath());
+                LOGGER.log(Level.WARN, "Removing existing index on index create for the index: " + resourceRelPath);
+                lcManager.unregister(resourceRelPath);
                 index.destroy();
             } else {
-                if (resourceRef.getFile().exists()) {
+                final FileReference resolvedResourceRef = ctx.getIoManager().resolve(resourceRelPath);
+                if (resolvedResourceRef.getFile().exists()) {
                     // Index is not registered but the index file exists
                     // This is another big problem that we need to disallow soon
                     // We can only disallow this if we have a global cleanup after crash
                     // on reboot
-                    LOGGER.log(Level.WARN,
-                            "Deleting " + resourceRef.getRelativePath()
-                                    + " on index create. The index is not registered"
-                                    + " but the file exists in the filesystem");
-                    IoUtil.delete(resourceRef);
+                    LOGGER.warn(
+                            "Deleting {} on index create. The index is not registered but the file exists in the filesystem",
+                            resolvedResourceRef);
+                    IoUtil.delete(resolvedResourceRef);
                 }
                 index = resource.createInstance(ctx);
             }
@@ -110,7 +111,7 @@
             } catch (IOException e) {
                 throw HyracksDataException.create(e);
             }
-            lcManager.register(resourceRef.getRelativePath(), index);
+            lcManager.register(resourceRelPath, index);
         }
     }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
index 8084c81..753d27a 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperation.java
@@ -37,7 +37,8 @@
         FLUSH,
         MERGE,
         LOAD,
-        NOOP
+        NOOP,
+        REPLICATE
     }
 
     /**
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInPlaceInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInPlaceInvertedIndex.java
index ed4287d..099eda5 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInPlaceInvertedIndex.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInPlaceInvertedIndex.java
@@ -30,7 +30,7 @@
      *
      * @throws HyracksDataException
      */
-    InvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) throws HyracksDataException;
+    IInvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) throws HyracksDataException;
 
     /**
      * Creates an inverted-list-range-search cursor. This cursor is mainly used to conduct
@@ -38,7 +38,7 @@
      *
      * @throws HyracksDataException
      */
-    InvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats) throws HyracksDataException;
+    IInvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats) throws HyracksDataException;
 
     /**
      * Opens an inverted list cursor
@@ -51,6 +51,6 @@
      *            the operation context under which the cursor is to be open
      * @throws HyracksDataException
      */
-    void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey, IIndexOperationContext ictx)
+    void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey, IIndexOperationContext ictx)
             throws HyracksDataException;
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java
index fe29c5f..f0ff2bb 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedIndexAccessor.java
@@ -26,9 +26,9 @@
 import org.apache.hyracks.storage.common.ISearchPredicate;
 
 public interface IInvertedIndexAccessor extends IIndexAccessor {
-    public InvertedListCursor createInvertedListCursor() throws HyracksDataException;
+    public IInvertedListCursor createInvertedListCursor() throws HyracksDataException;
 
-    public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey)
+    public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey)
             throws HyracksDataException;
 
     public IIndexCursor createRangeSearchCursor() throws HyracksDataException;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilder.java
index ce2af37..f157213 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilder.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilder.java
@@ -30,6 +30,8 @@
 
     public void setTargetBuffer(byte[] targetBuf, int startPos);
 
+    public boolean isFixedSize();
+
     public int getListSize();
 
     public int getPos();
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilderFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilderFactory.java
index 6aed487..defd8a1 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilderFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListBuilderFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.hyracks.storage.am.lsm.invertedindex.api;
 
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
 public interface IInvertedListBuilderFactory {
-    public IInvertedListBuilder create();
+    public IInvertedListBuilder create() throws HyracksDataException;
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java
new file mode 100644
index 0000000..77f68b4
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListCursor.java
@@ -0,0 +1,73 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.api;
+
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.common.IIndexCursor;
+import org.apache.hyracks.storage.common.MultiComparator;
+
+/**
+ * A cursor that reads an inverted list.
+ */
+public interface IInvertedListCursor extends IIndexCursor, Comparable<IInvertedListCursor> {
+
+    /**
+     * Conducts any operation that is required before loading pages.
+     */
+    void prepareLoadPages() throws HyracksDataException;
+
+    /**
+     * Loads one or more pages to memory.
+     */
+    void loadPages() throws HyracksDataException;
+
+    /**
+     * Unloads currently loaded pages in the memory.
+     */
+    void unloadPages() throws HyracksDataException;
+
+    /**
+     * Gets the cardinality of elements in the cursor.
+     */
+    int size() throws HyracksDataException;
+
+    /**
+     * Checks whether the given tuple is contained in the cursor.
+     *
+     * Note that this method is used when merging two sorted list, that means we can move the internal cursor of a list
+     * in one-direction: the cursor won't go back.
+     * A better name of this method might be moveCursorForwardToCheckContainsKey()
+     */
+    boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException;
+
+    /**
+     * Prints all elements in the cursor (debug method).
+     */
+    @SuppressWarnings("rawtypes")
+    String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException;
+
+    /**
+     * Prints the current element in the cursor (debug method).
+     */
+    @SuppressWarnings("rawtypes")
+    String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException;
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListSearchResultFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListSearchResultFrameTupleAppender.java
new file mode 100644
index 0000000..562d4b2
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListSearchResultFrameTupleAppender.java
@@ -0,0 +1,49 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.api;
+
+import java.nio.ByteBuffer;
+
+public interface IInvertedListSearchResultFrameTupleAppender {
+
+    public void reset(ByteBuffer buffer);
+
+    public void reset(ByteBuffer buffer, boolean clear, int tupleCount, int tupleDataEndOffset);
+
+    public boolean append(byte[] bytes, int offset, int length);
+
+    public boolean append(int fieldValue);
+
+    public boolean append(long fieldValue);
+
+    public boolean append(char fieldValue);
+
+    public boolean append(byte fieldValue);
+
+    // returns true if a tuple of the given length fits, returns false otherwise
+    public boolean hasSpace(int length);
+
+    public void incrementTupleCount(int count);
+
+    public int getTupleCount();
+
+    public ByteBuffer getBuffer();
+
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListTupleReference.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListTupleReference.java
new file mode 100644
index 0000000..2c109a5
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/IInvertedListTupleReference.java
@@ -0,0 +1,26 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.api;
+
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+
+public interface IInvertedListTupleReference extends ITupleReference {
+    void reset(byte[] data, int startOff);
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/InvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/InvertedListCursor.java
deleted file mode 100644
index b6d5902..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/api/InvertedListCursor.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.api;
-
-import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexSearchCursorInitialState;
-import org.apache.hyracks.storage.common.EnforcedIndexCursor;
-import org.apache.hyracks.storage.common.ICursorInitialState;
-import org.apache.hyracks.storage.common.ISearchPredicate;
-import org.apache.hyracks.storage.common.MultiComparator;
-
-/**
- * A cursor that reads an inverted list.
- */
-public abstract class InvertedListCursor extends EnforcedIndexCursor implements Comparable<InvertedListCursor> {
-
-    /**
-     * Opens an inverted list cursor.
-     */
-    protected void doOpen(ICursorInitialState initialState, ISearchPredicate searchPred) throws HyracksDataException {
-        // If the given cursor state has page ids and the number of elements for the given inverted list,
-        // this should be set. Otherwise (for in-memory cursor), doesn't need to do anything.
-        int invListStartPageId = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
-        int invListEndPageId = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
-        int invListStartOffset = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
-        int invListNumElements = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
-        if (initialState instanceof LSMInvertedIndexSearchCursorInitialState) {
-            LSMInvertedIndexSearchCursorInitialState invIndexInitialState =
-                    (LSMInvertedIndexSearchCursorInitialState) initialState;
-            invListStartPageId = invIndexInitialState.getInvListStartPageId();
-            invListEndPageId = invIndexInitialState.getInvListEndPageId();
-            invListStartOffset = invIndexInitialState.getInvListStartOffset();
-            invListNumElements = invIndexInitialState.getInvListNumElements();
-        }
-        if (invListNumElements != LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE) {
-            setInvListInfo(invListStartPageId, invListEndPageId, invListStartOffset, invListNumElements);
-        }
-    }
-
-    /**
-     * Sets the disk-based inverted list information such as page ids and the number of elements
-     * for the given inverted list.
-     */
-    protected abstract void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
-            throws HyracksDataException;
-
-    /**
-     * Conducts any operation that is required before loading pages.
-     */
-    public abstract void prepareLoadPages() throws HyracksDataException;
-
-    /**
-     * Loads one or more pages to memory.
-     */
-    public abstract void loadPages() throws HyracksDataException;
-
-    /**
-     * Unloads currently loaded pages in the memory.
-     */
-    public abstract void unloadPages() throws HyracksDataException;
-
-    /**
-     * Gets the cardinality of elements in the cursor.
-     */
-    public abstract int size() throws HyracksDataException;
-
-    /**
-     * Checks whether the given tuple is contained in the cursor.
-     */
-    public abstract boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp)
-            throws HyracksDataException;
-
-    /**
-     * Prints all elements in the cursor (debug method).
-     */
-    @SuppressWarnings("rawtypes")
-    public abstract String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException;
-
-    /**
-     * Prints the current element in the cursor (debug method).
-     */
-    @SuppressWarnings("rawtypes")
-    public abstract String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException;
-}
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractInvertedListCursor.java
new file mode 100644
index 0000000..295d942
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractInvertedListCursor.java
@@ -0,0 +1,58 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.impls;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.common.EnforcedIndexCursor;
+import org.apache.hyracks.storage.common.ICursorInitialState;
+import org.apache.hyracks.storage.common.ISearchPredicate;
+
+/**
+ * A cursor that reads an inverted list.
+ */
+public abstract class AbstractInvertedListCursor extends EnforcedIndexCursor implements IInvertedListCursor {
+
+    /**
+     * Opens an inverted list cursor.
+     */
+    protected void doOpen(ICursorInitialState initialState, ISearchPredicate searchPred) throws HyracksDataException {
+        // If the given cursor state has page ids and the number of elements for the given inverted list,
+        // this should be set. Otherwise (for in-memory cursor), doesn't need to do anything.
+        int invListStartPageId = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
+        int invListEndPageId = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
+        int invListStartOffset = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
+        int invListNumElements = LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE;
+        if (initialState instanceof LSMInvertedIndexSearchCursorInitialState) {
+            LSMInvertedIndexSearchCursorInitialState invIndexInitialState =
+                    (LSMInvertedIndexSearchCursorInitialState) initialState;
+            invListStartPageId = invIndexInitialState.getInvListStartPageId();
+            invListEndPageId = invIndexInitialState.getInvListEndPageId();
+            invListStartOffset = invIndexInitialState.getInvListStartOffset();
+            invListNumElements = invIndexInitialState.getInvListNumElements();
+        }
+        if (invListNumElements != LSMInvertedIndexSearchCursorInitialState.INVALID_VALUE) {
+            setInvListInfo(invListStartPageId, invListEndPageId, invListStartOffset, invListNumElements);
+        }
+    }
+
+    protected abstract void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
+            throws HyracksDataException;
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractOnDiskInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractOnDiskInvertedListCursor.java
new file mode 100644
index 0000000..7ec6ce2
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/AbstractOnDiskInvertedListCursor.java
@@ -0,0 +1,337 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.impls;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInput;
+import java.io.DataInputStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.ErrorCode;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.util.HyracksConstants;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.dataflow.common.utils.TaskUtil;
+import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
+import org.apache.hyracks.dataflow.std.buffermanager.SingleFrameBufferManager;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+import org.apache.hyracks.storage.common.IIndexCursorStats;
+import org.apache.hyracks.storage.common.buffercache.IBufferCache;
+import org.apache.hyracks.storage.common.buffercache.ICachedPage;
+import org.apache.hyracks.storage.common.file.BufferedFileHandle;
+
+/**
+ * A cursor that reads an inverted list.
+ */
+public abstract class AbstractOnDiskInvertedListCursor extends AbstractInvertedListCursor {
+
+    protected final IBufferCache bufferCache;
+    protected final int fileId;
+    // for sequential scan
+    public int currentElementIxForScan;
+    protected int currentOffsetForScan;
+    protected int currentPageIxForScan;
+    // the whole range of the given inverted list
+    protected int startPageId;
+    protected int endPageId;
+    protected int startOff;
+    protected int numElements;
+    protected int numPages;
+    // the current range of the loaded pages in memory
+    protected int bufferStartPageId;
+    protected int bufferEndPageId;
+    protected int bufferStartElementIx;
+    protected int bufferNumLoadedPages;
+
+    protected final IInvertedListTupleReference tuple;
+    protected final ITypeTraits[] invListFields;
+    protected ICachedPage page;
+    // buffer manager to conform to the memory budget
+    protected final ISimpleFrameBufferManager bufferManagerForSearch;
+    protected ArrayList<ByteBuffer> buffers;
+    protected boolean moreBlocksToRead = true;
+    // The last searched element index (used for random traversal for containsKey())
+    protected int lastRandomSearchedElementIx;
+    protected final IIndexCursorStats stats;
+
+    protected AbstractOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
+            IHyracksTaskContext ctx, IIndexCursorStats stats) throws HyracksDataException {
+        this(bufferCache, fileId, invListFields, ctx, stats, false);
+    }
+
+    protected AbstractOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
+            IIndexCursorStats stats) throws HyracksDataException {
+        this(bufferCache, fileId, invListFields, null, stats, true);
+    }
+
+    // If isScan, use the SingleFrameBufferManager to minimize memory cost by allocating only one memory frame,
+    // elsewhere use a regular buffer manager
+    protected AbstractOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
+            IHyracksTaskContext ctx, IIndexCursorStats stats, boolean isScan) throws HyracksDataException {
+        this.bufferCache = bufferCache;
+        this.fileId = fileId;
+
+        this.currentElementIxForScan = 0;
+        this.currentPageIxForScan = 0;
+        this.bufferStartPageId = 0;
+        this.bufferEndPageId = 0;
+        this.bufferStartElementIx = 0;
+        this.bufferNumLoadedPages = 0;
+        this.lastRandomSearchedElementIx = 0;
+        this.moreBlocksToRead = true;
+        this.invListFields = invListFields;
+        this.tuple = InvertedIndexUtils.createInvertedListTupleReference(invListFields);
+        this.buffers = new ArrayList<ByteBuffer>();
+        if (ctx == null && !isScan) {
+            throw HyracksDataException.create(ErrorCode.CANNOT_CONTINUE_TEXT_SEARCH_HYRACKS_TASK_IS_NULL);
+        }
+        if (!isScan) {
+            this.bufferManagerForSearch = TaskUtil.get(HyracksConstants.INVERTED_INDEX_SEARCH_FRAME_MANAGER, ctx);
+            if (bufferManagerForSearch == null) {
+                throw HyracksDataException.create(ErrorCode.CANNOT_CONTINUE_TEXT_SEARCH_BUFFER_MANAGER_IS_NULL);
+            }
+        } else {
+            this.bufferManagerForSearch = new SingleFrameBufferManager();
+        }
+        this.stats = stats;
+    }
+
+    /**
+     * Tries to allocate enough buffers to read the inverted list at once. If memory budget is not enough, this method
+     * stops allocating buffers. */
+    protected void allocateBuffers() throws HyracksDataException {
+        do {
+            ByteBuffer tmpBuffer = bufferManagerForSearch.acquireFrame(bufferCache.getPageSize());
+            if (tmpBuffer == null) {
+                // Budget exhausted
+                break;
+            }
+            Arrays.fill(tmpBuffer.array(), (byte) 0);
+            buffers.add(tmpBuffer);
+        } while (buffers.size() < numPages);
+        // At least there should be one frame to load a page from disk.
+        if (buffers.isEmpty()) {
+            throw HyracksDataException.create(ErrorCode.NOT_ENOUGH_BUDGET_FOR_TEXTSEARCH,
+                    AbstractOnDiskInvertedListCursor.class.getName());
+        }
+    }
+
+    /**
+     * Deallocates all buffers. i.e. releases all buffers to the buffer manager.
+     */
+    protected void deallocateBuffers() throws HyracksDataException {
+        for (int i = 0; i < buffers.size(); i++) {
+            bufferManagerForSearch.releaseFrame(buffers.get(i));
+            buffers.set(i, null);
+        }
+        buffers.clear();
+    }
+
+    /**
+     * Clears the contents of the buffers.
+     */
+    protected void clearBuffers() throws HyracksDataException {
+        for (int i = 0; i < buffers.size(); i++) {
+            Arrays.fill(buffers.get(i).array(), (byte) 0);
+            buffers.get(i).clear();
+        }
+    }
+
+    /**
+     * Checks whether there are more elements to return. This is usually used for a sequential scan.
+     */
+    @Override
+    public boolean doHasNext() {
+        return currentElementIxForScan < numElements;
+    }
+
+    /**
+     * Prepares buffers to load pages. This method should not be called during the open()
+     * since it tries to allocate all available frames. If there are multiple concurrently opened
+     * cursors (e.g., a partitioned inverted index), this will cause an issue. An assumption of this cursor is
+     * that no two cursors are accessed at the same time even though they can be opened together.
+     */
+    @Override
+    public void prepareLoadPages() throws HyracksDataException {
+        // Resets the buffers if there is any.
+        clearBuffers();
+        if (numPages > buffers.size()) {
+            allocateBuffers();
+        }
+    }
+
+    /**
+     * Reads a part of the inverted list into the working memory via the buffer cache.
+     * This method reads the inverted list until it fills the current buffers.
+     */
+    @Override
+    public void loadPages() throws HyracksDataException {
+        // Conducts a load. Based on the size of the buffers, it may be possible to read the entire list.
+        // Resets the start page ID to load. At this moment, the variable bufferEndPageId holds
+        // the last page ID where the previous loadPages() stopped.
+        bufferStartPageId = bufferEndPageId + 1;
+        int currentBufferIdx = 0;
+        ByteBuffer tmpBuffer;
+        for (int i = bufferStartPageId; i <= endPageId; i++) {
+            page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, i), false);
+            stats.getPageCounter().update(1);
+            // Copies the content to the buffer (working memory).
+            // Assumption: processing inverted list takes time; so, we don't want to keep them on the buffer cache.
+            // Rather, we utilize the assigned working memory (buffers).
+            tmpBuffer = page.getBuffer();
+
+            // Copies the entire content of the page to the current buffer in the working memory.
+            System.arraycopy(tmpBuffer.array(), 0, buffers.get(currentBufferIdx).array(), 0,
+                    buffers.get(currentBufferIdx).capacity());
+            buffers.get(currentBufferIdx).position(buffers.get(currentBufferIdx).capacity());
+
+            currentBufferIdx++;
+            bufferCache.unpin(page);
+            bufferEndPageId = i;
+
+            // Buffer full?
+            if (currentBufferIdx >= buffers.size()) {
+                break;
+            }
+        }
+
+        setBlockInfo();
+    }
+
+    /**
+     * Unloads the pages from the buffers (working memory). This will release all buffers.
+     */
+    @Override
+    public void unloadPages() throws HyracksDataException {
+        // Deallocates the buffer pages
+        deallocateBuffers();
+    }
+
+    /**
+     * Sets the disk-based inverted list information such as page ids and the number of elements
+     * for the given inverted list.
+     */
+    @Override
+    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
+            throws HyracksDataException {
+        this.startPageId = startPageId;
+        this.endPageId = endPageId;
+        this.startOff = startOff;
+        this.numElements = numElements;
+        this.currentElementIxForScan = 0;
+        this.currentPageIxForScan = 0;
+        this.bufferStartPageId = startPageId;
+        // Deducts 1 since the startPage would be set to bufferEndPageId + 1 in loadPages().
+        this.bufferEndPageId = startPageId - 1;
+        this.moreBlocksToRead = true;
+        this.numPages = endPageId - startPageId + 1;
+
+        for (ByteBuffer buffer : buffers) {
+            buffer.clear();
+        }
+    }
+
+    /**
+     * Updates the information about this block.
+     */
+    protected void setBlockInfo() {
+        bufferNumLoadedPages = bufferEndPageId - bufferStartPageId + 1;
+        lastRandomSearchedElementIx = bufferStartElementIx;
+        currentPageIxForScan = 0;
+        if (bufferEndPageId == endPageId) {
+            moreBlocksToRead = false;
+        }
+    }
+
+    /**
+     * Prints the current element (a debugging method).
+     */
+    @Override
+    @SuppressWarnings("rawtypes")
+    public String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException {
+        StringBuilder strBuilder = new StringBuilder();
+        for (int i = 0; i < tuple.getFieldCount(); i++) {
+            ByteArrayInputStream inStream =
+                    new ByteArrayInputStream(tuple.getFieldData(i), tuple.getFieldStart(i), tuple.getFieldLength(i));
+            DataInput dataIn = new DataInputStream(inStream);
+            Object o = serdes[i].deserialize(dataIn);
+            strBuilder.append(o.toString());
+            if (i + 1 < tuple.getFieldCount()) {
+                strBuilder.append(",");
+            }
+        }
+        return strBuilder.toString();
+    }
+
+    /**
+     * A compare function that is used to sort inverted list cursors
+     */
+    @Override
+    public int compareTo(IInvertedListCursor invListCursor) {
+        try {
+            return numElements - invListCursor.size();
+        } catch (HyracksDataException hde) {
+            throw new IllegalStateException(hde);
+        }
+    }
+
+    /**
+     * Gets the cardinality of the current inverted list.
+     */
+    @Override
+    public int size() throws HyracksDataException {
+        return numElements;
+    }
+
+    /**
+     * Gets the current tuple.
+     */
+    @Override
+    public ITupleReference doGetTuple() {
+        return tuple;
+    }
+
+    /**
+     * Closes the cursor.
+     */
+    @Override
+    public void doClose() throws HyracksDataException {
+        if (!buffers.isEmpty()) {
+            unloadPages();
+        }
+    }
+
+    /**
+     * Destroys the cursor.
+     */
+    @Override
+    public void doDestroy() throws HyracksDataException {
+        if (!buffers.isEmpty()) {
+            unloadPages();
+        }
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java
index 8e39b62..67312ce 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndexAccessor.java
@@ -34,7 +34,7 @@
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext;
 import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexAccessor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.common.IIndexCursor;
 import org.apache.hyracks.storage.common.ISearchPredicate;
 
@@ -176,12 +176,12 @@
     }
 
     @Override
-    public InvertedListCursor createInvertedListCursor() {
+    public IInvertedListCursor createInvertedListCursor() {
         throw new UnsupportedOperationException("Cannot create inverted list cursor on lsm inverted index.");
     }
 
     @Override
-    public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey)
+    public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey)
             throws HyracksDataException {
         throw new UnsupportedOperationException("Cannot open inverted list cursor on lsm inverted index.");
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java
index bfbb141..914a469 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndex.java
@@ -34,7 +34,7 @@
 import org.apache.hyracks.storage.am.common.api.IPageManager;
 import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInPlaceInvertedIndex;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory;
 import org.apache.hyracks.storage.common.IIndexAccessParameters;
 import org.apache.hyracks.storage.common.IIndexBulkLoader;
@@ -148,19 +148,19 @@
     }
 
     @Override
-    public InvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) {
+    public IInvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) {
         return new InMemoryInvertedListCursor(invListTypeTraits.length, tokenTypeTraits.length);
     }
 
     @Override
-    public InvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats) {
+    public IInvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats) {
         // An in-memory index does not have a separate inverted list.
         // Therefore, a different range-search cursor for an inverted list is not required.
         return createInvertedListCursor(null);
     }
 
     @Override
-    public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey,
+    public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey,
             IIndexOperationContext ictx) throws HyracksDataException {
         InMemoryInvertedIndexOpContext ctx = (InMemoryInvertedIndexOpContext) ictx;
         ctx.setOperation(IndexOperation.SEARCH);
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java
index 0dd6b2c..5f0e1364 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedIndexAccessor.java
@@ -30,7 +30,7 @@
 import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexAccessor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearcher;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndexSearchCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedIndexSearchPredicate;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.TOccurrenceSearcher;
@@ -84,12 +84,12 @@
     }
 
     @Override
-    public InvertedListCursor createInvertedListCursor() {
+    public IInvertedListCursor createInvertedListCursor() {
         return index.createInvertedListCursor(ctx);
     }
 
     @Override
-    public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey)
+    public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey)
             throws HyracksDataException {
         index.openInvertedListCursor(listCursor, searchKey, opCtx);
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java
index c31a1e0..e1f301d 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/InMemoryInvertedListCursor.java
@@ -33,11 +33,12 @@
 import org.apache.hyracks.storage.am.btree.impls.BTree.BTreeAccessor;
 import org.apache.hyracks.storage.am.btree.impls.RangePredicate;
 import org.apache.hyracks.storage.am.common.tuples.ConcatenatingTupleReference;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.impls.AbstractInvertedListCursor;
 import org.apache.hyracks.storage.common.IIndexCursor;
 import org.apache.hyracks.storage.common.MultiComparator;
 
-public class InMemoryInvertedListCursor extends InvertedListCursor {
+public class InMemoryInvertedListCursor extends AbstractInvertedListCursor {
     private RangePredicate btreePred;
     private BTreeAccessor btreeAccessor;
     private IIndexCursor btreeCursor;
@@ -80,7 +81,7 @@
     }
 
     @Override
-    public int compareTo(InvertedListCursor cursor) {
+    public int compareTo(IInvertedListCursor cursor) {
         try {
             return size() - cursor.size();
         } catch (HyracksDataException hde) {
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListBuilder.java
new file mode 100644
index 0000000..4c4c3af
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListBuilder.java
@@ -0,0 +1,49 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
+
+public abstract class AbstractInvertedListBuilder implements IInvertedListBuilder {
+    protected byte[] targetBuf;
+    protected int pos;
+    protected ITypeTraits[] invListFields;
+    protected int listSize = 0;
+
+    public AbstractInvertedListBuilder(ITypeTraits[] invListFields) {
+        this.invListFields = invListFields;
+    }
+
+    @Override
+    public void setTargetBuffer(byte[] targetBuf, int startPos) {
+        this.targetBuf = targetBuf;
+        this.pos = startPos;
+    }
+
+    @Override
+    public int getListSize() {
+        return listSize;
+    }
+
+    @Override
+    public int getPos() {
+        return pos;
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListSearchResultFrameTupleAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListSearchResultFrameTupleAccessor.java
new file mode 100644
index 0000000..3b16423
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListSearchResultFrameTupleAccessor.java
@@ -0,0 +1,93 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.api.comm.FrameHelper;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+/**
+ * This is a frame tuple accessor class for inverted list.
+ * The frame structure: [4 bytes for minimum Hyracks frame count] [tuple 1] ... [tuple n] ...
+ * [4 bytes for the tuple count in a frame]
+ *
+ * The tuples can be fixed-size or variable-size.
+ * This class is mainly used to merge two inverted lists, e.g. searching the conjunction of two keywords "abc" AND "xyz"
+ */
+public abstract class AbstractInvertedListSearchResultFrameTupleAccessor implements IFrameTupleAccessor {
+
+    protected final int frameSize;
+    protected ByteBuffer buffer;
+
+    protected final ITypeTraits[] fields;
+
+    protected abstract void verifyTypeTraits() throws HyracksDataException;
+
+    public AbstractInvertedListSearchResultFrameTupleAccessor(int frameSize, ITypeTraits[] fields)
+            throws HyracksDataException {
+        this.frameSize = frameSize;
+        this.fields = fields;
+
+        verifyTypeTraits();
+    }
+
+    @Override
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+
+    @Override
+    public int getFieldCount() {
+        return fields.length;
+    }
+
+    @Override
+    public int getTupleLength(int tupleIndex) {
+        return getTupleEndOffset(tupleIndex) - getTupleStartOffset(tupleIndex);
+    }
+
+    @Override
+    public int getFieldSlotsLength() {
+        return 0;
+    }
+
+    @Override
+    public int getTupleCount() {
+        return buffer != null ? buffer.getInt(FrameHelper.getTupleCountOffset(frameSize)) : 0;
+    }
+
+    @Override
+    public int getTupleEndOffset(int tupleIndex) {
+        return getFieldEndOffset(tupleIndex, fields.length - 1);
+    }
+
+    @Override
+    public int getAbsoluteFieldStartOffset(int tupleIndex, int fIdx) {
+        return getTupleStartOffset(tupleIndex) + getFieldSlotsLength() + getFieldStartOffset(tupleIndex, fIdx);
+    }
+
+    @Override
+    public void reset(ByteBuffer buffer) {
+        this.buffer = buffer;
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListTupleReference.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListTupleReference.java
new file mode 100644
index 0000000..f5d8fa6
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/AbstractInvertedListTupleReference.java
@@ -0,0 +1,68 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+
+public abstract class AbstractInvertedListTupleReference implements IInvertedListTupleReference {
+
+    protected final ITypeTraits[] typeTraits;
+    protected final int[] fieldStartOffsets;
+    protected byte[] data;
+    protected int startOff;
+
+    // check if the type trait is fixed-size or variable-size
+    // throws an IllegalArgument exception if get unexpected traits
+    protected abstract void verifyTypeTrait() throws HyracksDataException;
+
+    public AbstractInvertedListTupleReference(ITypeTraits[] typeTraits) throws HyracksDataException {
+        this.typeTraits = typeTraits;
+        this.fieldStartOffsets = new int[typeTraits.length];
+        this.fieldStartOffsets[0] = 0;
+
+        verifyTypeTrait();
+    }
+
+    protected abstract void calculateFieldStartOffsets();
+
+    @Override
+    public void reset(byte[] data, int startOff) {
+        this.data = data;
+        this.startOff = startOff;
+        calculateFieldStartOffsets();
+    }
+
+    @Override
+    public int getFieldCount() {
+        return typeTraits.length;
+    }
+
+    @Override
+    public byte[] getFieldData(int fIdx) {
+        return data;
+    }
+
+    @Override
+    public int getFieldStart(int fIdx) {
+        return startOff + fieldStartOffsets[fIdx];
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilder.java
deleted file mode 100644
index 3889edd..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilder.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
-
-public class FixedSizeElementInvertedListBuilder implements IInvertedListBuilder {
-    private final int listElementSize;
-    private int listSize = 0;
-
-    private byte[] targetBuf;
-    private int pos;
-
-    public FixedSizeElementInvertedListBuilder(ITypeTraits[] invListFields) {
-        int tmp = 0;
-        for (int i = 0; i < invListFields.length; i++) {
-            tmp += invListFields[i].getFixedLength();
-        }
-        listElementSize = tmp;
-    }
-
-    @Override
-    public boolean startNewList(ITupleReference tuple, int tokenField) {
-        if (pos + listElementSize > targetBuf.length) {
-            return false;
-        } else {
-            listSize = 0;
-            return true;
-        }
-    }
-
-    @Override
-    public boolean appendElement(ITupleReference tuple, int numTokenFields, int numElementFields) {
-        if (pos + listElementSize > targetBuf.length) {
-            return false;
-        }
-
-        for (int i = 0; i < numElementFields; i++) {
-            int field = numTokenFields + i;
-            System.arraycopy(tuple.getFieldData(field), tuple.getFieldStart(field), targetBuf, pos,
-                    tuple.getFieldLength(field));
-        }
-
-        listSize++;
-        pos += listElementSize;
-
-        return true;
-    }
-
-    @Override
-    public void setTargetBuffer(byte[] targetBuf, int startPos) {
-        this.targetBuf = targetBuf;
-        this.pos = startPos;
-    }
-
-    @Override
-    public int getListSize() {
-        return listSize;
-    }
-
-    @Override
-    public int getPos() {
-        return pos;
-    }
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilderFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilderFactory.java
deleted file mode 100644
index 4e8b4f9..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListBuilderFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilderFactory;
-
-public class FixedSizeElementInvertedListBuilderFactory implements IInvertedListBuilderFactory {
-
-    private final ITypeTraits[] invListFields;
-
-    public FixedSizeElementInvertedListBuilderFactory(ITypeTraits[] invListFields) {
-        this.invListFields = invListFields;
-    }
-
-    @Override
-    public IInvertedListBuilder create() {
-        return new FixedSizeElementInvertedListBuilder(invListFields);
-    }
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListCursor.java
deleted file mode 100644
index 6002dc8..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListCursor.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInput;
-import java.io.DataInputStream;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.api.exceptions.ErrorCode;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.api.util.HyracksConstants;
-import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-import org.apache.hyracks.dataflow.common.utils.TaskUtil;
-import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
-import org.apache.hyracks.storage.common.IIndexCursorStats;
-import org.apache.hyracks.storage.common.MultiComparator;
-import org.apache.hyracks.storage.common.buffercache.IBufferCache;
-import org.apache.hyracks.storage.common.buffercache.ICachedPage;
-import org.apache.hyracks.storage.common.file.BufferedFileHandle;
-
-/**
- * A cursor class that traverse an inverted list that consists of fixed-size elements on disk
- *
- */
-public class FixedSizeElementInvertedListCursor extends InvertedListCursor {
-
-    private final IBufferCache bufferCache;
-    private final int fileId;
-    private final int elementSize;
-    // for sequential scan
-    private int currentElementIxForScan;
-    private int currentOffsetForScan;
-    private int currentPageIxForScan;
-    // the whole range of the given inverted list
-    private int startPageId;
-    private int endPageId;
-    private int startOff;
-    private int numElements;
-    private int numPages;
-    // the current range of the loaded pages in memory
-    private int bufferStartPageId;
-    private int bufferEndPageId;
-    private int bufferStartElementIx;
-    private int bufferEndElementIx;
-    private int bufferNumLoadedPages;
-
-    private final FixedSizeTupleReference tuple;
-    // The last element in the current range in memory
-    private final FixedSizeTupleReference bufferEndElementTuple;
-    private ICachedPage page;
-    // The last element index per page
-    private int[] elementIndexes = new int[10];
-    // buffer manager to conform to the memory budget
-    private final ISimpleFrameBufferManager bufferManagerForSearch;
-    private ArrayList<ByteBuffer> buffers;
-    private boolean moreBlocksToRead = true;
-    // The last searched element index (used for random traversal)
-    private int lastRandomSearchedElementIx;
-    private final IIndexCursorStats stats;
-
-    public FixedSizeElementInvertedListCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
-            IHyracksTaskContext ctx, IIndexCursorStats stats) throws HyracksDataException {
-        this.bufferCache = bufferCache;
-        this.fileId = fileId;
-        int tmpSize = 0;
-        for (int i = 0; i < invListFields.length; i++) {
-            tmpSize += invListFields[i].getFixedLength();
-        }
-        elementSize = tmpSize;
-        this.currentOffsetForScan = -elementSize;
-        this.currentElementIxForScan = 0;
-        this.currentPageIxForScan = 0;
-        this.bufferStartPageId = 0;
-        this.bufferEndPageId = 0;
-        this.bufferStartElementIx = 0;
-        this.bufferEndElementIx = 0;
-        this.bufferNumLoadedPages = 0;
-        this.lastRandomSearchedElementIx = 0;
-        this.moreBlocksToRead = true;
-        this.tuple = new FixedSizeTupleReference(invListFields);
-        this.bufferEndElementTuple = new FixedSizeTupleReference(invListFields);
-        this.buffers = new ArrayList<ByteBuffer>();
-        if (ctx == null) {
-            throw HyracksDataException.create(ErrorCode.CANNOT_CONTINUE_TEXT_SEARCH_HYRACKS_TASK_IS_NULL);
-        }
-        this.bufferManagerForSearch = TaskUtil.get(HyracksConstants.INVERTED_INDEX_SEARCH_FRAME_MANAGER, ctx);
-        if (bufferManagerForSearch == null) {
-            throw HyracksDataException.create(ErrorCode.CANNOT_CONTINUE_TEXT_SEARCH_BUFFER_MANAGER_IS_NULL);
-        }
-        this.stats = stats;
-    }
-
-    /**
-     * Tries to allocate enough buffers to read the inverted list at once. If memory budget is not enough, this method
-     * stops allocating buffers.
-     */
-    private void allocateBuffers() throws HyracksDataException {
-        do {
-            ByteBuffer tmpBuffer = bufferManagerForSearch.acquireFrame(bufferCache.getPageSize());
-            if (tmpBuffer == null) {
-                // Budget exhausted
-                break;
-            }
-            Arrays.fill(tmpBuffer.array(), (byte) 0);
-            buffers.add(tmpBuffer);
-        } while (buffers.size() < numPages);
-        // At least there should be one frame to load a page from disk.
-        if (buffers.isEmpty()) {
-            throw HyracksDataException.create(ErrorCode.NOT_ENOUGH_BUDGET_FOR_TEXTSEARCH,
-                    FixedSizeElementInvertedListCursor.class.getName());
-        }
-    }
-
-    /**
-     * Deallocates all buffers. i.e. releases all buffers to the buffer manager.
-     */
-    private void deallocateBuffers() throws HyracksDataException {
-        for (int i = 0; i < buffers.size(); i++) {
-            bufferManagerForSearch.releaseFrame(buffers.get(i));
-            buffers.set(i, null);
-        }
-        buffers.clear();
-    }
-
-    /**
-     * Clears the contents of the buffers.
-     */
-    private void clearBuffers() throws HyracksDataException {
-        for (int i = 0; i < buffers.size(); i++) {
-            Arrays.fill(buffers.get(i).array(), (byte) 0);
-            buffers.get(i).clear();
-        }
-    }
-
-    /**
-     * Checks whether there are more elements to return. This is usually used for a sequential scan.
-     */
-    @Override
-    public boolean doHasNext() {
-        return currentElementIxForScan < numElements;
-    }
-
-    /**
-     * Returns the next element.
-     */
-    @Override
-    public void doNext() throws HyracksDataException {
-        if (currentOffsetForScan + 2 * elementSize > bufferCache.getPageSize()) {
-            currentPageIxForScan++;
-            currentOffsetForScan = 0;
-        } else {
-            currentOffsetForScan += elementSize;
-        }
-
-        // Needs to read the next block?
-        if (currentElementIxForScan > bufferEndElementIx && endPageId > bufferEndPageId) {
-            loadPages();
-            currentOffsetForScan = 0;
-        }
-
-        currentElementIxForScan++;
-
-        tuple.reset(buffers.get(currentPageIxForScan).array(), currentOffsetForScan);
-    }
-
-    /**
-     * Prepares buffers to load pages. This method should not be called during the open()
-     * since it tries to allocate all available frames. If there are multiple concurrently opened
-     * cursors (e.g., a partitioned inverted index), this will cause an issue. An assumption of this cursor is
-     * that no two cursors are accessed at the same time even though they can be opened together.
-     */
-    @Override
-    public void prepareLoadPages() throws HyracksDataException {
-        // Resets the buffers if there is any.
-        clearBuffers();
-        if (numPages > buffers.size()) {
-            allocateBuffers();
-        }
-    }
-
-    /**
-     * Reads a part of the inverted list into the working memory via the buffer cache.
-     * This method reads the inverted list until it fills the current buffers.
-     */
-    @Override
-    public void loadPages() throws HyracksDataException {
-        // Conducts a load. Based on the size of the buffers, it may be possible to read the entire list.
-        // Resets the start page ID to load. At this moment, the variable bufferEndPageId holds
-        // the last page ID where the previous loadPages() stopped.
-        bufferStartPageId = bufferEndPageId + 1;
-        if (bufferStartPageId > endPageId) {
-            return;
-        }
-        int currentBufferIdx = 0;
-        ByteBuffer tmpBuffer;
-        for (int i = bufferStartPageId; i <= endPageId; i++) {
-            page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, i), false);
-            stats.getPageCounter().update(1);
-            // Copies the content to the buffer (working memory).
-            // Assumption: processing inverted list takes time; so, we don't want to keep them on the buffer cache.
-            // Rather, we utilize the assigned working memory (buffers).
-            tmpBuffer = page.getBuffer();
-
-            // Copies the entire content of the page to the current buffer in the working memory.
-            System.arraycopy(tmpBuffer.array(), 0, buffers.get(currentBufferIdx).array(), 0,
-                    buffers.get(currentBufferIdx).capacity());
-            buffers.get(currentBufferIdx).position(buffers.get(currentBufferIdx).capacity());
-
-            currentBufferIdx++;
-            bufferCache.unpin(page);
-            bufferEndPageId = i;
-
-            // Buffer full?
-            if (currentBufferIdx >= buffers.size()) {
-                break;
-            }
-        }
-        setBlockInfo();
-    }
-
-    /**
-     * Updates the information about this block.
-     */
-    private void setBlockInfo() {
-        bufferNumLoadedPages = bufferEndPageId - bufferStartPageId + 1;
-        bufferStartElementIx =
-                bufferStartPageId == startPageId ? 0 : elementIndexes[bufferStartPageId - startPageId - 1] + 1;
-        lastRandomSearchedElementIx = bufferStartElementIx;
-        bufferEndElementIx = elementIndexes[bufferEndPageId - startPageId];
-        // Gets the final element tuple in this block.
-        getElementAtIndex(bufferEndElementIx, bufferEndElementTuple);
-        currentPageIxForScan = 0;
-        currentOffsetForScan = bufferStartElementIx == 0 ? startOff - elementSize : -elementSize;
-        if (bufferEndPageId == endPageId) {
-            moreBlocksToRead = false;
-        }
-    }
-
-    /**
-     * Unloads the pages from the buffers (working memory). This will release all buffers.
-     */
-    @Override
-    public void unloadPages() throws HyracksDataException {
-        // Deallocates the buffer pages
-        deallocateBuffers();
-    }
-
-    /**
-     * Checks whether the search tuple is greater than the last element in the current block of the cursor.
-     * If so, the cursor needs to load next block of the inverted list.
-     *
-     * @param searchTuple
-     * @param invListCmp
-     * @return true if the search tuple is greater than the last element in the current block of the cursor
-     *         false if the search tuple is equal to or less than the last element in the current block of the cursor
-     * @throws HyracksDataException
-     */
-    private boolean needToReadNextBlock(ITupleReference searchTuple, MultiComparator invListCmp)
-            throws HyracksDataException {
-        if (moreBlocksToRead && invListCmp.compare(searchTuple, bufferEndElementTuple) > 0) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Gets the tuple for the given element index.
-     */
-    private void getElementAtIndex(int elementIx, FixedSizeTupleReference tuple) {
-        int currentPageIx =
-                binarySearch(elementIndexes, bufferStartPageId - startPageId, bufferNumLoadedPages, elementIx);
-        if (currentPageIx < 0) {
-            throw new IndexOutOfBoundsException(
-                    "Requested index: " + elementIx + " from array with numElements: " + numElements);
-        }
-
-        int currentOff;
-        if (currentPageIx == 0) {
-            currentOff = startOff + elementIx * elementSize;
-        } else {
-            int relativeElementIx = elementIx - elementIndexes[currentPageIx - 1] - 1;
-            currentOff = relativeElementIx * elementSize;
-        }
-        // Gets the actual index in the buffers since buffers.size() can be smaller than the total number of pages.
-        int bufferIdx = currentPageIx % buffers.size();
-        tuple.reset(buffers.get(bufferIdx).array(), currentOff);
-    }
-
-    /**
-     * Checks whether the given tuple exists on this inverted list. This method is used when doing a random traversal.
-     */
-    @Override
-    public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException {
-        // If the given element is greater than the last element in the current buffer, reads the next block.
-        if (needToReadNextBlock(searchTuple, invListCmp)) {
-            loadPages();
-        }
-        int mid = -1;
-        int begin = lastRandomSearchedElementIx;
-        int end = bufferEndElementIx;
-
-        while (begin <= end) {
-            mid = (begin + end) / 2;
-            getElementAtIndex(mid, tuple);
-            int cmp = invListCmp.compare(searchTuple, tuple);
-            if (cmp < 0) {
-                end = mid - 1;
-            } else if (cmp > 0) {
-                begin = mid + 1;
-            } else {
-                lastRandomSearchedElementIx = mid;
-                return true;
-            }
-        }
-
-        lastRandomSearchedElementIx = mid;
-        return false;
-    }
-
-    /**
-     * Opens the cursor for the given inverted list. After this open() call, prepreLoadPages() should be called
-     * before loadPages() are called. For more details, check prepapreLoadPages().
-     */
-    @Override
-    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
-            throws HyracksDataException {
-        this.startPageId = startPageId;
-        this.endPageId = endPageId;
-        this.startOff = startOff;
-        this.numElements = numElements;
-        this.currentElementIxForScan = 0;
-        this.currentPageIxForScan = 0;
-        this.currentOffsetForScan = startOff - elementSize;
-        this.bufferStartPageId = startPageId;
-        // Deducts 1 since the startPage would be set to bufferEndPageId + 1 in loadPages().
-        this.bufferEndPageId = startPageId - 1;
-        this.moreBlocksToRead = true;
-        this.numPages = endPageId - startPageId + 1;
-
-        if (numPages > elementIndexes.length) {
-            elementIndexes = new int[numPages];
-        }
-
-        for (ByteBuffer buffer : buffers) {
-            buffer.clear();
-        }
-
-        // Fills the last element index per page.
-        // first page
-        int cumulElements = (bufferCache.getPageSize() - startOff) / elementSize;
-        // Deducts 1 because this is the index, not the number of elements.
-        elementIndexes[0] = cumulElements - 1;
-
-        // middle, full pages
-        for (int i = 1; i < numPages - 1; i++) {
-            elementIndexes[i] = elementIndexes[i - 1] + (bufferCache.getPageSize() / elementSize);
-        }
-
-        // last page
-        // Deducts 1 because this is the index, not the number of elements.
-        elementIndexes[numPages - 1] = numElements - 1;
-    }
-
-    /**
-     * Prints the contents of the current inverted list (a debugging method).
-     */
-    @SuppressWarnings("rawtypes")
-    @Override
-    public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException {
-        int oldCurrentOff = currentOffsetForScan;
-        int oldCurrentPageId = currentPageIxForScan;
-        int oldCurrentElementIx = currentElementIxForScan;
-
-        currentOffsetForScan = startOff - elementSize;
-        currentPageIxForScan = 0;
-        currentElementIxForScan = 0;
-
-        StringBuilder strBuilder = new StringBuilder();
-
-        while (hasNext()) {
-            next();
-            for (int i = 0; i < tuple.getFieldCount(); i++) {
-                ByteArrayInputStream inStream = new ByteArrayInputStream(tuple.getFieldData(i), tuple.getFieldStart(i),
-                        tuple.getFieldLength(i));
-                DataInput dataIn = new DataInputStream(inStream);
-                Object o = serdes[i].deserialize(dataIn);
-                strBuilder.append(o.toString());
-                if (i + 1 < tuple.getFieldCount()) {
-                    strBuilder.append(",");
-                }
-            }
-            strBuilder.append(" ");
-        }
-
-        // reset previous state
-        currentOffsetForScan = oldCurrentOff;
-        currentPageIxForScan = oldCurrentPageId;
-        currentElementIxForScan = oldCurrentElementIx;
-
-        return strBuilder.toString();
-    }
-
-    /**
-     * Prints the current element (a debugging method).
-     */
-    @Override
-    @SuppressWarnings("rawtypes")
-    public String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException {
-        StringBuilder strBuilder = new StringBuilder();
-        for (int i = 0; i < tuple.getFieldCount(); i++) {
-            ByteArrayInputStream inStream =
-                    new ByteArrayInputStream(tuple.getFieldData(i), tuple.getFieldStart(i), tuple.getFieldLength(i));
-            DataInput dataIn = new DataInputStream(inStream);
-            Object o = serdes[i].deserialize(dataIn);
-            strBuilder.append(o.toString());
-            if (i + 1 < tuple.getFieldCount()) {
-                strBuilder.append(",");
-            }
-        }
-        return strBuilder.toString();
-    }
-
-    /**
-     * Conducts a binary search to get the index of the given key.
-     */
-    private int binarySearch(int[] arr, int arrStart, int arrLength, int key) {
-        int mid;
-        int begin = arrStart;
-        int end = arrStart + arrLength - 1;
-
-        while (begin <= end) {
-            mid = (begin + end) / 2;
-            int cmp = (key - arr[mid]);
-            if (cmp < 0) {
-                end = mid - 1;
-            } else if (cmp > 0) {
-                begin = mid + 1;
-            } else {
-                return mid;
-            }
-        }
-
-        if (begin > arr.length - 1) {
-            return -1;
-        }
-        if (key < arr[begin]) {
-            return begin;
-        } else {
-            return -1;
-        }
-    }
-
-    /**
-     * A compare function that is used to sort inverted list cursors
-     */
-    @Override
-    public int compareTo(InvertedListCursor invListCursor) {
-        try {
-            return numElements - invListCursor.size();
-        } catch (HyracksDataException hde) {
-            throw new IllegalStateException(hde);
-        }
-    }
-
-    /**
-     * Gets the cardinality of the current inverted list.
-     */
-    @Override
-    public int size() {
-        return numElements;
-    }
-
-    /**
-     * Gets the current tuple.
-     */
-    @Override
-    public ITupleReference doGetTuple() {
-        return tuple;
-    }
-
-    /**
-     * Closes the cursor.
-     */
-    @Override
-    public void doClose() throws HyracksDataException {
-        if (!buffers.isEmpty()) {
-            unloadPages();
-        }
-    }
-
-    /**
-     * Destroys the cursor.
-     */
-    @Override
-    public void doDestroy() throws HyracksDataException {
-        if (!buffers.isEmpty()) {
-            unloadPages();
-        }
-    }
-
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListScanCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListScanCursor.java
deleted file mode 100644
index 583fb90..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeElementInvertedListScanCursor.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
-import org.apache.hyracks.storage.common.IIndexCursorStats;
-import org.apache.hyracks.storage.common.MultiComparator;
-import org.apache.hyracks.storage.common.buffercache.IBufferCache;
-import org.apache.hyracks.storage.common.buffercache.ICachedPage;
-import org.apache.hyracks.storage.common.file.BufferedFileHandle;
-
-/**
- * A simple scan cursor that only reads a frame by frame from the inverted list on disk. This cursor does not
- * conduct a binary search. It only supports the scan operation. The main purpose of this cursor is
- * doing a full-scan of an inverted list during a storage-component-merge process.
- */
-public class FixedSizeElementInvertedListScanCursor extends InvertedListCursor {
-
-    protected final IBufferCache bufferCache;
-    protected final int fileId;
-    protected final int elementSize;
-    protected int currentElementIxForScan;
-    protected int currentOffsetForScan;
-    protected int currentPageId;
-
-    protected int startPageId;
-    protected int endPageId;
-    protected int startOff;
-    protected int numElements;
-    protected int numPages;
-
-    protected final FixedSizeTupleReference tuple;
-    protected ICachedPage page;
-
-    protected boolean pinned;
-    protected int pinnedPageId = -1;
-    protected final IIndexCursorStats stats;
-
-    public FixedSizeElementInvertedListScanCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
-            IIndexCursorStats stats) throws HyracksDataException {
-        this.bufferCache = bufferCache;
-        this.fileId = fileId;
-        int tmpSize = 0;
-        for (int i = 0; i < invListFields.length; i++) {
-            tmpSize += invListFields[i].getFixedLength();
-        }
-        elementSize = tmpSize;
-        this.currentElementIxForScan = 0;
-        this.currentOffsetForScan = -elementSize;
-        this.currentPageId = 0;
-        this.startPageId = 0;
-        this.endPageId = 0;
-        this.startOff = 0;
-        this.numElements = 0;
-        this.numPages = 0;
-        this.tuple = new FixedSizeTupleReference(invListFields);
-        this.pinned = false;
-        this.stats = stats;
-    }
-
-    @Override
-    public boolean doHasNext() {
-        return currentElementIxForScan < numElements;
-    }
-
-    @Override
-    public void doNext() throws HyracksDataException {
-        if (currentOffsetForScan + 2 * elementSize > bufferCache.getPageSize()) {
-            // Read the next page.
-            currentOffsetForScan = 0;
-            loadPages();
-        } else {
-            currentOffsetForScan += elementSize;
-        }
-        currentElementIxForScan++;
-        tuple.reset(page.getBuffer().array(), currentOffsetForScan);
-    }
-
-    @Override
-    public void prepareLoadPages() throws HyracksDataException {
-        // No-op for this cursor since it only loads one page to the buffer cache at a time.
-    }
-
-    /**
-     * Loads one page from the inverted list into the buffer cache.
-     */
-    @Override
-    public void loadPages() throws HyracksDataException {
-        if (currentPageId == endPageId) {
-            // inverted list exhausted, return
-            return;
-        }
-        currentPageId++;
-        if (pinned && pinnedPageId == currentPageId) {
-            // already pinned, return
-            return;
-        }
-        unloadPages();
-        page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, currentPageId), false);
-        pinnedPageId = currentPageId;
-        pinned = true;
-        stats.getPageCounter().update(1);
-
-    }
-
-    @Override
-    public void unloadPages() throws HyracksDataException {
-        if (pinned) {
-            bufferCache.unpin(page);
-            pinned = false;
-        }
-    }
-
-    @Override
-    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
-            throws HyracksDataException {
-        this.startPageId = startPageId;
-        this.endPageId = endPageId;
-        this.startOff = startOff;
-        this.numElements = numElements;
-        this.currentElementIxForScan = 0;
-        this.currentOffsetForScan = startOff - elementSize;
-        // Deducts 1 since the startPage would be set to bufferCurrentPageId + 1 in loadPages().
-        this.currentPageId = startPageId - 1;
-        this.numPages = endPageId - startPageId + 1;
-    }
-
-    @Override
-    public int compareTo(InvertedListCursor invListCursor) {
-        try {
-            return numElements - invListCursor.size();
-        } catch (HyracksDataException hde) {
-            throw new IllegalStateException(hde);
-        }
-    }
-
-    @Override
-    public int size() {
-        return numElements;
-    }
-
-    @Override
-    public ITupleReference doGetTuple() {
-        return tuple;
-    }
-
-    @Override
-    public void doClose() throws HyracksDataException {
-        // No op
-        // We allow the inverted list cursor to hold at most one page to avoid
-        // unnecessary pins
-    }
-
-    @Override
-    public void doDestroy() throws HyracksDataException {
-        unloadPages();
-    }
-
-    @Override
-    public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException {
-        // This method is designed for a random search.
-        return false;
-    }
-
-    @Override
-    public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException {
-        return null;
-    }
-
-    @Override
-    public String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException {
-        return null;
-    }
-
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAccessor.java
deleted file mode 100644
index 23854f9..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAccessor.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import java.nio.ByteBuffer;
-
-import org.apache.hyracks.api.comm.FrameHelper;
-import org.apache.hyracks.api.comm.IFrameTupleAccessor;
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-
-/**
- * This is a fixed-size tuple accessor class.
- * The frame structure: [4 bytes for minimum Hyracks frame count] [fixed-size tuple 1] ... [fixed-size tuple n] ...
- * [4 bytes for the tuple count in a frame]
- */
-public class FixedSizeFrameTupleAccessor implements IFrameTupleAccessor {
-
-    private final int frameSize;
-    private ByteBuffer buffer;
-
-    private final ITypeTraits[] fields;
-    private final int[] fieldStartOffsets;
-    private final int tupleSize;
-
-    public FixedSizeFrameTupleAccessor(int frameSize, ITypeTraits[] fields) {
-        this.frameSize = frameSize;
-        this.fields = fields;
-        this.fieldStartOffsets = new int[fields.length];
-        this.fieldStartOffsets[0] = 0;
-        for (int i = 1; i < fields.length; i++) {
-            fieldStartOffsets[i] = fieldStartOffsets[i - 1] + fields[i - 1].getFixedLength();
-        }
-
-        int tmp = 0;
-        for (int i = 0; i < fields.length; i++) {
-            tmp += fields[i].getFixedLength();
-        }
-        tupleSize = tmp;
-    }
-
-    @Override
-    public ByteBuffer getBuffer() {
-        return buffer;
-    }
-
-    @Override
-    public int getFieldCount() {
-        return fields.length;
-    }
-
-    @Override
-    public int getFieldEndOffset(int tupleIndex, int fIdx) {
-        return getTupleStartOffset(tupleIndex) + fieldStartOffsets[fIdx] + fields[fIdx].getFixedLength();
-    }
-
-    @Override
-    public int getFieldLength(int tupleIndex, int fIdx) {
-        return fields[fIdx].getFixedLength();
-    }
-
-    @Override
-    public int getTupleLength(int tupleIndex) {
-        return getTupleEndOffset(tupleIndex) - getTupleStartOffset(tupleIndex);
-    }
-
-    @Override
-    public int getFieldSlotsLength() {
-        return 0;
-    }
-
-    @Override
-    public int getFieldStartOffset(int tupleIndex, int fIdx) {
-        return getTupleStartOffset(tupleIndex) + fieldStartOffsets[fIdx];
-    }
-
-    @Override
-    public int getTupleCount() {
-        return buffer != null ? buffer.getInt(FrameHelper.getTupleCountOffset(frameSize)) : 0;
-    }
-
-    @Override
-    public int getTupleEndOffset(int tupleIndex) {
-        return getFieldEndOffset(tupleIndex, fields.length - 1);
-    }
-
-    @Override
-    public int getTupleStartOffset(int tupleIndex) {
-        return FixedSizeFrameTupleAppender.MINFRAME_COUNT_SIZE + tupleIndex * tupleSize;
-    }
-
-    @Override
-    public int getAbsoluteFieldStartOffset(int tupleIndex, int fIdx) {
-        return getTupleStartOffset(tupleIndex) + getFieldSlotsLength() + getFieldStartOffset(tupleIndex, fIdx);
-    }
-
-    @Override
-    public void reset(ByteBuffer buffer) {
-        this.buffer = buffer;
-    }
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAppender.java
deleted file mode 100644
index 85d8576..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleAppender.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-
-import org.apache.hyracks.api.comm.FrameHelper;
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-
-/**
- * An appender class for an inverted list. Each frame has two integer values at the beginning and at the end.
- * The first represents the number of minimum Hyracks frames in a frame. Currently, we use 1 for this value.
- * The latter represents the number of tuples in a frame. This design is required since we may need to use
- * RunFileWriter and RunFileReader class during the inverted-index-search operation.
- */
-public class FixedSizeFrameTupleAppender {
-
-    // At the end of a frame, an integer value is written to keep the tuple count in this frame.
-    public static final int TUPLE_COUNT_SIZE = 4;
-    // At the beginning of a frame, an integer value is written to keep the number of minimum frames in this frame.
-    // For this class, the frame size is equal to the minimum frame size in Hyracks.
-    public static final int MINFRAME_COUNT_SIZE = 4;
-
-    private final int frameSize;
-    private final int tupleSize;
-    private ByteBuffer buffer;
-    private int tupleCount;
-    private int tupleDataEndOffset;
-
-    public FixedSizeFrameTupleAppender(int frameSize, ITypeTraits[] fields) {
-        this.frameSize = frameSize;
-        int tmp = 0;
-        for (int i = 0; i < fields.length; i++) {
-            tmp += fields[i].getFixedLength();
-        }
-        tupleSize = tmp;
-    }
-
-    public void reset(ByteBuffer buffer) {
-        reset(buffer, true, 0, MINFRAME_COUNT_SIZE);
-    }
-
-    public void reset(ByteBuffer buffer, boolean clear, int tupleCount, int tupleDataEndOffset) {
-        this.buffer = buffer;
-        if (clear) {
-            Arrays.fill(this.buffer.array(), (byte) 0);
-            this.buffer.clear();
-            // the number of minimum frames in a frame - it's one.
-            FrameHelper.serializeFrameSize(this.buffer, 1);
-        }
-        // tuple count
-        this.buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
-        this.tupleCount = tupleCount;
-        this.tupleDataEndOffset = tupleDataEndOffset;
-    }
-
-    public boolean append(byte[] bytes, int offset) {
-        if (tupleDataEndOffset + tupleSize + TUPLE_COUNT_SIZE <= frameSize) {
-            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset, tupleSize);
-            tupleDataEndOffset += tupleSize;
-            tupleCount++;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean append(byte[] bytes, int offset, int length) {
-        if (tupleDataEndOffset + length + TUPLE_COUNT_SIZE <= frameSize) {
-            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset, length);
-            tupleDataEndOffset += length;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean append(int fieldValue) {
-        if (tupleDataEndOffset + 4 + TUPLE_COUNT_SIZE <= frameSize) {
-            buffer.putInt(tupleDataEndOffset, fieldValue);
-            tupleDataEndOffset += 4;
-            tupleCount++;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean append(long fieldValue) {
-        if (tupleDataEndOffset + 8 + TUPLE_COUNT_SIZE <= frameSize) {
-            buffer.putLong(tupleDataEndOffset, fieldValue);
-            tupleDataEndOffset += 8;
-            tupleCount++;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean append(char fieldValue) {
-        if (tupleDataEndOffset + 2 + TUPLE_COUNT_SIZE <= frameSize) {
-            buffer.putLong(tupleDataEndOffset, fieldValue);
-            tupleDataEndOffset += 2;
-            tupleCount++;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean append(byte fieldValue) {
-        if (tupleDataEndOffset + 1 + TUPLE_COUNT_SIZE <= frameSize) {
-            buffer.put(tupleDataEndOffset, fieldValue);
-            tupleDataEndOffset += 1;
-            tupleCount++;
-            return true;
-        }
-        return false;
-    }
-
-    // returns true if an entire tuple fits
-    // returns false otherwise
-    public boolean hasSpace() {
-        return tupleDataEndOffset + tupleSize + TUPLE_COUNT_SIZE <= frameSize;
-    }
-
-    public void incrementTupleCount(int count) {
-        buffer.putInt(FrameHelper.getTupleCountOffset(frameSize),
-                buffer.getInt(FrameHelper.getTupleCountOffset(frameSize)) + count);
-    }
-
-    public int getTupleCount() {
-        return tupleCount;
-    }
-
-    public ByteBuffer getBuffer() {
-        return buffer;
-    }
-
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeTupleReference.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeTupleReference.java
deleted file mode 100644
index 5908b5c..0000000
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeTupleReference.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-
-public class FixedSizeTupleReference implements ITupleReference {
-
-    private final ITypeTraits[] typeTraits;
-    private final int[] fieldStartOffsets;
-    private byte[] data;
-    private int startOff;
-
-    public FixedSizeTupleReference(ITypeTraits[] typeTraits) {
-        this.typeTraits = typeTraits;
-        this.fieldStartOffsets = new int[typeTraits.length];
-        this.fieldStartOffsets[0] = 0;
-        for (int i = 1; i < typeTraits.length; i++) {
-            fieldStartOffsets[i] = fieldStartOffsets[i - 1] + typeTraits[i - 1].getFixedLength();
-        }
-    }
-
-    public void reset(byte[] data, int startOff) {
-        this.data = data;
-        this.startOff = startOff;
-    }
-
-    @Override
-    public int getFieldCount() {
-        return typeTraits.length;
-    }
-
-    @Override
-    public byte[] getFieldData(int fIdx) {
-        return data;
-    }
-
-    @Override
-    public int getFieldLength(int fIdx) {
-        return typeTraits[fIdx].getFixedLength();
-    }
-
-    @Override
-    public int getFieldStart(int fIdx) {
-        return startOff + fieldStartOffsets[fIdx];
-    }
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListBuilderFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListBuilderFactory.java
new file mode 100644
index 0000000..0d00ed3
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListBuilderFactory.java
@@ -0,0 +1,50 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilderFactory;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeElementInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize.VariableSizeElementInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+public class InvertedListBuilderFactory implements IInvertedListBuilderFactory {
+
+    protected final ITypeTraits[] invListFields;
+    protected final ITypeTraits[] tokenTypeTraits;
+    private final boolean isFixedSize;
+
+    public InvertedListBuilderFactory(ITypeTraits[] tokenTypeTraits, ITypeTraits[] invListFields) {
+        this.tokenTypeTraits = tokenTypeTraits;
+        this.invListFields = invListFields;
+
+        isFixedSize = InvertedIndexUtils.checkTypeTraitsAllFixed(invListFields);
+    }
+
+    @Override
+    public IInvertedListBuilder create() throws HyracksDataException {
+        if (isFixedSize) {
+            return new FixedSizeElementInvertedListBuilder(invListFields);
+        } else {
+            return new VariableSizeElementInvertedListBuilder(tokenTypeTraits, invListFields);
+        }
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListSearchResultFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListSearchResultFrameTupleAppender.java
new file mode 100644
index 0000000..26c3f9c
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListSearchResultFrameTupleAppender.java
@@ -0,0 +1,142 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import org.apache.hyracks.api.comm.FrameHelper;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListSearchResultFrameTupleAppender;
+
+/**
+ * This class is mainly to write the intermediate results in the inverted-index **search** operation.
+ * For the inverted list building phrase, please refer to IInvertedListBuilder.
+ *
+ * An appender class for an inverted list. Each frame has two integer values at the beginning and at the end.
+ * The first represents the number of minimum Hyracks frames in a frame. Currently, we use 1 for this value.
+ * The latter represents the number of tuples in a frame. This design is required since we may need to use
+ * RunFileWriter and RunFileReader class during the inverted-index-search operation.
+ *
+ * Note that this appender is not aware of the tuple element type, and the length of the tuple is given by the caller
+ * at run time.
+ */
+public class InvertedListSearchResultFrameTupleAppender implements IInvertedListSearchResultFrameTupleAppender {
+
+    // At the end of a frame, an integer value is written to keep the tuple count in this frame.
+    public static final int TUPLE_COUNT_SIZE = 4;
+    // At the beginning of a frame, an integer value is written to keep the number of minimum frames in this frame.
+    // For this class, the frame size is equal to the minimum frame size in Hyracks.
+    public static final int MINFRAME_COUNT_SIZE = 4;
+
+    private final int frameSize;
+    private ByteBuffer buffer;
+    private int tupleCount;
+    private int tupleDataEndOffset;
+
+    public InvertedListSearchResultFrameTupleAppender(int frameSize) {
+        this.frameSize = frameSize;
+    }
+
+    public void reset(ByteBuffer buffer) {
+        reset(buffer, true, 0, MINFRAME_COUNT_SIZE);
+    }
+
+    public void reset(ByteBuffer buffer, boolean clear, int tupleCount, int tupleDataEndOffset) {
+        this.buffer = buffer;
+        if (clear) {
+            Arrays.fill(this.buffer.array(), (byte) 0);
+            this.buffer.clear();
+            // the number of minimum frames in a frame - it's one.
+            FrameHelper.serializeFrameSize(this.buffer, 1);
+        }
+        // tuple count
+        this.buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
+        this.tupleCount = tupleCount;
+        this.tupleDataEndOffset = tupleDataEndOffset;
+    }
+
+    public boolean append(byte[] bytes, int offset, int length) {
+        if (tupleDataEndOffset + length + TUPLE_COUNT_SIZE <= frameSize) {
+            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset, length);
+            tupleDataEndOffset += length;
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(int fieldValue) {
+        if (tupleDataEndOffset + 4 + TUPLE_COUNT_SIZE <= frameSize) {
+            buffer.putInt(tupleDataEndOffset, fieldValue);
+            tupleDataEndOffset += 4;
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(long fieldValue) {
+        if (tupleDataEndOffset + 8 + TUPLE_COUNT_SIZE <= frameSize) {
+            buffer.putLong(tupleDataEndOffset, fieldValue);
+            tupleDataEndOffset += 8;
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(char fieldValue) {
+        if (tupleDataEndOffset + 2 + TUPLE_COUNT_SIZE <= frameSize) {
+            buffer.putLong(tupleDataEndOffset, fieldValue);
+            tupleDataEndOffset += 2;
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(byte fieldValue) {
+        if (tupleDataEndOffset + 1 + TUPLE_COUNT_SIZE <= frameSize) {
+            buffer.put(tupleDataEndOffset, fieldValue);
+            tupleDataEndOffset += 1;
+            return true;
+        }
+        return false;
+    }
+
+    public boolean hasSpace(int length) {
+        return tupleDataEndOffset + length + TUPLE_COUNT_SIZE <= frameSize;
+    }
+
+    public void incrementTupleCount(int count) {
+        int tupleCountOffset = FrameHelper.getTupleCountOffset(frameSize);
+        int currentCount = buffer.getInt(tupleCountOffset);
+        int newCount = currentCount + count;
+        buffer.putInt(tupleCountOffset, newCount);
+
+        tupleCount += count;
+        assert tupleCount == newCount;
+    }
+
+    public int getTupleCount() {
+        return tupleCount;
+    }
+
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java
index ec1f143..0f26435 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndex.java
@@ -47,11 +47,15 @@
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexAccessor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearcher;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexSearchCursorInitialState;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeElementInvertedListScanCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeElementOnDiskInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize.VariableSizeElementOnDiskInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedIndexSearchPredicate;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.TOccurrenceSearcher;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tuples.TokenKeyPairTuple;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
 import org.apache.hyracks.storage.common.IIndexAccessParameters;
 import org.apache.hyracks.storage.common.IIndexAccessor;
 import org.apache.hyracks.storage.common.IIndexBulkLoader;
@@ -189,18 +193,28 @@
     }
 
     @Override
-    public InvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) throws HyracksDataException {
-        return new FixedSizeElementInvertedListCursor(bufferCache, fileId, invListTypeTraits, ctx,
-                NoOpIndexCursorStats.INSTANCE);
+    public IInvertedListCursor createInvertedListCursor(IHyracksTaskContext ctx) throws HyracksDataException {
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(invListTypeTraits)) {
+            return new FixedSizeElementOnDiskInvertedListCursor(bufferCache, fileId, invListTypeTraits, ctx,
+                    NoOpIndexCursorStats.INSTANCE);
+        } else {
+            return new VariableSizeElementOnDiskInvertedListCursor(bufferCache, fileId, invListTypeTraits, ctx,
+                    NoOpIndexCursorStats.INSTANCE);
+        }
     }
 
     @Override
-    public InvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats) throws HyracksDataException {
-        return new FixedSizeElementInvertedListScanCursor(bufferCache, fileId, invListTypeTraits, stats);
+    public IInvertedListCursor createInvertedListRangeSearchCursor(IIndexCursorStats stats)
+            throws HyracksDataException {
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(invListTypeTraits)) {
+            return new FixedSizeElementInvertedListScanCursor(bufferCache, fileId, invListTypeTraits, stats);
+        } else {
+            return new VariableSizeElementOnDiskInvertedListCursor(bufferCache, fileId, invListTypeTraits, stats);
+        }
     }
 
     @Override
-    public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey,
+    public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey,
             IIndexOperationContext ictx) throws HyracksDataException {
         OnDiskInvertedIndexOpContext ctx = (OnDiskInvertedIndexOpContext) ictx;
         ctx.getBtreePred().setLowKeyComparator(ctx.getSearchCmp());
@@ -222,7 +236,7 @@
         }
     }
 
-    public void openInvertedListCursor(ITupleReference btreeTuple, InvertedListCursor listCursor,
+    public void openInvertedListCursor(ITupleReference btreeTuple, IInvertedListCursor listCursor,
             OnDiskInvertedIndexOpContext opCtx) throws HyracksDataException {
         int startPageId = IntegerPointable.getInteger(btreeTuple.getFieldData(invListStartPageIdField),
                 btreeTuple.getFieldStart(invListStartPageIdField));
@@ -512,12 +526,12 @@
         }
 
         @Override
-        public InvertedListCursor createInvertedListCursor() throws HyracksDataException {
+        public IInvertedListCursor createInvertedListCursor() throws HyracksDataException {
             return index.createInvertedListCursor(ctx);
         }
 
         @Override
-        public void openInvertedListCursor(InvertedListCursor listCursor, ITupleReference searchKey)
+        public void openInvertedListCursor(IInvertedListCursor listCursor, ITupleReference searchKey)
                 throws HyracksDataException {
             index.openInvertedListCursor(listCursor, searchKey, opCtx);
         }
@@ -618,7 +632,7 @@
         ArrayTupleReference prevTuple = new ArrayTupleReference();
         IInvertedIndexAccessor invIndexAccessor = createAccessor(NoOpIndexAccessParameters.INSTANCE);
         try {
-            InvertedListCursor invListCursor = createInvertedListRangeSearchCursor(NoOpIndexCursorStats.INSTANCE);
+            IInvertedListCursor invListCursor = createInvertedListRangeSearchCursor(NoOpIndexCursorStats.INSTANCE);
             MultiComparator invListCmp = MultiComparator.create(invListCmpFactories);
             while (btreeCursor.hasNext()) {
                 btreeCursor.next();
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexRangeSearchCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexRangeSearchCursor.java
index 8ec9876..1d90180 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexRangeSearchCursor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexRangeSearchCursor.java
@@ -25,7 +25,7 @@
 import org.apache.hyracks.storage.am.btree.impls.RangePredicate;
 import org.apache.hyracks.storage.am.common.api.IIndexOperationContext;
 import org.apache.hyracks.storage.am.common.impls.IndexAccessParameters;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tuples.TokenKeyPairTuple;
 import org.apache.hyracks.storage.common.EnforcedIndexCursor;
 import org.apache.hyracks.storage.common.ICursorInitialState;
@@ -44,7 +44,7 @@
     private final IIndexAccessor btreeAccessor;
     private final OnDiskInvertedIndex invIndex;
     private final IIndexOperationContext opCtx;
-    private final InvertedListCursor invListRangeSearchCursor;
+    private final IInvertedListCursor invListRangeSearchCursor;
     private boolean isInvListCursorOpen;
 
     private final IIndexCursor btreeCursor;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/PartitionedOnDiskInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/PartitionedOnDiskInvertedIndex.java
index 1521887..fa5c365 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/PartitionedOnDiskInvertedIndex.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/PartitionedOnDiskInvertedIndex.java
@@ -29,8 +29,8 @@
 import org.apache.hyracks.storage.am.common.api.IPageManagerFactory;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearcher;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IPartitionedInvertedIndex;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedIndexSearchPredicate;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.InvertedListPartitions;
 import org.apache.hyracks.storage.am.lsm.invertedindex.search.PartitionedTOccurrenceSearcher;
@@ -113,7 +113,7 @@
                 ITupleReference btreeTuple = ctx.getBtreeCursor().getTuple();
                 short numTokens = ShortPointable.getShort(btreeTuple.getFieldData(PARTITIONING_NUM_TOKENS_FIELD),
                         btreeTuple.getFieldStart(PARTITIONING_NUM_TOKENS_FIELD));
-                InvertedListCursor invListCursor = partSearcher.getCachedInvertedListCursor();
+                IInvertedListCursor invListCursor = partSearcher.getCachedInvertedListCursor();
                 openInvertedListCursor(btreeTuple, invListCursor, ctx);
                 invListPartitions.addInvertedListCursor(invListCursor, numTokens);
                 tokenExists = true;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListBuilder.java
new file mode 100644
index 0000000..de6b4c9
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListBuilder.java
@@ -0,0 +1,74 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+public class FixedSizeElementInvertedListBuilder extends AbstractInvertedListBuilder {
+    private final int listElementSize;
+
+    public FixedSizeElementInvertedListBuilder(ITypeTraits[] invListFields) throws HyracksDataException {
+        super(invListFields);
+        InvertedIndexUtils.verifyAllFixedSizeTypeTrait(invListFields);
+
+        int tmp = 0;
+        for (int i = 0; i < invListFields.length; i++) {
+            tmp += invListFields[i].getFixedLength();
+        }
+        listElementSize = tmp;
+    }
+
+    @Override
+    public boolean startNewList(ITupleReference tuple, int numTokenFields) {
+        if (pos + listElementSize > targetBuf.length) {
+            return false;
+        } else {
+            listSize = 0;
+            return true;
+        }
+    }
+
+    @Override
+    public boolean appendElement(ITupleReference tuple, int numTokenFields, int numElementFields) {
+        if (pos + listElementSize > targetBuf.length) {
+            return false;
+        }
+
+        for (int i = 0; i < numElementFields; i++) {
+            int field = numTokenFields + i;
+            System.arraycopy(tuple.getFieldData(field), tuple.getFieldStart(field), targetBuf, pos,
+                    tuple.getFieldLength(field));
+        }
+
+        listSize++;
+        pos += listElementSize;
+
+        return true;
+    }
+
+    @Override
+    public boolean isFixedSize() {
+        return true;
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListScanCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListScanCursor.java
new file mode 100644
index 0000000..c084e45
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementInvertedListScanCursor.java
@@ -0,0 +1,198 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize;
+
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.impls.AbstractInvertedListCursor;
+import org.apache.hyracks.storage.common.IIndexCursorStats;
+import org.apache.hyracks.storage.common.MultiComparator;
+import org.apache.hyracks.storage.common.buffercache.IBufferCache;
+import org.apache.hyracks.storage.common.buffercache.ICachedPage;
+import org.apache.hyracks.storage.common.file.BufferedFileHandle;
+
+/**
+ * A simple scan cursor that only reads a frame by frame from the inverted list on disk. This cursor does not
+ * conduct a binary search. It only supports the scan operation. The main purpose of this cursor is
+ * doing a full-scan of an inverted list during a storage-component-merge process.
+ */
+public class FixedSizeElementInvertedListScanCursor extends AbstractInvertedListCursor {
+
+    protected final IBufferCache bufferCache;
+    protected final int fileId;
+    protected final int elementSize;
+    protected int currentElementIxForScan;
+    protected int currentOffsetForScan;
+    protected int currentPageId;
+
+    protected int startPageId;
+    protected int endPageId;
+    protected int startOff;
+    protected int numElements;
+    protected int numPages;
+
+    protected final IInvertedListTupleReference tuple;
+    protected ICachedPage page;
+
+    protected boolean pinned;
+    protected int pinnedPageId = -1;
+    protected final IIndexCursorStats stats;
+
+    public FixedSizeElementInvertedListScanCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
+            IIndexCursorStats stats) throws HyracksDataException {
+        this.bufferCache = bufferCache;
+        this.fileId = fileId;
+        int tmpSize = 0;
+        for (int i = 0; i < invListFields.length; i++) {
+            tmpSize += invListFields[i].getFixedLength();
+        }
+        elementSize = tmpSize;
+        this.currentElementIxForScan = 0;
+        this.currentOffsetForScan = -elementSize;
+        this.currentPageId = 0;
+        this.startPageId = 0;
+        this.endPageId = 0;
+        this.startOff = 0;
+        this.numElements = 0;
+        this.numPages = 0;
+        this.tuple = new FixedSizeInvertedListTupleReference(invListFields);
+        this.pinned = false;
+        this.stats = stats;
+    }
+
+    @Override
+    public boolean doHasNext() {
+        return currentElementIxForScan < numElements;
+    }
+
+    @Override
+    public void doNext() throws HyracksDataException {
+        if (currentOffsetForScan + 2 * elementSize > bufferCache.getPageSize()) {
+            // Read the next page.
+            currentOffsetForScan = 0;
+            loadPages();
+        } else {
+            currentOffsetForScan += elementSize;
+        }
+        currentElementIxForScan++;
+        tuple.reset(page.getBuffer().array(), currentOffsetForScan);
+    }
+
+    @Override
+    public void prepareLoadPages() throws HyracksDataException {
+        // No-op for this cursor since it only loads one page to the buffer cache at a time.
+    }
+
+    /**
+     * Loads one page from the inverted list into the buffer cache.
+     */
+    @Override
+    public void loadPages() throws HyracksDataException {
+        if (currentPageId == endPageId) {
+            // inverted list exhausted, return
+            return;
+        }
+        currentPageId++;
+        if (pinned && pinnedPageId == currentPageId) {
+            // already pinned, return
+            return;
+        }
+        unloadPages();
+        page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, currentPageId), false);
+        pinnedPageId = currentPageId;
+        pinned = true;
+        stats.getPageCounter().update(1);
+
+    }
+
+    @Override
+    public void unloadPages() throws HyracksDataException {
+        if (pinned) {
+            bufferCache.unpin(page);
+            pinned = false;
+        }
+    }
+
+    @Override
+    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
+            throws HyracksDataException {
+        this.startPageId = startPageId;
+        this.endPageId = endPageId;
+        this.startOff = startOff;
+        this.numElements = numElements;
+        this.currentElementIxForScan = 0;
+        this.currentOffsetForScan = startOff - elementSize;
+        // Deducts 1 since the startPage would be set to bufferCurrentPageId + 1 in loadPages().
+        this.currentPageId = startPageId - 1;
+        this.numPages = endPageId - startPageId + 1;
+    }
+
+    @Override
+    public int compareTo(IInvertedListCursor invListCursor) {
+        try {
+            return numElements - invListCursor.size();
+        } catch (HyracksDataException hde) {
+            throw new IllegalStateException(hde);
+        }
+    }
+
+    @Override
+    public int size() {
+        return numElements;
+    }
+
+    @Override
+    public ITupleReference doGetTuple() {
+        return tuple;
+    }
+
+    @Override
+    public void doClose() throws HyracksDataException {
+        // No op
+        // We allow the inverted list cursor to hold at most one page to avoid
+        // unnecessary pins
+    }
+
+    @Override
+    public void doDestroy() throws HyracksDataException {
+        unloadPages();
+    }
+
+    @Override
+    public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException {
+        // This method is designed for a random search.
+        return false;
+    }
+
+    @Override
+    public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException {
+        return null;
+    }
+
+    @Override
+    public String printCurrentElement(ISerializerDeserializer[] serdes) throws HyracksDataException {
+        return null;
+    }
+
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementOnDiskInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementOnDiskInvertedListCursor.java
new file mode 100644
index 0000000..11c0901
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeElementOnDiskInvertedListCursor.java
@@ -0,0 +1,272 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInput;
+import java.io.DataInputStream;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.impls.AbstractOnDiskInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+import org.apache.hyracks.storage.common.IIndexCursorStats;
+import org.apache.hyracks.storage.common.MultiComparator;
+import org.apache.hyracks.storage.common.buffercache.IBufferCache;
+
+/**
+ * A cursor class that traverse an inverted list that consists of fixed-size elements on disk
+ *
+ */
+public class FixedSizeElementOnDiskInvertedListCursor extends AbstractOnDiskInvertedListCursor {
+
+    private final int elementSize;
+    private int bufferEndElementIx;
+    // The last element in the current range in memory
+    protected final IInvertedListTupleReference bufferEndElementTuple;
+    // The last element index per page
+    private int[] elementIndexes = new int[10];
+
+    public FixedSizeElementOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId, ITypeTraits[] invListFields,
+            IHyracksTaskContext ctx, IIndexCursorStats stats) throws HyracksDataException {
+        super(bufferCache, fileId, invListFields, ctx, stats);
+
+        this.bufferEndElementIx = 0;
+        this.bufferEndElementTuple = InvertedIndexUtils.createInvertedListTupleReference(invListFields);
+
+        int tmpSize = 0;
+        for (int i = 0; i < invListFields.length; i++) {
+            tmpSize += invListFields[i].getFixedLength();
+        }
+        elementSize = tmpSize;
+        this.currentOffsetForScan = -elementSize;
+    }
+
+    /**
+     * Returns the next element.
+     */
+    @Override
+    public void doNext() throws HyracksDataException {
+        if (currentOffsetForScan + 2 * elementSize > bufferCache.getPageSize()) {
+            currentPageIxForScan++;
+            currentOffsetForScan = 0;
+        } else {
+            currentOffsetForScan += elementSize;
+        }
+
+        // Needs to read the next block?
+        if (currentElementIxForScan > bufferEndElementIx && endPageId > bufferEndPageId) {
+            loadPages();
+            currentOffsetForScan = 0;
+        }
+
+        currentElementIxForScan++;
+
+        tuple.reset(buffers.get(currentPageIxForScan).array(), currentOffsetForScan);
+    }
+
+    /**
+     * Updates the information about this block.
+     */
+    @Override
+    protected void setBlockInfo() {
+        super.setBlockInfo();
+
+        bufferStartElementIx =
+                bufferStartPageId == startPageId ? 0 : elementIndexes[bufferStartPageId - startPageId - 1] + 1;
+        bufferEndElementIx = elementIndexes[bufferEndPageId - startPageId];
+        // Gets the final element tuple in this block.
+        getElementAtIndex(bufferEndElementIx, bufferEndElementTuple);
+    }
+
+    /**
+     * Gets the tuple for the given element index.
+     */
+    private void getElementAtIndex(int elementIx, IInvertedListTupleReference tuple) {
+        int currentPageIx =
+                binarySearch(elementIndexes, bufferStartPageId - startPageId, bufferNumLoadedPages, elementIx);
+        if (currentPageIx < 0) {
+            throw new IndexOutOfBoundsException(
+                    "Requested index: " + elementIx + " from array with numElements: " + numElements);
+        }
+
+        int currentOff;
+        if (currentPageIx == 0) {
+            currentOff = startOff + elementIx * elementSize;
+        } else {
+            int relativeElementIx = elementIx - elementIndexes[currentPageIx - 1] - 1;
+            currentOff = relativeElementIx * elementSize;
+        }
+        // Gets the actual index in the buffers since buffers.size() can be smaller than the total number of pages.
+        int bufferIdx = currentPageIx % buffers.size();
+        tuple.reset(buffers.get(bufferIdx).array(), currentOff);
+    }
+
+    /**
+     * Checks whether the given tuple exists on this inverted list. This method is used when doing a random traversal.
+     */
+    @Override
+    public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException {
+        // If the given element is greater than the last element in the current buffer, reads the next block.
+        if (needToReadNextBlock(searchTuple, invListCmp)) {
+            loadPages();
+        }
+        int mid = -1;
+        int begin = lastRandomSearchedElementIx;
+        int end = bufferEndElementIx;
+
+        while (begin <= end) {
+            mid = (begin + end) / 2;
+            getElementAtIndex(mid, tuple);
+            int cmp = invListCmp.compare(searchTuple, tuple);
+            if (cmp < 0) {
+                end = mid - 1;
+            } else if (cmp > 0) {
+                begin = mid + 1;
+            } else {
+                lastRandomSearchedElementIx = mid;
+                return true;
+            }
+        }
+
+        lastRandomSearchedElementIx = mid;
+        return false;
+    }
+
+    /**
+     * Checks whether the search tuple is greater than the last element in the current block of the cursor.
+     * If so, the cursor needs to load next block of the inverted list.
+     *
+     * @param searchTuple
+     * @param invListCmp
+     * @return true if the search tuple is greater than the last element in the current block of the cursor
+     *         false if the search tuple is equal to or less than the last element in the current block of the cursor
+     * @throws HyracksDataException
+     */
+    private boolean needToReadNextBlock(ITupleReference searchTuple, MultiComparator invListCmp)
+            throws HyracksDataException {
+        if (moreBlocksToRead && invListCmp.compare(searchTuple, bufferEndElementTuple) > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Opens the cursor for the given inverted list. After this open() call, prepreLoadPages() should be called
+     * before loadPages() are called. For more details, check prepapreLoadPages().
+     */
+    @Override
+    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
+            throws HyracksDataException {
+        super.setInvListInfo(startPageId, endPageId, startOff, numElements);
+
+        if (numPages > elementIndexes.length) {
+            elementIndexes = new int[numPages];
+        }
+        this.currentOffsetForScan = startOff - elementSize;
+        // Fills the last element index per page.
+        // first page
+        int cumulElements = (bufferCache.getPageSize() - startOff) / elementSize;
+        // Deducts 1 because this is the index, not the number of elements.
+        elementIndexes[0] = cumulElements - 1;
+
+        // middle, full pages
+        for (int i = 1; i < numPages - 1; i++) {
+            elementIndexes[i] = elementIndexes[i - 1] + (bufferCache.getPageSize() / elementSize);
+        }
+
+        // last page
+        // Deducts 1 because this is the index, not the number of elements.
+        elementIndexes[numPages - 1] = numElements - 1;
+    }
+
+    /**
+     * Prints the contents of the current inverted list (a debugging method).
+     */
+    @SuppressWarnings("rawtypes")
+    @Override
+    public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException {
+        int oldCurrentOff = currentOffsetForScan;
+        int oldCurrentPageId = currentPageIxForScan;
+        int oldCurrentElementIx = currentElementIxForScan;
+
+        currentOffsetForScan = startOff - elementSize;
+        currentPageIxForScan = 0;
+        currentElementIxForScan = 0;
+
+        StringBuilder strBuilder = new StringBuilder();
+
+        while (hasNext()) {
+            next();
+            for (int i = 0; i < tuple.getFieldCount(); i++) {
+                ByteArrayInputStream inStream = new ByteArrayInputStream(tuple.getFieldData(i), tuple.getFieldStart(i),
+                        tuple.getFieldLength(i));
+                DataInput dataIn = new DataInputStream(inStream);
+                Object o = serdes[i].deserialize(dataIn);
+                strBuilder.append(o.toString());
+                if (i + 1 < tuple.getFieldCount()) {
+                    strBuilder.append(",");
+                }
+            }
+            strBuilder.append(" ");
+        }
+
+        // reset previous state
+        currentOffsetForScan = oldCurrentOff;
+        currentPageIxForScan = oldCurrentPageId;
+        currentElementIxForScan = oldCurrentElementIx;
+
+        return strBuilder.toString();
+    }
+
+    /**
+     * Conducts a binary search to get the index of the given key.
+     */
+    private int binarySearch(int[] arr, int arrStart, int arrLength, int key) {
+        int mid;
+        int begin = arrStart;
+        int end = arrStart + arrLength - 1;
+
+        while (begin <= end) {
+            mid = (begin + end) / 2;
+            int cmp = (key - arr[mid]);
+            if (cmp < 0) {
+                end = mid - 1;
+            } else if (cmp > 0) {
+                begin = mid + 1;
+            } else {
+                return mid;
+            }
+        }
+
+        if (begin > arr.length - 1) {
+            return -1;
+        }
+        if (key < arr[begin]) {
+            return begin;
+        } else {
+            return -1;
+        }
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListSearchResultFrameTupleAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListSearchResultFrameTupleAccessor.java
new file mode 100644
index 0000000..e7a3f5d
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListSearchResultFrameTupleAccessor.java
@@ -0,0 +1,106 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.ErrorCode;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListSearchResultFrameTupleAccessor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.InvertedListSearchResultFrameTupleAppender;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+/**
+ * This is a fixed-size tuple accessor class to get one inverted list.
+ * The frame structure: [4 bytes for minimum Hyracks frame count] [fixed-size tuple 1] ... [fixed-size tuple n] ...
+ * [4 bytes for the tuple count in a frame]
+ */
+public class FixedSizeInvertedListSearchResultFrameTupleAccessor
+        extends AbstractInvertedListSearchResultFrameTupleAccessor {
+
+    private final int tupleSize;
+    private final int[] fieldStartOffsets;
+
+    public FixedSizeInvertedListSearchResultFrameTupleAccessor(int frameSize, ITypeTraits[] fields)
+            throws HyracksDataException {
+        super(frameSize, fields);
+
+        this.fieldStartOffsets = new int[fields.length];
+        this.fieldStartOffsets[0] = 0;
+        for (int i = 1; i < fields.length; i++) {
+            fieldStartOffsets[i] = fieldStartOffsets[i - 1] + fields[i - 1].getFixedLength();
+        }
+
+        int tmp = 0;
+        for (int i = 0; i < fields.length; i++) {
+            tmp += fields[i].getFixedLength();
+        }
+        tupleSize = tmp;
+    }
+
+    @Override
+    protected void verifyTypeTraits() throws HyracksDataException {
+        InvertedIndexUtils.verifyAllFixedSizeTypeTrait(fields);
+
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(fields) == false) {
+            throw HyracksDataException.create(ErrorCode.INVALID_INVERTED_LIST_TYPE_TRAITS,
+                    InvertedIndexUtils.EXPECT_ALL_FIX_GET_VAR_SIZE);
+        }
+    }
+
+    @Override
+    public int getFieldEndOffset(int tupleIndex, int fIdx) {
+        return getTupleStartOffset(tupleIndex) + fieldStartOffsets[fIdx] + fields[fIdx].getFixedLength();
+    }
+
+    @Override
+    public int getFieldLength(int tupleIndex, int fIdx) {
+        return fields[fIdx].getFixedLength();
+    }
+
+    @Override
+    public int getTupleLength(int tupleIndex) {
+        return getTupleEndOffset(tupleIndex) - getTupleStartOffset(tupleIndex);
+    }
+
+    @Override
+    public int getFieldSlotsLength() {
+        return 0;
+    }
+
+    @Override
+    public int getFieldStartOffset(int tupleIndex, int fIdx) {
+        return getTupleStartOffset(tupleIndex) + fieldStartOffsets[fIdx];
+    }
+
+    @Override
+    public int getTupleEndOffset(int tupleIndex) {
+        return getFieldEndOffset(tupleIndex, fields.length - 1);
+    }
+
+    @Override
+    public int getTupleStartOffset(int tupleIndex) {
+        return InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE + tupleIndex * tupleSize;
+    }
+
+    @Override
+    public int getAbsoluteFieldStartOffset(int tupleIndex, int fIdx) {
+        return getTupleStartOffset(tupleIndex) + getFieldSlotsLength() + getFieldStartOffset(tupleIndex, fIdx);
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListTupleReference.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListTupleReference.java
new file mode 100644
index 0000000..9abedbb
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/fixedsize/FixedSizeInvertedListTupleReference.java
@@ -0,0 +1,49 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+public class FixedSizeInvertedListTupleReference extends AbstractInvertedListTupleReference {
+
+    public FixedSizeInvertedListTupleReference(ITypeTraits[] typeTraits) throws HyracksDataException {
+        super(typeTraits);
+    }
+
+    @Override
+    protected void verifyTypeTrait() throws HyracksDataException {
+        InvertedIndexUtils.verifyAllFixedSizeTypeTrait(typeTraits);
+    }
+
+    @Override
+    protected void calculateFieldStartOffsets() {
+        for (int i = 1; i < typeTraits.length; i++) {
+            fieldStartOffsets[i] = fieldStartOffsets[i - 1] + typeTraits[i - 1].getFixedLength();
+        }
+    }
+
+    @Override
+    public int getFieldLength(int fIdx) {
+        return typeTraits[fIdx].getFixedLength();
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementInvertedListBuilder.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementInvertedListBuilder.java
new file mode 100644
index 0000000..cfbb779
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementInvertedListBuilder.java
@@ -0,0 +1,97 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+import org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleWriter;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+// The last 4 bytes in the frame is reserved for the end offset (exclusive) of the last record in the current frame
+// i.e. the trailing space after the last record and before the last 4 bytes will be treated as empty
+public class VariableSizeElementInvertedListBuilder extends AbstractInvertedListBuilder {
+    private ITreeIndexTupleWriter writer;
+    protected final ITypeTraits[] allFields;
+
+    // The tokenTypeTraits is necessary because the underlying TypeAwareTupleWriter requires all the type traits of the tuple
+    // even if the first a few fields in the tuple are never accessed by the writer
+    public VariableSizeElementInvertedListBuilder(ITypeTraits[] tokenTypeTraits, ITypeTraits[] invListFields)
+            throws HyracksDataException {
+        super(invListFields);
+
+        this.allFields = new ITypeTraits[invListFields.length + tokenTypeTraits.length];
+        for (int i = 0; i < tokenTypeTraits.length; i++) {
+            allFields[i] = tokenTypeTraits[i];
+        }
+        for (int i = 0; i < invListFields.length; i++) {
+            allFields[i + tokenTypeTraits.length] = invListFields[i];
+        }
+        this.writer = new TypeAwareTupleWriter(allFields);
+
+        InvertedIndexUtils.verifyHasVarSizeTypeTrait(invListFields);
+    }
+
+    @Override
+    public boolean startNewList(ITupleReference tuple, int numTokenFields) {
+        if (!checkEnoughSpace(tuple, numTokenFields, tuple.getFieldCount() - numTokenFields)) {
+            return false;
+        } else {
+            listSize = 0;
+            return true;
+        }
+    }
+
+    private boolean checkEnoughSpace(ITupleReference tuple, int numTokenFields, int numElementFields) {
+        int numBytesRequired = writer.bytesRequired(tuple, numTokenFields, numElementFields);
+        return checkEnoughSpace(numBytesRequired);
+    }
+
+    private boolean checkEnoughSpace(int numBytesRequired) {
+        // The last 4 bytes are reserved for the end offset of the last record in the current page
+        if (pos + numBytesRequired + 4 > targetBuf.length) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public boolean appendElement(ITupleReference tuple, int numTokenFields, int numElementFields) {
+        int numBytesRequired = writer.bytesRequired(tuple, numTokenFields, numElementFields);
+
+        if (!checkEnoughSpace(numBytesRequired)) {
+            return false;
+        }
+
+        pos += writer.writeTupleFields(tuple, numTokenFields, numElementFields, targetBuf, pos);
+        listSize++;
+
+        InvertedIndexUtils.setInvertedListFrameEndOffset(targetBuf, pos);
+        return true;
+    }
+
+    @Override
+    public boolean isFixedSize() {
+        return false;
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementOnDiskInvertedListCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementOnDiskInvertedListCursor.java
new file mode 100644
index 0000000..ee2bc58
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeElementOnDiskInvertedListCursor.java
@@ -0,0 +1,173 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize;
+
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+import org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleWriter;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.impls.AbstractOnDiskInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+import org.apache.hyracks.storage.common.ICursorInitialState;
+import org.apache.hyracks.storage.common.IIndexCursorStats;
+import org.apache.hyracks.storage.common.ISearchPredicate;
+import org.apache.hyracks.storage.common.MultiComparator;
+import org.apache.hyracks.storage.common.buffercache.IBufferCache;
+
+/**
+ * A cursor class that traverse an inverted list that consists of variable-size elements on disk
+ *
+ */
+
+public class VariableSizeElementOnDiskInvertedListCursor extends AbstractOnDiskInvertedListCursor {
+
+    // The scan offset is set to 0 when initialized, and we need such an isInit flag
+    // to avoid increasing the offset for the first element in the list when calling next()
+    private boolean isInit;
+    private IInvertedListTupleReference tupleReference;
+    private ITreeIndexTupleWriter tupleWriter;
+
+    public VariableSizeElementOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId,
+            ITypeTraits[] invListFields, IIndexCursorStats stats) throws HyracksDataException {
+        super(bufferCache, fileId, invListFields, stats);
+        this.isInit = true;
+        this.tupleReference = new VariableSizeInvertedListTupleReference(invListFields);
+        this.tupleWriter = new TypeAwareTupleWriter(invListFields);
+    }
+
+    public VariableSizeElementOnDiskInvertedListCursor(IBufferCache bufferCache, int fileId,
+            ITypeTraits[] invListFields, IHyracksTaskContext ctx, IIndexCursorStats stats) throws HyracksDataException {
+        super(bufferCache, fileId, invListFields, ctx, stats);
+        isInit = true;
+    }
+
+    @Override
+    protected void doOpen(ICursorInitialState initialState, ISearchPredicate searchPred) throws HyracksDataException {
+        super.doOpen(initialState, searchPred);
+
+        // Note that the cursors can be re-used in the upper-layer callers so we need to reset the state variables when open()
+        currentElementIxForScan = 0;
+        isInit = true;
+        this.tupleReference = new VariableSizeInvertedListTupleReference(invListFields);
+        this.tupleWriter = new TypeAwareTupleWriter(invListFields);
+    }
+
+    /**
+     * Returns the next element.
+     */
+    @Override
+    public void doNext() throws HyracksDataException {
+        // init state for the first element: keep the currentOffsetForScan at 0
+        if (isInit) {
+            isInit = false;
+        } else {
+            tupleReference.reset(buffers.get(currentPageIxForScan).array(), currentOffsetForScan);
+            currentOffsetForScan += tupleWriter.bytesRequired(tupleReference);
+        }
+
+        int currentPageEndOffset =
+                InvertedIndexUtils.getInvertedListFrameEndOffset(buffers.get(currentPageIxForScan).array());
+        assert currentOffsetForScan <= currentPageEndOffset;
+        // We reach the end of the current frame, turn to the next frame
+        if (currentOffsetForScan >= currentPageEndOffset) {
+            currentPageIxForScan++;
+            currentOffsetForScan = 0;
+        }
+
+        // Needs to read the next block?
+        if (currentPageIxForScan >= buffers.size() && endPageId > bufferEndPageId) {
+            loadPages();
+            currentOffsetForScan = 0;
+        }
+
+        currentElementIxForScan++;
+        tuple.reset(buffers.get(currentPageIxForScan).array(), currentOffsetForScan);
+    }
+
+    /**
+     * Updates the information about this block.
+     */
+    @Override
+    protected void setBlockInfo() {
+        super.setBlockInfo();
+        currentOffsetForScan = bufferStartElementIx == 0 ? startOff : 0;
+    }
+
+    /**
+     * Checks whether the given tuple exists on this inverted list. This method is used when doing a random traversal.
+     */
+    @Override
+    public boolean containsKey(ITupleReference searchTuple, MultiComparator invListCmp) throws HyracksDataException {
+        if (isInit) {
+            // when isInit, the tuple is null, call next to fetch one tuple
+            next();
+        }
+        while (hasNext()) {
+            int cmp = invListCmp.compare(searchTuple, tuple);
+            if (cmp < 0) {
+                return false;
+            } else if (cmp == 0) {
+                return true;
+            }
+            // ToDo: here we get the tuple first and then call next() later because the upper-layer caller in InvertedListMerger already called next()
+            // However, this is not consistent with other use cases of next() in AsterixDB
+            // Maybe we need to fix the upper layer InvertedListMerger part to call next() first then getTuple()
+            // to follow the convention to use cursor
+            next();
+        }
+
+        if (tuple != null) {
+            int cmp = invListCmp.compare(searchTuple, tuple);
+            if (cmp < 0) {
+                return false;
+            } else if (cmp == 0) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Opens the cursor for the given inverted list. After this open() call, prepreLoadPages() should be called
+     * before loadPages() are called. For more details, check prepapreLoadPages().
+     */
+    @Override
+    protected void setInvListInfo(int startPageId, int endPageId, int startOff, int numElements)
+            throws HyracksDataException {
+        super.setInvListInfo(startPageId, endPageId, startOff, numElements);
+
+        this.currentOffsetForScan = startOff;
+    }
+
+    /**
+     * Prints the contents of the current inverted list (a debugging method).
+     */
+    @SuppressWarnings("rawtypes")
+    @Override
+    public String printInvList(ISerializerDeserializer[] serdes) throws HyracksDataException {
+        // Will implement later if necessary
+        return "";
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListSearchResultFrameTupleAccessor.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListSearchResultFrameTupleAccessor.java
new file mode 100644
index 0000000..ab71c0a
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListSearchResultFrameTupleAccessor.java
@@ -0,0 +1,148 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+import org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleWriter;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListSearchResultFrameTupleAccessor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.InvertedListSearchResultFrameTupleAppender;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+/**
+ * This is a variable-size tuple accessor class.
+ * The frame structure: [4 bytes for minimum Hyracks frame count] [variable-size tuple 1] ... [variable-size tuple n] ...
+ * [4 bytes for the tuple count in a frame]
+ *
+ * This frame accessor is mainly used to merge two inverted lists, e.g. when searching the conjunction of two keywords ("abc" AND "xyz")
+ *
+ * For such a variable-size tuple accessor, for now it supports to get the position of the next tuple only,
+ * i.e. supports iteration instead of random access to the tuples
+ * because the in-page tuple offsets are not available (not stored on disk) until we scan the tuples one by one
+ */
+public class VariableSizeInvertedListSearchResultFrameTupleAccessor
+        extends AbstractInvertedListSearchResultFrameTupleAccessor {
+    // ToDo: use a scanner model to read tuples one by one.
+    // It is not necessary to support random access because it is used only when merging lists
+    // In fact, now we need to scan the frame twice to get the tupleStartOffsets
+    // and then use this offsets for a scan purpose (no random access needed in the upper layer) only
+
+    private int[] tupleStartOffsets;
+    private int tupleCount;
+    private int lastTupleLen;
+    private IInvertedListTupleReference tupleReference;
+    private ITreeIndexTupleWriter tupleWriter;
+
+    public VariableSizeInvertedListSearchResultFrameTupleAccessor(int frameSize, ITypeTraits[] fields)
+            throws HyracksDataException {
+        super(frameSize, fields);
+
+        this.tupleWriter = new TypeAwareTupleWriter(fields);
+        this.tupleReference = new VariableSizeInvertedListTupleReference(fields);
+    }
+
+    @Override
+    protected void verifyTypeTraits() throws HyracksDataException {
+        InvertedIndexUtils.verifyHasVarSizeTypeTrait(fields);
+    }
+
+    private int getTupleLengthAtPos(int startPos) {
+        tupleReference.reset(buffer.array(), startPos);
+        return tupleWriter.bytesRequired(tupleReference);
+    }
+
+    @Override
+    public void reset(ByteBuffer buffer) {
+        super.reset(buffer);
+
+        tupleCount = getTupleCount();
+        tupleStartOffsets = new int[tupleCount];
+
+        if (tupleCount > 0) {
+            int startOff = InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE;
+            int pos = startOff;
+            tupleStartOffsets[0] = 0;
+            int firstTupleLen = getTupleLengthAtPos(pos);
+            lastTupleLen = firstTupleLen;
+
+            for (int i = 1; i < tupleCount; i++) {
+                int len = getTupleLengthAtPos(pos);
+                tupleStartOffsets[i] = tupleStartOffsets[i - 1] + len;
+                if (i == tupleCount - 1) {
+                    lastTupleLen = len;
+                }
+
+                pos += len;
+            }
+        }
+    }
+
+    @Override
+    public int getTupleStartOffset(int tupleIndex) {
+        return InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE + tupleStartOffsets[tupleIndex];
+    }
+
+    @Override
+    public int getTupleEndOffset(int tupleIndex) {
+        if (tupleIndex == fields.length - 1) {
+            return InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE + tupleStartOffsets[tupleIndex]
+                    + lastTupleLen;
+        } else if (tupleIndex < 0) {
+            return InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE;
+        }
+        return InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE + tupleStartOffsets[tupleIndex + 1];
+    }
+
+    @Override
+    public int getTupleLength(int tupleIndex) {
+        return getTupleEndOffset(tupleIndex) - getTupleStartOffset(tupleIndex);
+    }
+
+    @Override
+    public int getFieldSlotsLength() {
+        return 0;
+    }
+
+    @Override
+    public int getFieldStartOffset(int tupleIndex, int fIdx) {
+        tupleReference.reset(buffer.array(), getTupleStartOffset(tupleIndex));
+        return tupleReference.getFieldStart(fIdx);
+    }
+
+    @Override
+    public int getFieldEndOffset(int tupleIndex, int fIdx) {
+        tupleReference.reset(buffer.array(), getTupleStartOffset(tupleIndex));
+        return tupleReference.getFieldStart(fIdx) + tupleReference.getFieldLength(fIdx);
+    }
+
+    @Override
+    public int getFieldLength(int tupleIndex, int fIdx) {
+        return getFieldEndOffset(tupleIndex, fIdx) - getFieldStartOffset(tupleIndex, fIdx);
+    }
+
+    @Override
+    public int getAbsoluteFieldStartOffset(int tupleIndex, int fIdx) {
+        return getTupleStartOffset(tupleIndex) + getFieldSlotsLength() + getFieldStartOffset(tupleIndex, fIdx);
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListTupleReference.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListTupleReference.java
new file mode 100644
index 0000000..8e1db66
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/variablesize/VariableSizeInvertedListTupleReference.java
@@ -0,0 +1,68 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleReference;
+import org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.AbstractInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+
+public class VariableSizeInvertedListTupleReference extends AbstractInvertedListTupleReference {
+
+    private ITreeIndexTupleReference tupleReference;
+
+    @Override
+    protected void verifyTypeTrait() throws HyracksDataException {
+        InvertedIndexUtils.verifyHasVarSizeTypeTrait(typeTraits);
+    }
+
+    public VariableSizeInvertedListTupleReference(ITypeTraits[] typeTraits) throws HyracksDataException {
+        super(typeTraits);
+
+        this.tupleReference = new TypeAwareTupleReference(typeTraits);
+    }
+
+    @Override
+    protected void calculateFieldStartOffsets() {
+        tupleReference.resetByTupleOffset(data, startOff);
+    }
+
+    @Override
+    public int getFieldCount() {
+        return typeTraits.length;
+    }
+
+    @Override
+    public byte[] getFieldData(int fIdx) {
+        return data;
+    }
+
+    @Override
+    public int getFieldLength(int fIdx) {
+        return tupleReference.getFieldLength(fIdx);
+    }
+
+    @Override
+    public int getFieldStart(int fIdx) {
+        return tupleReference.getFieldStart(fIdx);
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/AbstractTOccurrenceSearcher.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/AbstractTOccurrenceSearcher.java
index 06ea4eb..1a08fd0 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/AbstractTOccurrenceSearcher.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/AbstractTOccurrenceSearcher.java
@@ -42,14 +42,14 @@
 import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInPlaceInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearcher;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IObjectFactory;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeFrameTupleAccessor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeTupleReference;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.DelimitedUTF8StringBinaryTokenizer;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizer;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IToken;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.TokenizerInfo.TokenizerType;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
 import org.apache.hyracks.storage.am.lsm.invertedindex.util.ObjectCache;
 import org.apache.hyracks.storage.common.MultiComparator;
 
@@ -76,21 +76,21 @@
 
     protected int occurrenceThreshold;
 
-    protected final IObjectFactory<InvertedListCursor> invListCursorFactory;
-    protected final ObjectCache<InvertedListCursor> invListCursorCache;
+    protected final IObjectFactory<IInvertedListCursor> invListCursorFactory;
+    protected final ObjectCache<IInvertedListCursor> invListCursorCache;
 
     protected final ISimpleFrameBufferManager bufferManager;
     protected boolean isFinishedSearch;
 
     // For a single inverted list case
-    protected InvertedListCursor singleInvListCursor;
+    protected IInvertedListCursor singleInvListCursor;
     protected boolean isSingleInvertedList;
 
     // To read the final search result
     protected ByteBuffer searchResultBuffer;
     protected int searchResultTupleIndex = 0;
     protected final IFrameTupleAccessor searchResultFta;
-    protected FixedSizeTupleReference searchResultTuple;
+    protected IInvertedListTupleReference searchResultTuple;
 
     public AbstractTOccurrenceSearcher(IInPlaceInvertedIndex invIndex, IHyracksTaskContext ctx)
             throws HyracksDataException {
@@ -118,9 +118,9 @@
         this.queryTokenAppender = new FrameTupleAppenderAccessor(QUERY_TOKEN_REC_DESC);
         this.queryTokenAppender.reset(queryTokenFrame, true);
         this.isSingleInvertedList = false;
-        this.searchResultTuple = new FixedSizeTupleReference(invIndex.getInvListTypeTraits());
-        this.searchResultFta =
-                new FixedSizeFrameTupleAccessor(ctx.getInitialFrameSize(), invIndex.getInvListTypeTraits());
+        this.searchResultTuple = InvertedIndexUtils.createInvertedListTupleReference(invIndex.getInvListTypeTraits());
+        this.searchResultFta = InvertedIndexUtils.createInvertedListFrameTupleAccessor(ctx.getInitialFrameSize(),
+                invIndex.getInvListTypeTraits());
     }
 
     protected void tokenizeQuery(InvertedIndexSearchPredicate searchPred) throws HyracksDataException {
@@ -178,7 +178,7 @@
 
     public void printNewResults(int maxResultBufIdx, List<ByteBuffer> buffer) {
         StringBuffer strBuffer = new StringBuffer();
-        FixedSizeFrameTupleAccessor resultFrameTupleAcc = finalSearchResult.getAccessor();
+        IFrameTupleAccessor resultFrameTupleAcc = finalSearchResult.getAccessor();
         for (int i = 0; i <= maxResultBufIdx; i++) {
             ByteBuffer testBuf = buffer.get(i);
             resultFrameTupleAcc.reset(testBuf);
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexFinalSearchResult.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexFinalSearchResult.java
index 55acb33..e5f4622 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexFinalSearchResult.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexFinalSearchResult.java
@@ -23,7 +23,6 @@
 
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
 import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
@@ -45,12 +44,9 @@
     @Override
     protected void initTypeTraits(ITypeTraits[] invListFields) {
         typeTraits = new ITypeTraits[invListFields.length];
-        int tmp = 0;
         for (int i = 0; i < invListFields.length; i++) {
             typeTraits[i] = invListFields[i];
-            tmp += invListFields[i].getFixedLength();
         }
-        invListElementSize = tmp;
     }
 
     /**
@@ -76,13 +72,13 @@
      */
     @Override
     public boolean append(ITupleReference invListElement, int count) throws HyracksDataException {
-        // Pauses the addition of this tuple if the current page is full.
-        if (!appender.hasSpace()) {
+        int numBytesRequired = getNumBytesRequired(invListElement);
+        if (!appender.hasSpace(numBytesRequired)) {
             return false;
         }
-        // Appends the given inverted-list element.
-        if (!appender.append(invListElement.getFieldData(0), invListElement.getFieldStart(0), invListElementSize)) {
-            throw HyracksDataException.create(ErrorCode.CANNOT_ADD_ELEMENT_TO_INVERTED_INDEX_SEARCH_RESULT);
+
+        if (!appendInvertedListElement(invListElement)) {
+            return false;
         }
         appender.incrementTupleCount(1);
         numResults++;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexSearchResult.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexSearchResult.java
index 527d624..707d85d 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexSearchResult.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedIndexSearchResult.java
@@ -25,6 +25,7 @@
 import java.util.ListIterator;
 
 import org.apache.hyracks.api.comm.IFrame;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.ErrorCode;
@@ -36,9 +37,12 @@
 import org.apache.hyracks.dataflow.common.io.RunFileWriter;
 import org.apache.hyracks.dataflow.std.buffermanager.BufferManagerBackedVSizeFrame;
 import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeFrameTupleAccessor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeFrameTupleAppender;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeTupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+import org.apache.hyracks.storage.am.common.tuples.TypeAwareTupleWriter;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListSearchResultFrameTupleAppender;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.InvertedListSearchResultFrameTupleAppender;
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
 
 /**
  * Disk-based or in-memory based storage for intermediate and final results of inverted-index
@@ -50,18 +54,18 @@
     // I/O buffer's index in the buffers
     protected static final int IO_BUFFER_IDX = 0;
     protected static final String FILE_PREFIX = "InvertedIndexSearchResult";
+
     protected final IHyracksTaskContext ctx;
-    protected final FixedSizeFrameTupleAppender appender;
-    protected final FixedSizeFrameTupleAccessor accessor;
-    protected final FixedSizeTupleReference tuple;
+    protected final IInvertedListSearchResultFrameTupleAppender appender;
+    protected final IFrameTupleAccessor accessor;
+    protected final IInvertedListTupleReference tuple;
     protected final ISimpleFrameBufferManager bufferManager;
     protected ITypeTraits[] typeTraits;
-    protected int invListElementSize;
+    protected ITypeTraits[] invListFields;
 
     protected int currentWriterBufIdx;
     protected int currentReaderBufIdx;
     protected int numResults;
-    protected int numPossibleElementPerPage;
     // Read and Write I/O buffer
     protected IFrame ioBufferFrame = null;
     protected ByteBuffer ioBuffer = null;
@@ -75,14 +79,19 @@
     protected boolean isInReadMode;
     protected boolean isWriteFinished;
     protected boolean isFileOpened;
+    // Used for variable-size element in the inverted list
+    protected ITreeIndexTupleWriter tupleWriter;
+    protected byte[] tempBytes;
 
     public InvertedIndexSearchResult(ITypeTraits[] invListFields, IHyracksTaskContext ctx,
             ISimpleFrameBufferManager bufferManager) throws HyracksDataException {
+        this.invListFields = invListFields;
+        this.tupleWriter = new TypeAwareTupleWriter(invListFields);
         initTypeTraits(invListFields);
         this.ctx = ctx;
-        appender = new FixedSizeFrameTupleAppender(ctx.getInitialFrameSize(), typeTraits);
-        accessor = new FixedSizeFrameTupleAccessor(ctx.getInitialFrameSize(), typeTraits);
-        tuple = new FixedSizeTupleReference(typeTraits);
+        appender = new InvertedListSearchResultFrameTupleAppender(ctx.getInitialFrameSize());
+        accessor = InvertedIndexUtils.createInvertedListFrameTupleAccessor(ctx.getInitialFrameSize(), typeTraits);
+        tuple = InvertedIndexUtils.createInvertedListTupleReference(typeTraits);
         this.bufferManager = bufferManager;
         this.isInReadMode = false;
         this.isWriteFinished = false;
@@ -94,7 +103,7 @@
         this.currentWriterBufIdx = 0;
         this.currentReaderBufIdx = 0;
         this.numResults = 0;
-        calculateNumElementPerPage();
+        this.tempBytes = new byte[ctx.getInitialFrameSize()];
         // Allocates one frame for read/write operation.
         prepareIOBuffer();
     }
@@ -105,16 +114,33 @@
      */
     protected void initTypeTraits(ITypeTraits[] invListFields) {
         typeTraits = new ITypeTraits[invListFields.length + 1];
-        int tmp = 0;
         for (int i = 0; i < invListFields.length; i++) {
             typeTraits[i] = invListFields[i];
-            tmp += invListFields[i].getFixedLength();
         }
-        invListElementSize = tmp;
         // Integer for counting occurrences.
         typeTraits[invListFields.length] = IntegerPointable.TYPE_TRAITS;
     }
 
+    // If all the inverted list fileds are fixed-size, then return the number of expected pages
+    // Otherwise, return -1
+    public int getExpectedNumPages(int numExpectedElements) {
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(invListFields)) {
+            int sizeElement = 0;
+            for (int i = 0; i < invListFields.length; i++) {
+                sizeElement += invListFields[i].getFixedLength();
+            }
+
+            int frameSize = ctx.getInitialFrameSize();
+            // The count of Minframe, and the count of tuples in a frame should be deducted.
+            frameSize = frameSize - InvertedListSearchResultFrameTupleAppender.MINFRAME_COUNT_SIZE
+                    - InvertedListSearchResultFrameTupleAppender.TUPLE_COUNT_SIZE;
+            int numPossibleElementPerPage = (int) Math.floor((double) frameSize / (sizeElement + ELEMENT_COUNT_SIZE));
+            return (int) Math.ceil((double) numExpectedElements / numPossibleElementPerPage);
+        } else {
+            return -1;
+        }
+    }
+
     /**
      * Prepares the write operation. Tries to allocate buffers for the expected number of pages.
      * If that is possible, all operations will be executed in memory.
@@ -127,7 +153,15 @@
         }
         // Intermediate results? disk or in-memory based
         // Allocates more buffers.
-        isInMemoryOpMode = tryAllocateBuffers(numExpectedPages);
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(typeTraits)) {
+            isInMemoryOpMode = tryAllocateBuffers(numExpectedPages);
+        } else {
+            // When one of the type traits is variable length, disable the in memory mode
+            // because the length of the inverted list is unknown, and thus may exceed the memory budget
+            // A better way to do so might be to flush to disk when out-of-memory on the fly
+            // instead of deciding the in memory mode or not before we merge the results
+            isInMemoryOpMode = false;
+        }
         if (!isInMemoryOpMode) {
             // Not enough number of buffers. Switch to the file I/O mode.
             createAndOpenFile();
@@ -136,14 +170,47 @@
         isWriteFinished = false;
     }
 
+    protected int getNumBytesRequired(ITupleReference invListElement) {
+        if (invListFields[0].isFixedLength()) {
+            return invListElement.getFieldLength(0);
+        } else {
+            return tupleWriter.bytesRequired(invListElement, 0, 1);
+        }
+    }
+
+    protected boolean appendInvertedListElement(ITupleReference invListElement) throws HyracksDataException {
+        int numBytesRequired = getNumBytesRequired(invListElement);
+
+        // Appends inverted-list element.
+        if (invListFields[0].isFixedLength()) {
+            if (!appender.append(invListElement.getFieldData(0), invListElement.getFieldStart(0),
+                    invListElement.getFieldLength(0))) {
+                throw HyracksDataException.create(ErrorCode.CANNOT_ADD_ELEMENT_TO_INVERTED_INDEX_SEARCH_RESULT);
+            }
+        } else {
+            tupleWriter.writeTupleFields(invListElement, 0, 1, tempBytes, 0);
+            if (!appender.append(tempBytes, 0, numBytesRequired)) {
+                throw HyracksDataException.create(ErrorCode.CANNOT_ADD_ELEMENT_TO_INVERTED_INDEX_SEARCH_RESULT);
+            }
+        }
+
+        return true;
+    }
+
     /**
      * Appends an element and its count to the current frame of this result. The boolean value is necessary for
-     * the final search result case since the append() of that class is overriding this method.
+     * the final search result case since the append() of that class is **overriding** this method.
+     *
+     * Note that if the the buffer is run out, then this method will automatically write to the next buffer.
+     * This is different from the append() method in the final search result which will simply return false.
      */
     public boolean append(ITupleReference invListElement, int count) throws HyracksDataException {
+
+        int numBytesRequired = getNumBytesRequired(invListElement);
         ByteBuffer currentBuffer;
         // Moves to the next page if the current page is full.
-        if (!appender.hasSpace()) {
+        // + 4 for the count
+        if (!appender.hasSpace(numBytesRequired + 4)) {
             currentWriterBufIdx++;
             if (isInMemoryOpMode) {
                 currentBuffer = buffers.get(currentWriterBufIdx);
@@ -153,10 +220,9 @@
             }
             appender.reset(currentBuffer);
         }
-        // Appends inverted-list element.
-        if (!appender.append(invListElement.getFieldData(0), invListElement.getFieldStart(0), invListElementSize)) {
-            throw HyracksDataException.create(ErrorCode.CANNOT_ADD_ELEMENT_TO_INVERTED_INDEX_SEARCH_RESULT);
-        }
+
+        appendInvertedListElement(invListElement);
+
         // Appends count.
         if (!appender.append(count)) {
             throw HyracksDataException.create(ErrorCode.CANNOT_ADD_ELEMENT_TO_INVERTED_INDEX_SEARCH_RESULT);
@@ -292,23 +358,6 @@
     }
 
     /**
-     * Gets the expected number of pages if all elements are created as a result.
-     * An assumption is that there are no common elements between the previous result and the cursor.
-     */
-    public int getExpectedNumPages(int numExpectedElements) {
-        return (int) Math.ceil((double) numExpectedElements / numPossibleElementPerPage);
-    }
-
-    // Gets the number of possible elements per page based on the inverted list element size.
-    protected void calculateNumElementPerPage() {
-        int frameSize = ctx.getInitialFrameSize();
-        // The count of Minframe, and the count of tuples in a frame should be deducted.
-        frameSize = frameSize - FixedSizeFrameTupleAppender.MINFRAME_COUNT_SIZE
-                - FixedSizeFrameTupleAppender.TUPLE_COUNT_SIZE;
-        numPossibleElementPerPage = (int) Math.floor((double) frameSize / (invListElementSize + ELEMENT_COUNT_SIZE));
-    }
-
-    /**
      * Allocates the buffer for read/write operation and initializes the buffers array that will be used keep a result.
      */
     protected void prepareIOBuffer() throws HyracksDataException {
@@ -334,12 +383,28 @@
      * Tries to allocate buffers to accommodate the results in memory.
      */
     protected boolean tryAllocateBuffers(int numExpectedPages) throws HyracksDataException {
+        assert numExpectedPages >= 0;
+
         boolean allBufferAllocated = true;
         while (buffers.size() < numExpectedPages) {
+            // Currently, the buffers (optional, needs multiple pages, for in-memory mode)
+            // and the ioBuffer (must-have, needs one page only, for disk IO, related code is in the above prepareIOBuffer())
+            // are both acquired from the same bufferManager.
+            // It may be possible that one search result acquires all the frame for its in-memory usage,
+            // and then the next search result cannot even get one frame for its disk IO usage.
+            // In this case, the second search result will exit with an out-of-memory error.
+            //
+            // To avoid the above issue, maybe we need to create **two** buffer managers, one to manage in-memory frame usage,
+            // and the other to manage on-disk frame usage to guarantee that every search result has at least one disk IO frame.
+            // Or, to make things simpler, we can let the search result manage its own disk IO frame,
+            // i.e. create the frame on its own rather than acquire from the buffer manager.
+            // In this case, we cannot reuse frames, but each search result needs only one IO frame,
+            // and the number of search result is pretty limited (e.g. one result per query keyword).
             ByteBuffer tmpBuffer = bufferManager.acquireFrame(ctx.getInitialFrameSize());
             if (tmpBuffer == null) {
                 // Budget exhausted
                 allBufferAllocated = false;
+                deallocateBuffers();
                 break;
             } else {
                 clearBuffer(tmpBuffer);
@@ -390,15 +455,15 @@
         }
     }
 
-    public FixedSizeFrameTupleAccessor getAccessor() {
+    public IFrameTupleAccessor getAccessor() {
         return accessor;
     }
 
-    public FixedSizeFrameTupleAppender getAppender() {
+    public IInvertedListSearchResultFrameTupleAppender getAppender() {
         return appender;
     }
 
-    public FixedSizeTupleReference getTuple() {
+    public IInvertedListTupleReference getTuple() {
         return tuple;
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListCursorFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListCursorFactory.java
index 6d61f32..4f53d41 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListCursorFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListCursorFactory.java
@@ -22,10 +22,10 @@
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInPlaceInvertedIndex;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IObjectFactory;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
 
-public class InvertedListCursorFactory implements IObjectFactory<InvertedListCursor> {
+public class InvertedListCursorFactory implements IObjectFactory<IInvertedListCursor> {
 
     private final IInPlaceInvertedIndex invIndex;
     private final IHyracksTaskContext ctx;
@@ -36,7 +36,7 @@
     }
 
     @Override
-    public InvertedListCursor create() throws HyracksDataException {
+    public IInvertedListCursor create() throws HyracksDataException {
         return invIndex.createInvertedListCursor(ctx);
     }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListMerger.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListMerger.java
index f3ca8b0..deea12a 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListMerger.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListMerger.java
@@ -23,6 +23,7 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -30,9 +31,8 @@
 import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
 import org.apache.hyracks.dataflow.std.buffermanager.ISimpleFrameBufferManager;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndex;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeFrameTupleAccessor;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
 import org.apache.hyracks.storage.common.MultiComparator;
 
 /**
@@ -54,7 +54,7 @@
     protected InvertedIndexFinalSearchResult finalSearchResult;
 
     // To Keep the status of this merge process since we only calculate one frame at a time in case of the final result
-    protected InvertedListCursor finalInvListCursor;
+    protected IInvertedListCursor finalInvListCursor;
     protected int occurrenceThreshold;
     protected int numInvertedLists;
     protected int invListIdx;
@@ -63,12 +63,18 @@
     protected int maxPrevBufIdx;
     protected int numExpectedPages;
     protected ByteBuffer prevCurrentBuffer;
-    protected FixedSizeFrameTupleAccessor resultFrameTupleAcc;
-    protected FixedSizeTupleReference resultTuple;
+    protected IFrameTupleAccessor resultFrameTupleAcc;
+    protected IInvertedListTupleReference resultTuple;
     protected boolean advanceCursor;
     protected boolean advancePrevResult;
-    protected int resultTidx;
-    protected int invListTidx;
+    // ToDo: we need those tuple indexes because when generating the intermediate result,
+    // the resultFrameTupleAcc API needs tuple index.
+    // In fact, the elements in resultFrameTupleAcc are retrieved sequentially one by one instead of accessed randomly.
+    // Maybe we can wrap the tuple index and the resultFrameTupleAcc into a new class so that we can iterate the elements
+    // in resultFrameTupleAcc and avoid having the tuple indexes here.
+    // We need to be very careful when handling those tuple indexes here.
+    protected int resultTupleIdx;
+    protected int invListTupleIdx;
     protected int invListTupleCount;
     protected ITupleReference invListTuple;
     protected int prevResultFrameTupleCount;
@@ -98,8 +104,9 @@
      *         false otherwise.
      * @throws HyracksDataException
      */
-    public boolean merge(List<InvertedListCursor> invListCursors, int occurrenceThreshold, int numPrefixLists,
+    public boolean merge(List<IInvertedListCursor> invListCursors, int occurrenceThreshold, int numPrefixLists,
             InvertedIndexFinalSearchResult finalSearchResult) throws HyracksDataException {
+
         Collections.sort(invListCursors);
         int numInvLists = invListCursors.size();
         InvertedIndexSearchResult result = null;
@@ -125,7 +132,7 @@
                 result = finalSearchResult;
                 isFinalList = true;
             }
-            InvertedListCursor invListCursor = invListCursors.get(i);
+            IInvertedListCursor invListCursor = invListCursors.get(i);
             // Track whether an exception is occurred.
             boolean finishedTryBlock = false;
             try {
@@ -219,9 +226,9 @@
      * @return true only if all processing for the final list for a partition is done.
      *         false otherwise.
      */
-    protected boolean mergeSuffixListProbe(InvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
-            InvertedIndexSearchResult newSearchResult, int invListIx, int numInvLists, int occurrenceThreshold,
-            boolean isFinalList) throws HyracksDataException {
+    protected boolean mergeSuffixListProbe(IInvertedListCursor invListCursor,
+            InvertedIndexSearchResult prevSearchResult, InvertedIndexSearchResult newSearchResult, int invListIx,
+            int numInvLists, int occurrenceThreshold, boolean isFinalList) throws HyracksDataException {
         if (isProcessingFinished) {
             return true;
         }
@@ -229,8 +236,8 @@
         initMergingOneList(invListCursor, prevSearchResult, newSearchResult, isFinalList, invListIx, numInvLists,
                 occurrenceThreshold, processType.SUFFIX_LIST_PROBE);
 
-        while (resultTidx < prevResultFrameTupleCount) {
-            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTidx));
+        while (resultTupleIdx < prevResultFrameTupleCount) {
+            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTupleIdx));
             int count = getCount(resultTuple);
             if (invListCursor.containsKey(resultTuple, invListCmp)) {
                 // Found the same tuple again on the current list. Increases the count by one.
@@ -249,7 +256,7 @@
                     return false;
                 }
             }
-            resultTidx++;
+            resultTupleIdx++;
             checkPrevResultAndFetchNextFrame(prevSearchResult);
         }
 
@@ -263,7 +270,7 @@
      * @return true only if all processing for the final list for a partition is done.
      *         false otherwise.
      */
-    protected boolean mergeSuffixListScan(InvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
+    protected boolean mergeSuffixListScan(IInvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
             InvertedIndexSearchResult newSearchResult, int invListIx, int numInvLists, int occurrenceThreshold,
             boolean isFinalList) throws HyracksDataException {
         if (isProcessingFinished) {
@@ -276,9 +283,9 @@
 
         int cmp;
         int count;
-        while (invListTidx < invListTupleCount && resultTidx < prevResultFrameTupleCount) {
+        while (invListTupleIdx < invListTupleCount && resultTupleIdx < prevResultFrameTupleCount) {
             invListTuple = invListCursor.getTuple();
-            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTidx));
+            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTupleIdx));
             cmp = invListCmp.compare(invListTuple, resultTuple);
             if (cmp == 0) {
                 // Found the same tuple again on the current list. Increases the count by one.
@@ -316,8 +323,8 @@
 
         // append remaining elements from previous result set
         // These remaining elements can be a part of the answer if they will be found again in the remaining lists.
-        while (resultTidx < prevResultFrameTupleCount) {
-            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTidx));
+        while (resultTupleIdx < prevResultFrameTupleCount) {
+            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTupleIdx));
             count = getCount(resultTuple);
             if (count + numInvLists - invListIx > occurrenceThreshold) {
                 if (!newSearchResult.append(resultTuple, count)) {
@@ -326,7 +333,7 @@
                     return false;
                 }
             }
-            resultTidx++;
+            resultTupleIdx++;
             checkPrevResultAndFetchNextFrame(prevSearchResult);
         }
 
@@ -338,7 +345,7 @@
      * then generates a new result by applying UNIONALL operation on these two. This method returns true
      * only if all processing for the given final list is done. Otherwise, it returns false.
      */
-    protected boolean mergePrefixList(InvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
+    protected boolean mergePrefixList(IInvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
             InvertedIndexSearchResult newSearchResult, boolean isFinalList) throws HyracksDataException {
         if (isProcessingFinished) {
             return true;
@@ -350,9 +357,9 @@
         int cmp;
         int count;
         // Traverses the inverted list and the previous result at the same time.
-        while (invListTidx < invListTupleCount && resultTidx < prevResultFrameTupleCount) {
+        while (invListTupleIdx < invListTupleCount && resultTupleIdx < prevResultFrameTupleCount) {
             invListTuple = invListCursor.getTuple();
-            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTidx));
+            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTupleIdx));
             cmp = invListCmp.compare(invListTuple, resultTuple);
             // Found the same tuple again on the current list: count + 1. Both the result and the cursor advances.
             if (cmp == 0) {
@@ -393,29 +400,29 @@
 
         // append remaining new elements from inverted list
         //
-        while (invListTidx < invListTupleCount) {
+        while (invListTupleIdx < invListTupleCount) {
             invListTuple = invListCursor.getTuple();
             if (!newSearchResult.append(invListTuple, 1)) {
                 // For a final result, needs to pause when a frame becomes full to let the caller
                 // consume the frame. SearchResult.append() should only return false for this case.
                 return false;
             }
-            invListTidx++;
+            invListTupleIdx++;
             if (invListCursor.hasNext()) {
                 invListCursor.next();
             }
         }
 
         // append remaining elements from previous result set
-        while (resultTidx < prevResultFrameTupleCount) {
-            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTidx));
+        while (resultTupleIdx < prevResultFrameTupleCount) {
+            resultTuple.reset(prevCurrentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(resultTupleIdx));
             count = getCount(resultTuple);
             if (!newSearchResult.append(resultTuple, count)) {
                 // For a final result, needs to pause when a frame becomes full to let the caller
                 // consume the frame. SearchResult.append() should only return false for this case.
                 return false;
             }
-            resultTidx++;
+            resultTupleIdx++;
             checkPrevResultAndFetchNextFrame(prevSearchResult);
         }
 
@@ -425,7 +432,7 @@
     /**
      * Initializes necessary information for each merging operation (prefix_list) for a list.
      */
-    protected void initMergingOneList(InvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
+    protected void initMergingOneList(IInvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
             InvertedIndexSearchResult newSearchResult, boolean isFinalList, processType mergeOpType)
             throws HyracksDataException {
         initMergingOneList(invListCursor, prevSearchResult, newSearchResult, isFinalList, 0, 0, 0, mergeOpType);
@@ -434,7 +441,7 @@
     /**
      * Initializes necessary information for each merging operation (suffix_list_probe or suffix_list_scan) for a list.
      */
-    protected void initMergingOneList(InvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
+    protected void initMergingOneList(IInvertedListCursor invListCursor, InvertedIndexSearchResult prevSearchResult,
             InvertedIndexSearchResult newSearchResult, boolean isFinalList, int invListIx, int numInvLists,
             int occurrenceThreshold, processType mergeOpType) throws HyracksDataException {
         // Each inverted list will be visited only once except the final inverted list.
@@ -455,9 +462,9 @@
             resultTuple = prevSearchResult.getTuple();
             advanceCursor = true;
             advancePrevResult = false;
-            resultTidx = 0;
+            resultTupleIdx = 0;
             resultFrameTupleAcc.reset(prevCurrentBuffer);
-            invListTidx = 0;
+            invListTupleIdx = 0;
             numInvertedLists = numInvLists;
             invListIdx = invListIx;
             prevResultFrameTupleCount = prevCurrentBuffer == null ? 0 : resultFrameTupleAcc.getTupleCount();
@@ -485,7 +492,7 @@
      *         false otherwise
      */
     protected boolean finishMergingOneList(boolean isFinalList, InvertedIndexSearchResult prevSearchResult,
-            InvertedIndexSearchResult newSearchResult, InvertedListCursor invListCursor) throws HyracksDataException {
+            InvertedIndexSearchResult newSearchResult, IInvertedListCursor invListCursor) throws HyracksDataException {
         prevSearchResult.closeResultRead(false);
         invListCursor.close();
         // Final search result can be called multiple times for partitioned occurrence searcher case
@@ -506,14 +513,14 @@
      * Also fetches next element from the inverted list cursor.
      */
     protected void advancePrevResultAndList(boolean advancePrevResult, boolean advanceCursor,
-            InvertedIndexSearchResult prevSearchResult, InvertedListCursor invListCursor) throws HyracksDataException {
+            InvertedIndexSearchResult prevSearchResult, IInvertedListCursor invListCursor) throws HyracksDataException {
         if (advancePrevResult) {
-            resultTidx++;
+            resultTupleIdx++;
             checkPrevResultAndFetchNextFrame(prevSearchResult);
         }
 
         if (advanceCursor) {
-            invListTidx++;
+            invListTupleIdx++;
             if (invListCursor.hasNext()) {
                 invListCursor.next();
             }
@@ -525,13 +532,13 @@
      */
     protected void checkPrevResultAndFetchNextFrame(InvertedIndexSearchResult prevSearchResult)
             throws HyracksDataException {
-        if (resultTidx >= prevResultFrameTupleCount) {
+        if (resultTupleIdx >= prevResultFrameTupleCount) {
             prevBufIdx++;
             if (prevBufIdx <= maxPrevBufIdx) {
                 prevCurrentBuffer = prevSearchResult.getNextFrame();
                 resultFrameTupleAcc.reset(prevCurrentBuffer);
                 prevResultFrameTupleCount = resultFrameTupleAcc.getTupleCount();
-                resultTidx = 0;
+                resultTupleIdx = 0;
             }
         }
     }
@@ -539,7 +546,7 @@
     /**
      * Gets the count of the given tuple in the previous search result.
      */
-    protected int getCount(FixedSizeTupleReference resultTuple) {
+    protected int getCount(IInvertedListTupleReference resultTuple) {
         return IntegerPointable.getInteger(resultTuple.getFieldData(0),
                 resultTuple.getFieldStart(resultTuple.getFieldCount() - 1));
     }
@@ -585,8 +592,8 @@
         resultTuple = null;
         advanceCursor = false;
         advancePrevResult = false;
-        resultTidx = 0;
-        invListTidx = 0;
+        resultTupleIdx = 0;
+        invListTupleIdx = 0;
         prevResultFrameTupleCount = 0;
         finalInvListCursor = null;
         finalSearchResult = null;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListPartitions.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListPartitions.java
index fef4baf..aef18c3 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListPartitions.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/InvertedListPartitions.java
@@ -23,8 +23,8 @@
 import java.util.Arrays;
 
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IObjectFactory;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.util.ObjectCache;
 
 /**
@@ -36,15 +36,15 @@
     private final int PARTITIONS_SLACK_SIZE = 10;
     private final int OBJECT_CACHE_INIT_SIZE = 10;
     private final int OBJECT_CACHE_EXPAND_SIZE = 10;
-    private final IObjectFactory<ArrayList<InvertedListCursor>> arrayListFactory;
-    private final ObjectCache<ArrayList<InvertedListCursor>> arrayListCache;
-    private ArrayList<InvertedListCursor>[] partitions;
+    private final IObjectFactory<ArrayList<IInvertedListCursor>> arrayListFactory;
+    private final ObjectCache<ArrayList<IInvertedListCursor>> arrayListCache;
+    private ArrayList<IInvertedListCursor>[] partitions;
     private short minValidPartitionIndex;
     private short maxValidPartitionIndex;
 
     public InvertedListPartitions() throws HyracksDataException {
-        this.arrayListFactory = new ArrayListFactory<InvertedListCursor>();
-        this.arrayListCache = new ObjectCache<ArrayList<InvertedListCursor>>(arrayListFactory, OBJECT_CACHE_INIT_SIZE,
+        this.arrayListFactory = new ArrayListFactory<IInvertedListCursor>();
+        this.arrayListCache = new ObjectCache<ArrayList<IInvertedListCursor>>(arrayListFactory, OBJECT_CACHE_INIT_SIZE,
                 OBJECT_CACHE_EXPAND_SIZE);
     }
 
@@ -57,7 +57,7 @@
             } else {
                 initialSize = numTokensUpperBound + 1;
             }
-            partitions = (ArrayList<InvertedListCursor>[]) new ArrayList[initialSize];
+            partitions = (ArrayList<IInvertedListCursor>[]) new ArrayList[initialSize];
         } else {
             if (numTokensUpperBound + 1 >= partitions.length) {
                 partitions = Arrays.copyOf(partitions, numTokensUpperBound + 1);
@@ -69,11 +69,11 @@
         maxValidPartitionIndex = Short.MIN_VALUE;
     }
 
-    public void addInvertedListCursor(InvertedListCursor listCursor, short numTokens) throws HyracksDataException {
+    public void addInvertedListCursor(IInvertedListCursor listCursor, short numTokens) throws HyracksDataException {
         if (numTokens + 1 >= partitions.length) {
             partitions = Arrays.copyOf(partitions, numTokens + PARTITIONS_SLACK_SIZE);
         }
-        ArrayList<InvertedListCursor> partitionCursors = partitions[numTokens];
+        ArrayList<IInvertedListCursor> partitionCursors = partitions[numTokens];
         if (partitionCursors == null) {
             partitionCursors = arrayListCache.getNext();
             partitionCursors.clear();
@@ -89,7 +89,7 @@
         partitionCursors.add(listCursor);
     }
 
-    public ArrayList<InvertedListCursor>[] getPartitions() {
+    public ArrayList<IInvertedListCursor>[] getPartitions() {
         return partitions;
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/PartitionedTOccurrenceSearcher.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/PartitionedTOccurrenceSearcher.java
index 3d8c35a..5ab63a2 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/PartitionedTOccurrenceSearcher.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/PartitionedTOccurrenceSearcher.java
@@ -33,8 +33,8 @@
 import org.apache.hyracks.storage.am.common.tuples.ConcatenatingTupleReference;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInPlaceInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearchModifier;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IPartitionedInvertedIndex;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
 import org.apache.hyracks.storage.common.IIndexCursor;
 
 /**
@@ -56,7 +56,7 @@
     protected int numPrefixLists;
     protected boolean isFinalPartIdx;
     protected boolean needToReadNewPart;
-    List<InvertedListCursor>[] partitionCursors;
+    List<IInvertedListCursor>[] partitionCursors;
     IInvertedIndexSearchModifier searchModifier;
 
     public PartitionedTOccurrenceSearcher(IInPlaceInvertedIndex invIndex, IHyracksTaskContext ctx)
@@ -153,7 +153,7 @@
             // Prune partition because no element in it can satisfy the occurrence threshold.
             // An opened cursor should be closed.
             if (partitionCursors[i].size() < occurrenceThreshold) {
-                for (InvertedListCursor cursor : partitionCursors[i]) {
+                for (IInvertedListCursor cursor : partitionCursors[i]) {
                     cursor.close();
                 }
                 continue;
@@ -244,7 +244,7 @@
                 // Prune partition because no element in it can satisfy the occurrence threshold.
                 // An opened cursor should be closed.
                 if (partitionCursors[i].size() < occurrenceThreshold) {
-                    for (InvertedListCursor cursor : partitionCursors[i]) {
+                    for (IInvertedListCursor cursor : partitionCursors[i]) {
                         cursor.close();
                     }
                     continue;
@@ -301,14 +301,14 @@
     }
 
     private void closeCursorsInPartitions(InvertedListPartitions parts) throws HyracksDataException {
-        List<InvertedListCursor>[] partCursors = parts.getPartitions();
+        List<IInvertedListCursor>[] partCursors = parts.getPartitions();
         short start = parts.getMinValidPartitionIndex();
         short end = parts.getMaxValidPartitionIndex();
         for (int i = start; i <= end; i++) {
             if (partCursors[i] == null) {
                 continue;
             }
-            for (InvertedListCursor cursor : partCursors[i]) {
+            for (IInvertedListCursor cursor : partCursors[i]) {
                 cursor.close();
             }
         }
@@ -331,7 +331,7 @@
         return fullHighSearchKey;
     }
 
-    public InvertedListCursor getCachedInvertedListCursor() throws HyracksDataException {
+    public IInvertedListCursor getCachedInvertedListCursor() throws HyracksDataException {
         return invListCursorCache.getNext();
     }
 
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/TOccurrenceSearcher.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/TOccurrenceSearcher.java
index 9808ae1..289b8d2 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/TOccurrenceSearcher.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/TOccurrenceSearcher.java
@@ -27,7 +27,7 @@
 import org.apache.hyracks.storage.am.common.api.IIndexOperationContext;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInPlaceInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearchModifier;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.common.IIndexCursor;
 
 /**
@@ -35,10 +35,12 @@
  */
 public class TOccurrenceSearcher extends AbstractTOccurrenceSearcher {
 
-    protected final ArrayList<InvertedListCursor> invListCursors = new ArrayList<>();
+    protected final ArrayList<IInvertedListCursor> invListCursors = new ArrayList<>();
+    protected InvertedListCursorFactory invertedListCursorFactory;
 
     public TOccurrenceSearcher(IInPlaceInvertedIndex invIndex, IHyracksTaskContext ctx) throws HyracksDataException {
         super(invIndex, ctx);
+        invertedListCursorFactory = new InvertedListCursorFactory(invIndex, ctx);
     }
 
     @Override
@@ -52,7 +54,7 @@
         invListCursorCache.reset();
         for (int i = 0; i < numQueryTokens; i++) {
             searchKey.reset(queryTokenAppender, i);
-            InvertedListCursor invListCursor = invListCursorCache.getNext();
+            IInvertedListCursor invListCursor = invertedListCursorFactory.create();
             invIndex.openInvertedListCursor(invListCursor, searchKey, ictx);
             invListCursors.add(invListCursor);
         }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java
index c9cd959..a9a01e9 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/InvertedIndexUtils.java
@@ -21,8 +21,10 @@
 
 import java.util.List;
 
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
 import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.api.exceptions.ErrorCode;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.io.FileReference;
 import org.apache.hyracks.api.io.IIOManager;
@@ -49,24 +51,34 @@
 import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterManager;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilderFactory;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListTupleReference;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexDiskComponentFactory;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexFileManager;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.PartitionedLSMInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.inmemory.InMemoryInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.inmemory.PartitionedInMemoryInvertedIndex;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeElementInvertedListBuilder;
-import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.FixedSizeElementInvertedListBuilderFactory;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.InvertedListBuilderFactory;
 import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.OnDiskInvertedIndexFactory;
 import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.PartitionedOnDiskInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.PartitionedOnDiskInvertedIndexFactory;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeElementInvertedListBuilder;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeInvertedListSearchResultFrameTupleAccessor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeInvertedListTupleReference;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize.VariableSizeInvertedListSearchResultFrameTupleAccessor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.variablesize.VariableSizeInvertedListTupleReference;
 import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory;
 import org.apache.hyracks.storage.common.buffercache.IBufferCache;
 import org.apache.hyracks.util.trace.ITracer;
 
 public class InvertedIndexUtils {
 
+    public static final String EXPECT_ALL_FIX_GET_VAR_SIZE =
+            "expecting all type traits to be fixed-size while getting at least one variable-length one";
+    public static final String EXPECT_VAR_GET_ALL_FIX_SIZE =
+            "expecting at least one variable-size type trait while all are fixed-size";
+
     public static InMemoryInvertedIndex createInMemoryBTreeInvertedindex(IBufferCache memBufferCache,
             IPageManager virtualFreePageManager, ITypeTraits[] invListTypeTraits,
             IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits,
@@ -148,7 +160,7 @@
                 new LSMInvertedIndexFileManager(ioManager, onDiskDirFileRef, deletedKeysBTreeFactory);
 
         IInvertedListBuilderFactory invListBuilderFactory =
-                new FixedSizeElementInvertedListBuilderFactory(invListTypeTraits);
+                new InvertedListBuilderFactory(tokenTypeTraits, invListTypeTraits);
         OnDiskInvertedIndexFactory invIndexFactory =
                 new OnDiskInvertedIndexFactory(ioManager, diskBufferCache, invListBuilderFactory, invListTypeTraits,
                         invListCmpFactories, tokenTypeTraits, tokenCmpFactories, fileManager, pageManagerFactory);
@@ -197,7 +209,7 @@
                 new LSMInvertedIndexFileManager(ioManager, onDiskDirFileRef, deletedKeysBTreeFactory);
 
         IInvertedListBuilderFactory invListBuilderFactory =
-                new FixedSizeElementInvertedListBuilderFactory(invListTypeTraits);
+                new InvertedListBuilderFactory(tokenTypeTraits, invListTypeTraits);
         PartitionedOnDiskInvertedIndexFactory invIndexFactory = new PartitionedOnDiskInvertedIndexFactory(ioManager,
                 diskBufferCache, invListBuilderFactory, invListTypeTraits, invListCmpFactories, tokenTypeTraits,
                 tokenCmpFactories, fileManager, pageManagerFactory);
@@ -220,4 +232,63 @@
                 mergePolicy, opTracker, ioScheduler, ioOpCallbackFactory, pageWriteCallbackFactory, invertedIndexFields,
                 filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, durable, tracer);
     }
+
+    public static boolean checkTypeTraitsAllFixed(ITypeTraits[] typeTraits) {
+        for (int i = 0; i < typeTraits.length; i++) {
+            if (!typeTraits[i].isFixedLength()) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public static void verifyAllFixedSizeTypeTrait(ITypeTraits[] typeTraits) throws HyracksDataException {
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(typeTraits) == false) {
+            throw HyracksDataException.create(ErrorCode.INVALID_INVERTED_LIST_TYPE_TRAITS,
+                    InvertedIndexUtils.EXPECT_ALL_FIX_GET_VAR_SIZE);
+        }
+    }
+
+    public static void verifyHasVarSizeTypeTrait(ITypeTraits[] typeTraits) throws HyracksDataException {
+        if (InvertedIndexUtils.checkTypeTraitsAllFixed(typeTraits) == true) {
+            throw HyracksDataException.create(ErrorCode.INVALID_INVERTED_LIST_TYPE_TRAITS,
+                    InvertedIndexUtils.EXPECT_VAR_GET_ALL_FIX_SIZE);
+        }
+    }
+
+    public static IInvertedListTupleReference createInvertedListTupleReference(ITypeTraits[] typeTraits)
+            throws HyracksDataException {
+        if (checkTypeTraitsAllFixed(typeTraits)) {
+            return new FixedSizeInvertedListTupleReference(typeTraits);
+        } else {
+            return new VariableSizeInvertedListTupleReference(typeTraits);
+        }
+    }
+
+    public static IFrameTupleAccessor createInvertedListFrameTupleAccessor(int frameSize, ITypeTraits[] typeTraits)
+            throws HyracksDataException {
+        if (checkTypeTraitsAllFixed(typeTraits)) {
+            return new FixedSizeInvertedListSearchResultFrameTupleAccessor(frameSize, typeTraits);
+        } else {
+            return new VariableSizeInvertedListSearchResultFrameTupleAccessor(frameSize, typeTraits);
+        }
+    }
+
+    public static void setInvertedListFrameEndOffset(byte[] bytes, int pos) {
+        int off = bytes.length - 4;
+        bytes[off++] = (byte) (pos >> 24);
+        bytes[off++] = (byte) (pos >> 16);
+        bytes[off++] = (byte) (pos >> 8);
+        bytes[off] = (byte) (pos);
+    }
+
+    public static int getInvertedListFrameEndOffset(byte[] bytes) {
+        int p = bytes.length - 4;
+        int offsetFrameEnd = 0;
+        for (int i = 0; i < 4; i++) {
+            offsetFrameEnd = (offsetFrameEnd << 8) + (bytes[p++] & 0xFF);
+        }
+
+        return offsetFrameEnd;
+    }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/IIndexCursor.java b/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/IIndexCursor.java
index 00c5dce..8414ead 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/IIndexCursor.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/IIndexCursor.java
@@ -32,6 +32,8 @@
  * --try{
  * ---while (cursor.hasNext()){
  * ----cursor.next()
+ * ----ITupleReference tuple = cursor.getTuple()
+ * ----work with tuple...
  * ---}
  * --} finally{
  * ---cursor.close();
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleTest.java
deleted file mode 100644
index c0a4e75..0000000
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/FixedSizeFrameTupleTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Random;
-
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class FixedSizeFrameTupleTest {
-
-    private static int FRAME_SIZE = 4096;
-
-    private Random rnd = new Random(50);
-
-    /**
-     * This test verifies the correct behavior of the FixedSizeFrameTuple class.
-     * Frames containing FixedSizeFrameTuple's require neither tuple slots nor
-     * field slots. The tests inserts generated data into a frame until the
-     * frame is full, and then verifies the frame's contents.
-     *
-     */
-    @Test
-    public void singleFieldTest() throws Exception {
-        ByteBuffer buffer = ByteBuffer.allocate(FRAME_SIZE);
-
-        ITypeTraits[] fields = new ITypeTraits[1];
-        fields[0] = IntegerPointable.TYPE_TRAITS;
-
-        FixedSizeFrameTupleAppender ftapp = new FixedSizeFrameTupleAppender(FRAME_SIZE, fields);
-        FixedSizeFrameTupleAccessor ftacc = new FixedSizeFrameTupleAccessor(FRAME_SIZE, fields);
-
-        boolean frameHasSpace = true;
-
-        ArrayList<Integer> check = new ArrayList<Integer>();
-
-        ftapp.reset(buffer);
-        while (frameHasSpace) {
-            int val = rnd.nextInt();
-            frameHasSpace = ftapp.append(val);
-            if (frameHasSpace) {
-                check.add(val);
-                ftapp.incrementTupleCount(1);
-            }
-        }
-
-        ftacc.reset(buffer);
-        for (int i = 0; i < ftacc.getTupleCount(); i++) {
-            int val = IntegerPointable.getInteger(ftacc.getBuffer().array(), ftacc.getTupleStartOffset(i));
-            Assert.assertEquals(check.get(i).intValue(), val);
-        }
-    }
-}
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedIndexUtilsTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedIndexUtilsTest.java
new file mode 100644
index 0000000..b004a43
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedIndexUtilsTest.java
@@ -0,0 +1,40 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils;
+import org.junit.Test;
+
+public class InvertedIndexUtilsTest {
+
+    @Test
+    public void testSetFrameEndOffset() {
+        int frameEnd = 4321;
+        byte[] bytes = new byte[1024];
+
+        InvertedIndexUtils.setInvertedListFrameEndOffset(bytes, frameEnd);
+        assert frameEnd == InvertedIndexUtils.getInvertedListFrameEndOffset(bytes);
+
+        frameEnd = 56789;
+        InvertedIndexUtils.setInvertedListFrameEndOffset(bytes, frameEnd);
+        assert frameEnd == InvertedIndexUtils.getInvertedListFrameEndOffset(bytes);
+    }
+
+}
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListTupleFrameTupleTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListTupleFrameTupleTest.java
new file mode 100644
index 0000000..0015b7a
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/InvertedListTupleFrameTupleTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.hyracks.storage.am.lsm.invertedindex.ondisk;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Random;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeInvertedListSearchResultFrameTupleAccessor;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class InvertedListTupleFrameTupleTest {
+
+    private static int FRAME_SIZE = 4096;
+
+    private Random rnd = new Random(50);
+
+    /**
+     * This test verifies the correct behavior of the FixedSizeFrameTuple class.
+     * Frames containing FixedSizeFrameTuple's require neither tuple slots nor
+     * field slots. The tests inserts generated data into a frame until the
+     * frame is full, and then verifies the frame's contents.
+     *
+     */
+    @Test
+    public void singleFieldTest() throws Exception {
+        ByteBuffer buffer = ByteBuffer.allocate(FRAME_SIZE);
+
+        ITypeTraits[] fields = new ITypeTraits[1];
+        fields[0] = IntegerPointable.TYPE_TRAITS;
+
+        InvertedListSearchResultFrameTupleAppender ftapp = new InvertedListSearchResultFrameTupleAppender(FRAME_SIZE);
+        FixedSizeInvertedListSearchResultFrameTupleAccessor ftacc =
+                new FixedSizeInvertedListSearchResultFrameTupleAccessor(FRAME_SIZE, fields);
+
+        boolean frameHasSpace = true;
+
+        ArrayList<Integer> check = new ArrayList<Integer>();
+
+        ftapp.reset(buffer);
+        while (frameHasSpace) {
+            int val = rnd.nextInt();
+            frameHasSpace = ftapp.append(val);
+            if (frameHasSpace) {
+                check.add(val);
+                ftapp.incrementTupleCount(1);
+            }
+        }
+
+        ftacc.reset(buffer);
+        for (int i = 0; i < ftacc.getTupleCount(); i++) {
+            int val = IntegerPointable.getInteger(ftacc.getBuffer().array(), ftacc.getTupleStartOffset(i));
+            Assert.assertEquals(check.get(i).intValue(), val);
+        }
+    }
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexLifecycleTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexLifecycleTest.java
index f5d12eb..0c626df 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexLifecycleTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/ondisk/OnDiskInvertedIndexLifecycleTest.java
@@ -30,6 +30,7 @@
 import org.apache.hyracks.storage.am.common.api.ITreeIndexFrame;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListBuilder;
 import org.apache.hyracks.storage.am.lsm.invertedindex.common.LSMInvertedIndexTestHarness;
+import org.apache.hyracks.storage.am.lsm.invertedindex.ondisk.fixedsize.FixedSizeElementInvertedListBuilder;
 
 public class OnDiskInvertedIndexLifecycleTest extends AbstractIndexLifecycleTest {
 
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/LSMInvertedIndexTestUtils.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/LSMInvertedIndexTestUtils.java
index 8dc9b07..a5e47b5 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/LSMInvertedIndexTestUtils.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-invertedindex-test/src/test/java/org/apache/hyracks/storage/am/lsm/invertedindex/util/LSMInvertedIndexTestUtils.java
@@ -86,7 +86,7 @@
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndex;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexAccessor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedIndexSearchModifier;
-import org.apache.hyracks.storage.am.lsm.invertedindex.api.InvertedListCursor;
+import org.apache.hyracks.storage.am.lsm.invertedindex.api.IInvertedListCursor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.common.LSMInvertedIndexTestHarness;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexAccessor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.impls.LSMInvertedIndexMergeCursor;
@@ -376,7 +376,7 @@
         ArrayTupleBuilder searchKeyBuilder = new ArrayTupleBuilder(tokenFieldCount);
         ArrayTupleReference searchKey = new ArrayTupleReference();
         // Cursor over inverted list from actual index.
-        InvertedListCursor actualInvListCursor = invIndexAccessor.createInvertedListCursor();
+        IInvertedListCursor actualInvListCursor = invIndexAccessor.createInvertedListCursor();
 
         // Helpers for generating a serialized inverted-list element from a CheckTuple from the expected index.
         ArrayTupleBuilder expectedBuilder = new ArrayTupleBuilder(fieldSerdes.length);
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
index b133894..d36c77b 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
@@ -29,6 +29,14 @@
     String userData(String text);
 
     /**
+     * Redacts statement argument.
+     *
+     * @param text statement to redact.
+     * @return redacted statement.
+     */
+    String statement(String text);
+
+    /**
      * Unredacts user data found in the argument.
      *
      * @param text text that contains some redacted user data.
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
index 89c957e..fdce8c8 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
@@ -28,6 +28,11 @@
         }
 
         @Override
+        public String statement(String text) {
+            return text;
+        }
+
+        @Override
         public String unredactUserData(String text) {
             return text;
         }
@@ -45,6 +50,10 @@
         return redactor.userData(text);
     }
 
+    public static String statement(String text) {
+        return redactor.statement(text);
+    }
+
     public static String unredactUserData(String text) {
         return redactor.unredactUserData(text);
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java
index 2b0e49e..f96ed72 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java
@@ -34,6 +34,11 @@
  */
 public class UTF8StringUtil {
 
+    public static final String LOW_SURROGATE_WITHOUT_HIGH_SURROGATE =
+            "Decoding error: got a low surrogate without a leading high surrogate";
+    public static final String HIGH_SURROGATE_WITHOUT_LOW_SURROGATE =
+            "Decoding error: got a high surrogate without a following low surrogate";
+
     private UTF8StringUtil() {
     }
 
@@ -90,6 +95,49 @@
         }
     }
 
+    public static int codePointAt(byte[] b, int s) {
+        char c1 = charAt(b, s);
+
+        if (Character.isLowSurrogate(c1)) {
+            // In this case, the index s doesn't point to a correct position
+            throw new IllegalArgumentException(LOW_SURROGATE_WITHOUT_HIGH_SURROGATE);
+        }
+
+        if (Character.isHighSurrogate(c1)) {
+            // If c1 is the a high surrogate and also the last char in the byte array (that means the byte array is somehow illegal),
+            // then an exception will be thrown because there is no low surrogate (c2) available in the byte array
+            s += charSize(b, s);
+            char c2 = charAt(b, s);
+            if (Character.isLowSurrogate(c2)) {
+                return Character.toCodePoint(c1, c2);
+            } else {
+                throw new IllegalArgumentException(HIGH_SURROGATE_WITHOUT_LOW_SURROGATE);
+            }
+        }
+
+        return c1;
+    }
+
+    public static int codePointSize(byte[] b, int s) {
+        char c1 = charAt(b, s);
+        int size1 = charSize(b, s);
+
+        if (Character.isLowSurrogate(c1)) {
+            throw new IllegalArgumentException(LOW_SURROGATE_WITHOUT_HIGH_SURROGATE);
+        }
+
+        if (Character.isHighSurrogate(c1)) {
+            // Similar to the above codePointAt(),
+            // if c1 is the a high surrogate and also the last char in the byte array (that means the byte array is somehow illegal),
+            // then an exception will be thrown because there is no low surrogate available in the byte array
+            s += size1;
+            int size2 = charSize(b, s);
+            return size1 + size2;
+        }
+
+        return size1;
+    }
+
     public static boolean isCharStart(byte[] b, int s) {
         int c = b[s] & 0xff;
         return (c >> 6) != 2;
@@ -137,9 +185,15 @@
         }
     }
 
+    // The result is the number of Java Chars (8 bytes) in the string
     public static int getStringLength(byte[] b, int s) {
         int len = getUTFLength(b, s);
         int pos = s + getNumBytesToStoreLength(len);
+        return getStringLength(b, pos, len);
+    }
+
+    public static int getStringLength(byte[] b, int offs, int len) {
+        int pos = offs;
         int end = pos + len;
         int charCount = 0;
         while (pos < end) {
@@ -149,6 +203,19 @@
         return charCount;
     }
 
+    public static int getNumCodePoint(byte[] b, int s) {
+        int len = getUTFLength(b, s);
+        int pos = s + getNumBytesToStoreLength(len);
+        int end = pos + len;
+        int codePointCount = 0;
+        while (pos < end) {
+            codePointCount++;
+            pos += codePointSize(b, pos);
+        }
+
+        return codePointCount;
+    }
+
     public static int getUTFLength(byte[] b, int s) {
         return VarLenIntEncoderDecoder.decode(b, s);
     }
@@ -157,68 +224,14 @@
         return VarLenIntEncoderDecoder.getBytesRequired(strlen);
     }
 
-    public static int UTF8ToCodePoint(byte[] b, int s) {
-        if (b[s] >> 7 == 0) {
-            // 1 byte
-            return b[s];
-        } else if ((b[s] & 0xe0) == 0xc0) { /*0xe0 = 0b1110000*/
-            // 2 bytes
-            return (b[s] & 0x1f) << 6 | /*0x3f = 0b00111111*/
-                    (b[s + 1] & 0x3f);
-        } else if ((b[s] & 0xf0) == 0xe0) {
-            // 3bytes
-            return (b[s] & 0xf) << 12 | (b[s + 1] & 0x3f) << 6 | (b[s + 2] & 0x3f);
-        } else if ((b[s] & 0xf8) == 0xf0) {
-            // 4bytes
-            return (b[s] & 0x7) << 18 | (b[s + 1] & 0x3f) << 12 | (b[s + 2] & 0x3f) << 6 | (b[s + 3] & 0x3f);
-        } else if ((b[s] & 0xfc) == 0xf8) {
-            // 5bytes
-            return (b[s] & 0x3) << 24 | (b[s + 1] & 0x3f) << 18 | (b[s + 2] & 0x3f) << 12 | (b[s + 3] & 0x3f) << 6
-                    | (b[s + 4] & 0x3f);
-        } else if ((b[s] & 0xfe) == 0xfc) {
-            // 6bytes
-            return (b[s] & 0x1) << 30 | (b[s + 1] & 0x3f) << 24 | (b[s + 2] & 0x3f) << 18 | (b[s + 3] & 0x3f) << 12
-                    | (b[s + 4] & 0x3f) << 6 | (b[s + 5] & 0x3f);
+    public static int codePointToUTF8(int codePoint, char[] tempChars, byte[] outputUTF8) {
+        int len = 0;
+        int numChars = Character.toChars(codePoint, tempChars, 0);
+        for (int i = 0; i < numChars; i++) {
+            len += writeToBytes(outputUTF8, len, tempChars[i]);
         }
-        return 0;
-    }
 
-    public static int codePointToUTF8(int c, byte[] outputUTF8) {
-        if (c < 0x80) {
-            outputUTF8[0] = (byte) (c & 0x7F /* mask 7 lsb: 0b1111111 */);
-            return 1;
-        } else if (c < 0x0800) {
-            outputUTF8[0] = (byte) (c >> 6 & 0x1F | 0xC0);
-            outputUTF8[1] = (byte) (c & 0x3F | 0x80);
-            return 2;
-        } else if (c < 0x010000) {
-            outputUTF8[0] = (byte) (c >> 12 & 0x0F | 0xE0);
-            outputUTF8[1] = (byte) (c >> 6 & 0x3F | 0x80);
-            outputUTF8[2] = (byte) (c & 0x3F | 0x80);
-            return 3;
-        } else if (c < 0x200000) {
-            outputUTF8[0] = (byte) (c >> 18 & 0x07 | 0xF0);
-            outputUTF8[1] = (byte) (c >> 12 & 0x3F | 0x80);
-            outputUTF8[2] = (byte) (c >> 6 & 0x3F | 0x80);
-            outputUTF8[3] = (byte) (c & 0x3F | 0x80);
-            return 4;
-        } else if (c < 0x4000000) {
-            outputUTF8[0] = (byte) (c >> 24 & 0x03 | 0xF8);
-            outputUTF8[1] = (byte) (c >> 18 & 0x3F | 0x80);
-            outputUTF8[2] = (byte) (c >> 12 & 0x3F | 0x80);
-            outputUTF8[3] = (byte) (c >> 6 & 0x3F | 0x80);
-            outputUTF8[4] = (byte) (c & 0x3F | 0x80);
-            return 5;
-        } else if (c < 0x80000000) {
-            outputUTF8[0] = (byte) (c >> 30 & 0x01 | 0xFC);
-            outputUTF8[1] = (byte) (c >> 24 & 0x3F | 0x80);
-            outputUTF8[2] = (byte) (c >> 18 & 0x3F | 0x80);
-            outputUTF8[3] = (byte) (c >> 12 & 0x3F | 0x80);
-            outputUTF8[4] = (byte) (c >> 6 & 0x3F | 0x80);
-            outputUTF8[5] = (byte) (c & 0x3F | 0x80);
-            return 6;
-        }
-        return 0;
+        return len;
     }
 
     /**
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringSample.java b/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringSample.java
index 6984d75..b114351 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringSample.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringSample.java
@@ -39,6 +39,10 @@
     public static final String STRING_UTF8_MIX_LOWERCASE = "\uD841\uDF0E\uD841\uDF31锟x斤y拷zà";
     public static final String STRING_NEEDS_2_JAVA_CHARS_1 = "\uD83D\uDE22\uD83D\uDE22\uD83D\uDC89\uD83D\uDC89";
     public static final String STRING_NEEDS_2_JAVA_CHARS_2 = "😢😢💉💉";
+    public static final String STRING_EMOJI_FAMILY_OF_4 =
+            "\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66";
+    public static final String STRING_EMOJI_FAMILY_OF_2 = "\uD83D\uDC68\u200D\uD83D\uDC66";
+    public static final String EMOJI_BASKETBALL = "\uD83C\uDFC0";
 
     public static final String STRING_LEN_127 = generateStringRepeatBy(ONE_ASCII_CHAR, 127);
     public static final String STRING_LEN_128 = generateStringRepeatBy(ONE_ASCII_CHAR, 128);
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringUtilTest.java b/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringUtilTest.java
index 2c99104..c7468d2 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringUtilTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/string/UTF8StringUtilTest.java
@@ -30,6 +30,7 @@
 import static org.apache.hyracks.util.string.UTF8StringUtil.compareTo;
 import static org.apache.hyracks.util.string.UTF8StringUtil.getModifiedUTF8Len;
 import static org.apache.hyracks.util.string.UTF8StringUtil.getNumBytesToStoreLength;
+import static org.apache.hyracks.util.string.UTF8StringUtil.getNumCodePoint;
 import static org.apache.hyracks.util.string.UTF8StringUtil.getStringLength;
 import static org.apache.hyracks.util.string.UTF8StringUtil.getUTF8StringInArray;
 import static org.apache.hyracks.util.string.UTF8StringUtil.getUTFLength;
@@ -176,4 +177,13 @@
         assertEquals("23333", getUTF8StringInArray(bytes, 52, 5));
     }
 
+    @Test
+    public void testGetNumCodePoint() {
+        String str = "\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66";
+        assertEquals(getNumCodePoint(writeStringToBytes(str), 0), 7);
+
+        str = "\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66\uD83C\uDDE8\uD83C\uDDF3";
+        assertEquals(getNumCodePoint(writeStringToBytes(str), 0), 9);
+    }
+
 }
diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml
index aabf956..bb20422 100644
--- a/hyracks-fullstack/pom.xml
+++ b/hyracks-fullstack/pom.xml
@@ -306,6 +306,11 @@
         <version>3.6.3</version>
       </dependency>
       <dependency>
+        <groupId>it.unimi.dsi</groupId>
+        <artifactId>fastutil</artifactId>
+        <version>8.3.0</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-1.2-api</artifactId>
         <version>2.13.1</version>
