diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractComplexExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractComplexExpectedSchemaNode.java
index 7b26cf6..34ff582 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractComplexExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractComplexExpectedSchemaNode.java
@@ -18,13 +18,14 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 
 public abstract class AbstractComplexExpectedSchemaNode extends AbstractExpectedSchemaNode {
 
-    AbstractComplexExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
-        super(parent, sourceLocation, functionName);
+    AbstractComplexExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
+        super(parent, parentExpression, expression);
     }
 
     @Override
@@ -33,8 +34,8 @@
     }
 
     @Override
-    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType, SourceLocation sourceLocation,
-            String functionName) {
+    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
         //If no change is required, return the same node
         IExpectedSchemaNode node = this;
         if (expectedNodeType == ExpectedSchemaNodeType.ANY) {
@@ -47,7 +48,7 @@
              * In this case, we first saw (t.hashtags[*].text), but the next expression (t.hashtags) requested
              * the entire hashtags. So, the expected type for hashtags should be ANY
              */
-            node = new AnyExpectedSchemaNode(getParent(), getSourceLocation(), getFunctionName(), false);
+            node = new AnyExpectedSchemaNode(getParent(), getParentExpression(), false);
             getParent().replaceChild(this, node);
         } else if (expectedNodeType != getType()) {
             /*
@@ -56,8 +57,7 @@
              */
 
             //Create UNION node and its parent is the parent of this
-            UnionExpectedSchemaNode unionSchemaNode =
-                    new UnionExpectedSchemaNode(getParent(), getSourceLocation(), getFunctionName());
+            UnionExpectedSchemaNode unionSchemaNode = new UnionExpectedSchemaNode(getParent(), getParentExpression());
 
             //Add this as a child of UNION
             unionSchemaNode.addChild(this);
@@ -78,7 +78,7 @@
              * Before: UNION <-- this
              * After:  UNION <-- (this, newChild)
              */
-            unionSchemaNode.createChild(expectedNodeType, sourceLocation, functionName);
+            unionSchemaNode.createChild(expectedNodeType, parentExpression, expression);
             node = unionSchemaNode;
         }
         return node;
@@ -105,15 +105,23 @@
                 || newType == ExpectedSchemaNodeType.UNION || !newNode.allowsReplacing());
     }
 
+    /**
+     * @return true if {@code newNode} is a replaceable {@link ExpectedSchemaNodeType#ANY} node, false otherwise
+     */
+    protected boolean isReplaceableAny(IExpectedSchemaNode newNode) {
+        return newNode.getType() == ExpectedSchemaNodeType.ANY && newNode.allowsReplacing();
+    }
+
     public static AbstractComplexExpectedSchemaNode createNestedNode(ExpectedSchemaNodeType type,
-            AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation, String functionName) {
+            AbstractComplexExpectedSchemaNode parent, AbstractFunctionCallExpression parentExpression,
+            ILogicalExpression myExpr) {
         switch (type) {
             case ARRAY:
-                return new ArrayExpectedSchemaNode(parent, sourceLocation, functionName);
+                return new ArrayExpectedSchemaNode(parent, parentExpression, myExpr);
             case OBJECT:
-                return new ObjectExpectedSchemaNode(parent, sourceLocation, functionName);
+                return new ObjectExpectedSchemaNode(parent, parentExpression, myExpr);
             case UNION:
-                return new UnionExpectedSchemaNode(parent, sourceLocation, functionName);
+                return new UnionExpectedSchemaNode(parent, parentExpression);
             default:
                 throw new IllegalStateException(type + " is not nested or unknown");
         }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractExpectedSchemaNode.java
index b895781..379fea3 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AbstractExpectedSchemaNode.java
@@ -18,18 +18,21 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 
 abstract class AbstractExpectedSchemaNode implements IExpectedSchemaNode {
+    protected final AbstractFunctionCallExpression parentExpression;
+    protected final ILogicalExpression expression;
     private AbstractComplexExpectedSchemaNode parent;
-    private final SourceLocation sourceLocation;
-    private final String functionName;
 
-    AbstractExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
+    AbstractExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
+        this.parentExpression = parentExpression;
+        this.expression = expression;
         this.parent = parent;
-        this.sourceLocation = sourceLocation;
-        this.functionName = functionName;
     }
 
     @Override
@@ -39,12 +42,25 @@
 
     @Override
     public final SourceLocation getSourceLocation() {
-        return sourceLocation;
+        return expression.getSourceLocation();
     }
 
     @Override
     public final String getFunctionName() {
-        return functionName;
+        if (expression.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
+            return ((AbstractFunctionCallExpression) expression).getFunctionIdentifier().getName();
+        }
+        return null;
+    }
+
+    @Override
+    public AbstractFunctionCallExpression getParentExpression() {
+        return parentExpression;
+    }
+
+    @Override
+    public ILogicalExpression getExpression() {
+        return expression;
     }
 
     @Override
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AnyExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AnyExpectedSchemaNode.java
index 80069e3..fc3046b 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AnyExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/AnyExpectedSchemaNode.java
@@ -18,20 +18,22 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import static org.apache.asterix.optimizer.rules.pushdown.schema.AbstractComplexExpectedSchemaNode.createNestedNode;
+
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 
 public class AnyExpectedSchemaNode extends AbstractExpectedSchemaNode {
     private boolean replaceable;
 
-    public AnyExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
-        super(parent, sourceLocation, functionName);
+    public AnyExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, AbstractFunctionCallExpression expression) {
+        super(parent, expression, expression);
         replaceable = true;
     }
 
-    protected AnyExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName, boolean replaceable) {
-        super(parent, sourceLocation, functionName);
+    protected AnyExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, AbstractFunctionCallExpression expression,
+            boolean replaceable) {
+        super(parent, expression, expression);
         this.replaceable = replaceable;
     }
 
@@ -45,8 +47,8 @@
     }
 
     @Override
-    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType, SourceLocation sourceLocation,
-            String functionName) {
+    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
         if (expectedNodeType == ExpectedSchemaNodeType.ANY) {
             return this;
         }
@@ -57,8 +59,8 @@
          * the given nested type.
          */
         AbstractComplexExpectedSchemaNode parent = getParent();
-        AbstractComplexExpectedSchemaNode nestedNode = AbstractComplexExpectedSchemaNode
-                .createNestedNode(expectedNodeType, parent, getSourceLocation(), functionName);
+        AbstractComplexExpectedSchemaNode nestedNode =
+                createNestedNode(expectedNodeType, parent, this.parentExpression, expression);
         return parent.replaceChild(this, nestedNode);
     }
 
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ArrayExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ArrayExpectedSchemaNode.java
index 57e0d98..b8135b7 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ArrayExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ArrayExpectedSchemaNode.java
@@ -18,14 +18,15 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 
 public class ArrayExpectedSchemaNode extends AbstractComplexExpectedSchemaNode {
     private IExpectedSchemaNode child;
 
-    public ArrayExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
-        super(parent, sourceLocation, functionName);
+    public ArrayExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
+        super(parent, parentExpression, expression);
     }
 
     @Override
@@ -48,8 +49,8 @@
 
     @Override
     public IExpectedSchemaNode replaceChild(IExpectedSchemaNode oldNode, IExpectedSchemaNode newNode) {
-        if (child.getType() == newNode.getType()) {
-            // We are trying to replace with the same node type
+        if (child.getType() == newNode.getType() || isReplaceableAny(newNode)) {
+            // We are trying to replace with the same node type, or with a replaceable any, ignore.
             return child;
         } else if (isChildReplaceable(child, newNode)) {
             child = newNode;
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ExpectedSchemaBuilder.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ExpectedSchemaBuilder.java
index d42ffed..e442d64 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ExpectedSchemaBuilder.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ExpectedSchemaBuilder.java
@@ -59,8 +59,7 @@
         //Parent always nested
         AbstractComplexExpectedSchemaNode parent = (AbstractComplexExpectedSchemaNode) buildNestedNode(expr, typeEnv);
         if (parent != null) {
-            IExpectedSchemaNode leaf =
-                    new AnyExpectedSchemaNode(parent, expr.getSourceLocation(), expr.getFunctionIdentifier().getName());
+            IExpectedSchemaNode leaf = new AnyExpectedSchemaNode(parent, expr);
             IExpectedSchemaNode actualNode = addOrReplaceChild(expr, typeEnv, parent, leaf);
             if (producedVar != null) {
                 //Register the node if a variable is produced
@@ -84,8 +83,9 @@
             varToNode.put(variable, RootExpectedSchemaNode.ALL_FIELDS_ROOT_IRREPLACEABLE_NODE);
         } else {
             // If it is a nested node, replace it to a LEAF node
-            AnyExpectedSchemaNode leafNode = (AnyExpectedSchemaNode) node.replaceIfNeeded(ExpectedSchemaNodeType.ANY,
-                    parent.getSourceLocation(), parent.getFunctionName());
+            // Both expressions are null as they're the node isn't used anymore and the node ANY is not replaceable
+            AnyExpectedSchemaNode leafNode =
+                    (AnyExpectedSchemaNode) node.replaceIfNeeded(ExpectedSchemaNodeType.ANY, null, null);
             // make the leaf node irreplaceable
             leafNode.preventReplacing();
             varToNode.put(variable, leafNode);
@@ -118,7 +118,7 @@
         if (isVariable(parentExpr)) {
             //A variable could be the record's originated from data-scan or an expression from assign
             LogicalVariable sourceVar = VariableUtilities.getVariable(parentExpr);
-            return changeNodeForVariable(sourceVar, myExpr);
+            return changeNodeForVariable(sourceVar, myExpr, myExpr);
         }
 
         //Recursively create the parent nodes. Parent is always a nested node
@@ -134,8 +134,8 @@
              * Create 'myNode'. It is a nested node because the function is either getField() or a supported array
              * function
              */
-            AbstractComplexExpectedSchemaNode myNode = AbstractComplexExpectedSchemaNode.createNestedNode(myType,
-                    newParent, myExpr.getSourceLocation(), myExpr.getFunctionIdentifier().getName());
+            AbstractComplexExpectedSchemaNode myNode =
+                    AbstractComplexExpectedSchemaNode.createNestedNode(myType, newParent, parentFuncExpr, myExpr);
             // Add (or replace old child with) myNode to the parent
             return addOrReplaceChild(parentFuncExpr, typeEnv, newParent, myNode);
         }
@@ -148,7 +148,7 @@
     }
 
     private IExpectedSchemaNode changeNodeForVariable(LogicalVariable sourceVar,
-            AbstractFunctionCallExpression myExpr) {
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
         //Get the associated node with the sourceVar (if any)
         IExpectedSchemaNode oldNode = varToNode.get(sourceVar);
         if (oldNode == null || !oldNode.allowsReplacing()) {
@@ -157,10 +157,9 @@
             return null;
         }
         //What is the expected type of the variable
-        ExpectedSchemaNodeType varExpectedType = getExpectedNestedNodeType(myExpr);
+        ExpectedSchemaNodeType varExpectedType = getExpectedNestedNodeType(parentExpression);
         // Get the node associated with the variable (or change its type if needed).
-        IExpectedSchemaNode newNode = oldNode.replaceIfNeeded(varExpectedType, myExpr.getSourceLocation(),
-                myExpr.getFunctionIdentifier().getName());
+        IExpectedSchemaNode newNode = oldNode.replaceIfNeeded(varExpectedType, parentExpression, expression);
         //Map the sourceVar to the node
         varToNode.put(sourceVar, newNode);
         return newNode;
@@ -195,11 +194,12 @@
     private static IExpectedSchemaNode handleObject(AbstractFunctionCallExpression parentExpr,
             IVariableTypeEnvironment typeEnv, AbstractComplexExpectedSchemaNode parent, IExpectedSchemaNode child)
             throws AlgebricksException {
+        int fieldNameId = PushdownUtil.getFieldNameId(parentExpr);
         String fieldName = PushdownUtil.getFieldName(parentExpr, typeEnv);
         ObjectExpectedSchemaNode objectNode = (ObjectExpectedSchemaNode) parent;
         IExpectedSchemaNode actualChild = objectNode.getChildren().get(fieldName);
         if (actualChild == null) {
-            objectNode.addChild(fieldName, child);
+            objectNode.addChild(fieldName, fieldNameId, child);
             actualChild = child;
         } else {
             actualChild = objectNode.replaceChild(actualChild, child);
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/IExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/IExpectedSchemaNode.java
index 345cb84..decafec 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/IExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/IExpectedSchemaNode.java
@@ -18,7 +18,8 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
-import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import org.apache.hyracks.api.exceptions.SourceLocation;
 
 /**
@@ -42,11 +43,21 @@
     String getFunctionName();
 
     /**
+     * @return function expression of which determined the type of the parent node
+     */
+    AbstractFunctionCallExpression getParentExpression();
+
+    /**
      * @return the parent of a node
      */
     AbstractComplexExpectedSchemaNode getParent();
 
     /**
+     * @return this node's expression
+     */
+    ILogicalExpression getExpression();
+
+    /**
      * Set parent of a node
      *
      * @param parent new parent
@@ -75,11 +86,11 @@
      * - {@link ExpectedSchemaNodeType#OBJECT} to {@link ExpectedSchemaNodeType#UNION}
      *
      * @param expectedNodeType what is the other expected type
-     * @param sourceLocation   source location of the value access
-     * @param functionName     function name as in {@link FunctionIdentifier#getName()}
-     * @see AbstractComplexExpectedSchemaNode#replaceIfNeeded(ExpectedSchemaNodeType, SourceLocation, String)
-     * @see UnionExpectedSchemaNode#replaceIfNeeded(ExpectedSchemaNodeType, SourceLocation, String)
+     * @param parentExpression parent expression
+     * @param expression       this node's expression
+     * @see IExpectedSchemaNode#replaceIfNeeded(ExpectedSchemaNodeType, AbstractFunctionCallExpression, ILogicalExpression)
+     * @see IExpectedSchemaNode#replaceIfNeeded(ExpectedSchemaNodeType, AbstractFunctionCallExpression, ILogicalExpression)
      */
-    IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType, SourceLocation sourceLocation,
-            String functionName);
+    IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression);
 }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ObjectExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ObjectExpectedSchemaNode.java
index aa48e60..e220437 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ObjectExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/ObjectExpectedSchemaNode.java
@@ -21,27 +21,43 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.asterix.metadata.utils.PushdownUtil;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
 
 public class ObjectExpectedSchemaNode extends AbstractComplexExpectedSchemaNode {
     private final Map<String, IExpectedSchemaNode> children;
+    private final Int2ObjectMap<String> fieldIdToFieldName;
 
-    public ObjectExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
-        super(parent, sourceLocation, functionName);
+    public ObjectExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
+        super(parent, parentExpression, expression);
         children = new HashMap<>();
+        fieldIdToFieldName = new Int2ObjectOpenHashMap<>();
     }
 
     public boolean isRoot() {
         return false;
     }
 
-    public Map<String, IExpectedSchemaNode> getChildren() {
-        return children;
+    public void addChild(String fieldName, int fieldId, IExpectedSchemaNode child) {
+        FunctionIdentifier fid = child.getParentExpression().getFunctionIdentifier();
+        children.put(fieldName, child);
+        if (fieldId > -1) {
+            fieldIdToFieldName.put(fieldId, fieldName);
+        }
     }
 
-    public void addChild(String fieldName, IExpectedSchemaNode child) {
-        children.put(fieldName, child);
+    public void addAllFieldNameIds(ObjectExpectedSchemaNode node) {
+        fieldIdToFieldName.putAll(node.fieldIdToFieldName);
+    }
+
+    public Map<String, IExpectedSchemaNode> getChildren() {
+        return children;
     }
 
     @Override
@@ -58,8 +74,8 @@
     public IExpectedSchemaNode replaceChild(IExpectedSchemaNode oldNode, IExpectedSchemaNode newNode) {
         String fieldName = getChildFieldName(oldNode);
         IExpectedSchemaNode child = children.get(fieldName);
-        if (child.getType() == newNode.getType()) {
-            // We are trying to replace with the same node type
+        if (child.getType() == newNode.getType() || isReplaceableAny(newNode)) {
+            // We are trying to replace with the same node type, or with a replaceable any, ignore.
             return child;
         } else if (isChildReplaceable(child, newNode)) {
             children.replace(fieldName, newNode);
@@ -71,18 +87,13 @@
     }
 
     public String getChildFieldName(IExpectedSchemaNode requestedChild) {
-        String key = null;
-        for (Map.Entry<String, IExpectedSchemaNode> child : children.entrySet()) {
-            if (child.getValue() == requestedChild) {
-                key = child.getKey();
-                break;
-            }
+        AbstractFunctionCallExpression expr = requestedChild.getParentExpression();
+        int fieldNameId = PushdownUtil.getFieldNameId(requestedChild.getParentExpression());
+
+        if (fieldNameId > -1) {
+            return fieldIdToFieldName.get(fieldNameId);
         }
 
-        if (key == null) {
-            //this should not happen
-            throw new IllegalStateException("Node " + requestedChild.getType() + " is not a child");
-        }
-        return key;
+        return PushdownUtil.getFieldName(expr);
     }
 }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/RootExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/RootExpectedSchemaNode.java
index 72c5c52..e72e997 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/RootExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/RootExpectedSchemaNode.java
@@ -18,7 +18,8 @@
  */
 package org.apache.asterix.optimizer.rules.pushdown.schema;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 
 public class RootExpectedSchemaNode extends ObjectExpectedSchemaNode {
     //Root with zero fields
@@ -56,7 +57,7 @@
 
     @Override
     public AbstractComplexExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType,
-            SourceLocation sourceLocation, String functionName) {
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
         if (rootType == ALL_FIELDS_ROOT) {
             //ALL_FIELDS_ROOT. Return a new CLIPPED_ROOT root
             return new RootExpectedSchemaNode();
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/UnionExpectedSchemaNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/UnionExpectedSchemaNode.java
index af6d2be..a15e359 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/UnionExpectedSchemaNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/schema/UnionExpectedSchemaNode.java
@@ -22,14 +22,15 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 
 public class UnionExpectedSchemaNode extends AbstractComplexExpectedSchemaNode {
     private final Map<ExpectedSchemaNodeType, AbstractComplexExpectedSchemaNode> children;
 
-    public UnionExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent, SourceLocation sourceLocation,
-            String functionName) {
-        super(parent, sourceLocation, functionName);
+    public UnionExpectedSchemaNode(AbstractComplexExpectedSchemaNode parent,
+            AbstractFunctionCallExpression expression) {
+        super(parent, expression, expression);
         children = new EnumMap<>(ExpectedSchemaNodeType.class);
     }
 
@@ -46,8 +47,13 @@
         children.put(node.getType(), node);
     }
 
-    public void createChild(ExpectedSchemaNodeType nodeType, SourceLocation sourceLocation, String functionName) {
-        children.computeIfAbsent(nodeType, k -> createNestedNode(k, this, sourceLocation, functionName));
+    public void createChild(ExpectedSchemaNodeType nodeType, AbstractFunctionCallExpression parentExpression,
+            ILogicalExpression expression) {
+        if (parentExpression == null) {
+            // Should never happen
+            throw new NullPointerException("expression is null");
+        }
+        children.computeIfAbsent(nodeType, k -> createNestedNode(k, this, parentExpression, expression));
     }
 
     public AbstractComplexExpectedSchemaNode getChild(ExpectedSchemaNodeType type) {
@@ -73,15 +79,15 @@
      * UNION type - we simply return this. In case we want to fallback to ANY node, we call the super method.
      *
      * @param expectedNodeType the expected type
-     * @param sourceLocation   source location of the value access
-     * @param functionName     function name of the expression
+     * @param parentExpression
+     * @param expression
      * @return ANY or this
      */
     @Override
-    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType, SourceLocation sourceLocation,
-            String functionName) {
+    public IExpectedSchemaNode replaceIfNeeded(ExpectedSchemaNodeType expectedNodeType,
+            AbstractFunctionCallExpression parentExpression, ILogicalExpression expression) {
         if (expectedNodeType == ExpectedSchemaNodeType.ANY) {
-            return super.replaceIfNeeded(expectedNodeType, sourceLocation, functionName);
+            return super.replaceIfNeeded(expectedNodeType, parentExpression, expression);
         }
         return this;
     }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpectedSchemaMergerVisitor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpectedSchemaMergerVisitor.java
index d9ab052..09046b2 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpectedSchemaMergerVisitor.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpectedSchemaMergerVisitor.java
@@ -70,19 +70,23 @@
 
         // combine
         RootExpectedSchemaNode mergedRoot = (RootExpectedSchemaNode) RootExpectedSchemaNode.ALL_FIELDS_ROOT_NODE
-                .replaceIfNeeded(ExpectedSchemaNodeType.OBJECT, node.getSourceLocation(), node.getFunctionName());
+                .replaceIfNeeded(ExpectedSchemaNodeType.OBJECT, null, null);
         mergeObjectFields(mergedRoot, node.getChildren(), argRoot.getChildren());
+        mergedRoot.addAllFieldNameIds(node);
+        mergedRoot.addAllFieldNameIds(argRoot);
         return mergedRoot;
     }
 
     @Override
     public IExpectedSchemaNode visit(ObjectExpectedSchemaNode node, IExpectedSchemaNode arg) {
         ObjectExpectedSchemaNode mergedObject =
-                new ObjectExpectedSchemaNode(currentParent, node.getSourceLocation(), node.getFunctionName());
+                new ObjectExpectedSchemaNode(currentParent, node.getParentExpression(), node.getExpression());
         Map<String, IExpectedSchemaNode> argChildren = Collections.emptyMap();
+        mergedObject.addAllFieldNameIds(node);
         if (arg != null) {
             ObjectExpectedSchemaNode argObject = (ObjectExpectedSchemaNode) arg;
             argChildren = argObject.getChildren();
+            mergedObject.addAllFieldNameIds(argObject);
         }
 
         mergeObjectFields(mergedObject, node.getChildren(), argChildren);
@@ -99,7 +103,7 @@
             argItem = arrayArg.getChild();
         }
         ArrayExpectedSchemaNode mergedArray =
-                new ArrayExpectedSchemaNode(currentParent, node.getSourceLocation(), node.getFunctionName());
+                new ArrayExpectedSchemaNode(currentParent, node.getParentExpression(), node.getExpression());
         AbstractComplexExpectedSchemaNode previousParent = currentParent;
         currentParent = mergedArray;
         IExpectedSchemaNode mergedItem = merge(nodeItem, argItem);
@@ -111,8 +115,7 @@
 
     @Override
     public IExpectedSchemaNode visit(UnionExpectedSchemaNode node, IExpectedSchemaNode arg) {
-        UnionExpectedSchemaNode union =
-                new UnionExpectedSchemaNode(currentParent, node.getSourceLocation(), node.getFunctionName());
+        UnionExpectedSchemaNode union = new UnionExpectedSchemaNode(currentParent, node.getParentExpression());
         AbstractComplexExpectedSchemaNode previousParent = currentParent;
         currentParent = union;
 
@@ -148,7 +151,7 @@
 
     @Override
     public IExpectedSchemaNode visit(AnyExpectedSchemaNode node, IExpectedSchemaNode arg) {
-        return new AnyExpectedSchemaNode(currentParent, node.getSourceLocation(), node.getFunctionName());
+        return new AnyExpectedSchemaNode(currentParent, node.getParentExpression());
     }
 
     private void mergeObjectFields(ObjectExpectedSchemaNode objectNode, Map<String, IExpectedSchemaNode> left,
@@ -170,7 +173,7 @@
             }
             IExpectedSchemaNode rightChild = right.get(fieldName);
             IExpectedSchemaNode mergedChild = merge(leftChild.getValue(), rightChild);
-            objectNode.addChild(fieldName, mergedChild);
+            objectNode.addChild(fieldName, -1, mergedChild);
             mergedFields.add(fieldName);
         }
     }
@@ -196,8 +199,7 @@
     }
 
     private IExpectedSchemaNode createUnionNode(IExpectedSchemaNode leftChild, IExpectedSchemaNode rightChild) {
-        UnionExpectedSchemaNode union =
-                new UnionExpectedSchemaNode(currentParent, leftChild.getSourceLocation(), leftChild.getFunctionName());
+        UnionExpectedSchemaNode union = new UnionExpectedSchemaNode(currentParent, leftChild.getParentExpression());
         AbstractComplexExpectedSchemaNode previousParent = currentParent;
         currentParent = union;
         // Create a copy of leftChild
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpressionToExpectedSchemaNodeVisitor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpressionToExpectedSchemaNodeVisitor.java
index cccc936..0ef81aa 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpressionToExpectedSchemaNodeVisitor.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/visitor/ExpressionToExpectedSchemaNodeVisitor.java
@@ -111,8 +111,7 @@
         }
 
         AbstractComplexExpectedSchemaNode newParent = replaceIfNeeded(parent, expr);
-        IExpectedSchemaNode myNode =
-                new AnyExpectedSchemaNode(newParent, expr.getSourceLocation(), expr.getFunctionIdentifier().getName());
+        IExpectedSchemaNode myNode = new AnyExpectedSchemaNode(newParent, expr);
         ExpectedSchemaBuilder.addOrReplaceChild(expr, typeEnv, newParent, myNode);
         return myNode;
     }
@@ -120,7 +119,6 @@
     private AbstractComplexExpectedSchemaNode replaceIfNeeded(IExpectedSchemaNode parent,
             AbstractFunctionCallExpression funcExpr) {
         ExpectedSchemaNodeType expectedType = ExpectedSchemaBuilder.getExpectedNestedNodeType(funcExpr);
-        return (AbstractComplexExpectedSchemaNode) parent.replaceIfNeeded(expectedType, parent.getSourceLocation(),
-                parent.getFunctionName());
+        return (AbstractComplexExpectedSchemaNode) parent.replaceIfNeeded(expectedType, funcExpr, funcExpr);
     }
 }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ActiveRequestsServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ActiveRequestsServlet.java
index 7e00e9a..3f1845e 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ActiveRequestsServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ActiveRequestsServlet.java
@@ -55,7 +55,7 @@
     protected void delete(IServletRequest request, IServletResponse response) throws IOException {
         String uuid = request.getParameter(REQUEST_UUID_PARAM_NAME);
         String clientCtxId = request.getParameter(Parameter.CLIENT_ID.str());
-        LOGGER.debug("received cancel request, uuid={}, clientCtxId={}", uuid, clientCtxId);
+        LOGGER.info("received cancel request, uuid={}, clientContextId={}", uuid, clientCtxId);
         if (uuid == null && clientCtxId == null) {
             response.setStatus(HttpResponseStatus.BAD_REQUEST);
             return;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ResultPrinter.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ResultPrinter.java
index 2602917..35b4866 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ResultPrinter.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ResultPrinter.java
@@ -54,11 +54,11 @@
     private final Stats stats;
     private final ARecordType recordType;
 
-    private boolean indentJSON;
-    private boolean quoteRecord;
+    private final boolean indentJSON;
+    private final boolean quoteRecord;
 
     // Whether we are wrapping the output sequence in an array
-    private boolean wrapArray = false;
+    private final boolean wrapArray;
     // Whether this is the first instance being output
     private boolean notFirst = false;
 
@@ -72,6 +72,7 @@
         this.recordType = recordType;
         this.indentJSON = conf.is(SessionConfig.FORMAT_INDENT_JSON);
         this.quoteRecord = conf.is(SessionConfig.FORMAT_QUOTE_RECORD);
+        this.wrapArray = conf.is(SessionConfig.FORMAT_WRAPPER_ARRAY);
         this.resultDisplayFrameMgr = new FrameManager(appCtx.getCompilerProperties().getFrameSize());
         if (indentJSON) {
             this.om = new ObjectMapper();
@@ -106,7 +107,6 @@
                 notfirst = true;
                 app.append('"').append(name.replace("\"", "\"\"")).append('"');
             }
-            app.append("\r\n");
         } catch (IOException e) {
             throw HyracksDataException.create(e);
         }
@@ -126,9 +126,8 @@
             throw HyracksDataException.create(e);
         }
 
-        if (conf.is(SessionConfig.FORMAT_WRAPPER_ARRAY)) {
+        if (wrapArray) {
             output.out().print("[ ");
-            wrapArray = true;
         }
 
         if (conf.fmt() == SessionConfig.OutputFormat.CSV && conf.is(SessionConfig.FORMAT_CSV_HEADER)) {
@@ -139,11 +138,13 @@
                 StringWriter sw = new StringWriter();
                 appendCSVHeader(sw, recordType);
                 output.out().print(JSONUtil.quoteAndEscape(sw.toString()));
-                output.out().print("\n");
-                notFirst = true;
             } else {
                 appendCSVHeader(output.out(), recordType);
             }
+            if (!wrapArray) {
+                output.out().println();
+            }
+            notFirst = true;
         }
     }
 
@@ -173,10 +174,6 @@
                 record = result;
             }
         }
-        if (conf.fmt() == SessionConfig.OutputFormat.CSV) {
-            // TODO(tillw): this is inefficient as well
-            record = record + "\r\n";
-        }
         if (quoteRecord) {
             // TODO(tillw): this is inefficient as well
             record = JSONUtil.quoteAndEscape(record);
@@ -210,16 +207,15 @@
                 for (int tIndex = 0; tIndex < last; tIndex++) {
                     final int start = fta.getTupleStartOffset(tIndex);
                     int length = fta.getTupleEndOffset(tIndex) - start;
-                    if (conf.fmt() == SessionConfig.OutputFormat.CSV
-                            && ((length > 0) && (frameBytes[start + length - 1] == '\n'))) {
-                        length--;
-                    }
                     String result = new String(frameBytes, start, length, UTF_8);
                     if (wrapArray && notFirst) {
-                        output.out().print(", ");
+                        output.out().print(',');
                     }
                     notFirst = true;
                     displayRecord(result);
+                    if (!wrapArray) {
+                        output.out().println();
+                    }
                 }
                 frameBuffer.clear();
             }
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
index 05b8bbf..ac85052 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
@@ -219,6 +219,7 @@
         }
 
         final boolean isJsonFormat = isJsonFormat(fmt);
+        boolean firstResult = true;
 
         // if we have errors field in the results, we will always return it
         checkForErrors(result);
@@ -235,6 +236,10 @@
             final JsonNode fieldValue = result.get(fieldName);
             switch (fieldKind) {
                 case RESULTS:
+                    if (!firstResult) {
+                        resultBuilder.append('\n');
+                    }
+                    firstResult = false;
                     if (fieldValue.size() <= 1) {
                         if (fieldValue.size() == 0) {
                             resultBuilder.append("");
@@ -257,7 +262,7 @@
                         } else {
                             for (JsonNode f : fields) {
                                 if (f.isValueNode()) {
-                                    resultBuilder.append(f.asText());
+                                    resultBuilder.append(f.asText()).append('\n');
                                 } else {
                                     resultBuilder.append(prettyPrint(f)).append('\n');
                                 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.022.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.022.query.sqlpp
new file mode 100644
index 0000000..904651b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.022.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.
+ */
+
+-- See ASTERIXDB-3409
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT ht.name, ht.phone,
+ARRAY_COUNT(ht.reviews) AS num_reviews,
+(SELECT VALUE MIN(ratings.Overall) FROM ht.reviews)[0] AS overall_avg,
+(SELECT VALUE ratings.Overall FROM ht.reviews) AS overall_reviews
+FROM ColumnDataset ht
+WHERE ht.city = 'Los Angeles'
+ORDER BY overall_avg DESC
+LIMIT 5;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.023.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.023.query.sqlpp
new file mode 100644
index 0000000..a841c75
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.023.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.
+ */
+
+-- See ASTERIXDB-3471
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT v.payload
+FROM ColumnDataset o
+WHERE v.`type`="WeMo"
+LIMIT 10;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.024.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.024.query.sqlpp
new file mode 100644
index 0000000..52075b9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.024.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.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT c.f1[0].f2[0][0],
+       c.f1[1].f3[1],
+       c.f1[1].f2[1][1]
+FROM ColumnDataset c
+ORDER BY c.x
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.025.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.025.query.sqlpp
new file mode 100644
index 0000000..4ee3627
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.025.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;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT c.f1[0].f2[0][0],
+       c.f1[1].f3[1],
+       c.f1[1].f2[1][1], c.x
+FROM ColumnDataset c
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.026.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.026.query.sqlpp
new file mode 100644
index 0000000..c2acf29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.026.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.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT c.f1[0].f2[0][0],
+       c.f1[1].f3[1],
+       c.f1[1].f2[1][1], c.x
+FROM ColumnDataset c
+ORDER BY c.y
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.027.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.027.query.sqlpp
new file mode 100644
index 0000000..03ae71d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.027.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;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT c.f1[0].f2[0][0],
+       -- Access f3 as an array
+       c.f1[1].f3[1],
+       c.f1[1].f2[1][1],
+       -- Access f3 as an object
+       c.f1[1].f3.f4
+FROM ColumnDataset c
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.001.ddl.sqlpp
new file mode 100644
index 0000000..93462f6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.001.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 test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+CREATE DATASET RowDataset
+PRIMARY KEY (id: uuid) AUTOGENERATED WITH {
+    "storage-format": {"format" : "row"}
+};
+
+CREATE DATASET ColumnDataset
+PRIMARY KEY (id: uuid) WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.002.update.sqlpp
new file mode 100644
index 0000000..f3fd0b3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.002.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;
+
+UPSERT INTO RowDataset (
+    SELECT UUID() AS myUUID
+    FROM RANGE(1, 1000) x
+);
+
+UPSERT INTO ColumnDataset (
+    SELECT VALUE r
+    FROM RowDataset r
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.003.get.http
new file mode 100644
index 0000000..57d830a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.003.get.http
@@ -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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.004.query.sqlpp
new file mode 100644
index 0000000..8963312
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/003/003.004.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 COUNT(*)
+FROM RowDataset r, ColumnDataset c
+WHERE r.id = c.id
+  AND r.myUUID = c.myUUID;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.query.sqlpp
new file mode 100644
index 0000000..d2802d0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.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.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.f1[0].f2[0][0],
+       p.f1[1].f3[1],
+       p.f1[1].f2[1][1]
+FROM ParquetDataset1 p
+ORDER BY p.x
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.query.sqlpp
new file mode 100644
index 0000000..49d16af
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.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;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.f1[0].f2[0][0],
+       p.f1[1].f3[1],
+       p.f1[1].f2[1][1], p.x
+FROM ParquetDataset1 p
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.query.sqlpp
new file mode 100644
index 0000000..1aa9d9c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.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.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.f1[0].f2[0][0],
+       p.f1[1].f3[1],
+       p.f1[1].f2[1][1], p.x
+FROM ParquetDataset1 p
+ORDER BY p.y
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.query.sqlpp
new file mode 100644
index 0000000..e8efb25
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.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;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.f1[0].f2[0][0],
+       -- Access f3 as an array
+       p.f1[1].f3[1],
+       p.f1[1].f2[1][1],
+       -- Access f3 as an object
+       p.f1[1].f3.f4
+FROM ParquetDataset1 p
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.001.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.001.regexjson
index 173a9a5..628e8b0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.001.regexjson
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.001.regexjson
@@ -4,7 +4,7 @@
 		"*": "*"
 	},
 	"type": "application/x-adm",
-	"results": [ "{ \"v\": 1 }\n", "{ \"v\": 2 }\n" ],
+	"results": [ "{ \"v\": 1 }", "{ \"v\": 2 }" ],
 	"plans": "R{.*}",
 	"status": "success",
 	"metrics": {
@@ -13,7 +13,7 @@
 		"compileTime": "R{.*}",
 		"queueWaitTime": "R{.*}",
 		"resultCount": 2,
-		"resultSize": 32,
+		"resultSize": "R{.*}",
 		"processedObjects": 0
 	}
 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.002.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.002.regexjson
index 9dcdbb6..7c4f553 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.002.regexjson
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cache-residency/cache-residency.002.regexjson
@@ -4,7 +4,7 @@
 		"*": "*"
 	},
 	"type": "application/x-adm",
-	"results": [ "{ \"$1\": 17 }\n" ],
+	"results": [ "{ \"$1\": 17 }" ],
 	"plans": "R{.*}",
 	"status": "success",
 	"metrics": {
@@ -13,7 +13,7 @@
 		"compileTime": "R{.*}",
 		"queueWaitTime": "R{.*}",
 		"resultCount": 1,
-		"resultSize": 18,
+		"resultSize": "R{.*}",
 		"processedObjects": 17,
 		"bufferCacheHitRatio": "100.00%",
 		"bufferCachePageReadCount": 1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/format-param-in-accept-01/format-param-in-accept-01.1.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/format-param-in-accept-01/format-param-in-accept-01.1.regexjson
index ad8ba0a..0134449 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/format-param-in-accept-01/format-param-in-accept-01.1.regexjson
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/format-param-in-accept-01/format-param-in-accept-01.1.regexjson
@@ -2,7 +2,7 @@
 	"requestID": "R{[a-zA-Z0-9-]+}",
 	"signature": {"*": "*"},
 	"type": "application/x-adm",
-	"results": [ "{{ \"foo\", \"bar\" }}\n" ],
+	"results": [ "{{ \"foo\", \"bar\" }}" ],
 	"plans":{},
 	"status": "success",
     "metrics": "R{.*}"
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/multiple-param-values/multiple-param-values.1.regexjson b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/multiple-param-values/multiple-param-values.1.regexjson
index 0701ef3..aab9677 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/multiple-param-values/multiple-param-values.1.regexjson
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/multiple-param-values/multiple-param-values.1.regexjson
@@ -4,7 +4,7 @@
 		"*": "*"
 	},
 	"type": "application/x-adm",
-	"results": [ "{ \"$1\": 1 }\n" ]
+	"results": [ "{ \"$1\": 1 }" ]
 	,
 	"plans":{},
 	"status": "success",
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.022.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.022.plan
new file mode 100644
index 0000000..05bf25c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.022.plan
@@ -0,0 +1,68 @@
+distribute result [$$84] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    limit 5 [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_LIMIT  |UNPARTITIONED|
+      project ([$$84]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- STREAM_PROJECT  |PARTITIONED|
+        assign [$$84] <- [{"name": $$93, "phone": $$94, "num_reviews": sql-count($$91), "overall_avg": $#2, "overall_reviews": $$83}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- ASSIGN  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- SORT_MERGE_EXCHANGE [$#2(DESC) ]  |PARTITIONED|
+            limit 5 [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STREAM_LIMIT  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                order (topK: 5) (DESC, $#2) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STABLE_SORT [topK: 5] [$#2(DESC)]  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    subplan {
+                              aggregate [$$83] <- [listify($$82)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- AGGREGATE  |LOCAL|
+                                assign [$$82] <- [$$98.getField("Overall")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ASSIGN  |LOCAL|
+                                  assign [$$98] <- [$$reviews.getField("ratings")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ASSIGN  |LOCAL|
+                                    unnest $$reviews <- scan-collection($$91) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- UNNEST  |LOCAL|
+                                      nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                           } [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- SUBPLAN  |PARTITIONED|
+                      project ([$$93, $$94, $$91, $#2]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        assign [$#2] <- [get-item($$72, 0)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- ASSIGN  |PARTITIONED|
+                          subplan {
+                                    aggregate [$$72] <- [listify($$86)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- AGGREGATE  |LOCAL|
+                                      aggregate [$$86] <- [agg-sql-min($$69)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- AGGREGATE  |LOCAL|
+                                        assign [$$69] <- [$$97.getField("Overall")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ASSIGN  |LOCAL|
+                                          assign [$$97] <- [$$89.getField("ratings")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- ASSIGN  |LOCAL|
+                                            unnest $$89 <- scan-collection($$91) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- UNNEST  |LOCAL|
+                                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                 } [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- SUBPLAN  |PARTITIONED|
+                            project ([$$93, $$94, $$91]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              select (eq($$ht.getField("city"), "Los Angeles")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- STREAM_SELECT  |PARTITIONED|
+                                assign [$$94, $$91, $$93] <- [$$ht.getField("phone"), $$ht.getField("reviews"), $$ht.getField("name")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ASSIGN  |PARTITIONED|
+                                  project ([$$ht]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- STREAM_PROJECT  |PARTITIONED|
+                                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      data-scan []<-[$$85, $$ht] <- test.ColumnDataset project ({reviews:[{ratings:{Overall:any}}],phone:any,city:any,name:any}) filter on: eq($$ht.getField("city"), "Los Angeles") range-filter on: eq($$ht.getField("city"), "Los Angeles") [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.023.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.023.plan
new file mode 100644
index 0000000..7ddc1a9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.023.plan
@@ -0,0 +1,28 @@
+distribute result [$$19] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    limit 10 [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_LIMIT  |UNPARTITIONED|
+      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+        project ([$$19]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          assign [$$19] <- [{"payload": $$20.getField("payload")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ASSIGN  |PARTITIONED|
+            limit 10 [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STREAM_LIMIT  |PARTITIONED|
+              project ([$$20]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                assign [$$20] <- [$$o.getField("v")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- ASSIGN  |PARTITIONED|
+                  project ([$$o]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      data-scan []<-[$$21, $$o] <- test.ColumnDataset condition (eq($$o.getField("v").getField("type"), "WeMo")) limit 10 project ({v:{payload:any,type:any}}) filter on: eq($$o.getField("v").getField("type"), "WeMo") range-filter on: eq($$o.getField("v").getField("type"), "WeMo") [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.024.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.024.plan
new file mode 100644
index 0000000..cc4aea0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.024.plan
@@ -0,0 +1,38 @@
+distribute result [$$31] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$31]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$31] <- [{"$1": get-item(get-item($$36, 0), 0), "$2": get-item($$37, 1), "$3": get-item(get-item($$38, 1), 1)}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$36, $$37, $$38]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- SORT_MERGE_EXCHANGE [$$35(ASC) ]  |PARTITIONED|
+            order (ASC, $$35) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$36, $$37, $$38, $$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$38, $$37] <- [$$49.getField("f2"), $$49.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$35, $$49, $$36]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$49, $$36] <- [get-item($$33, 1), get-item($$33, 0).getField("f2")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$33, $$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$33, $$35] <- [$$c.getField("f1"), $$c.getField("x")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ASSIGN  |PARTITIONED|
+                            project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                data-scan []<-[$$34, $$c] <- test.ColumnDataset project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.025.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.025.plan
new file mode 100644
index 0000000..830e096
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.025.plan
@@ -0,0 +1,22 @@
+distribute result [$$32] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item(get-item($$33, 0).getField("f2"), 0), 0), "$2": get-item($$49.getField("f3"), 1), "$3": get-item(get-item($$49.getField("f2"), 1), 1), "x": $$c.getField("x")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$49] <- [get-item($$33, 1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$33] <- [$$c.getField("f1")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                data-scan []<-[$$34, $$c] <- test.ColumnDataset project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.026.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.026.plan
new file mode 100644
index 0000000..b65bd37
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.026.plan
@@ -0,0 +1,38 @@
+distribute result [$$32] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item($$37, 0), 0), "$2": get-item($$38, 1), "$3": get-item(get-item($$39, 1), 1), "x": $$40}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$37, $$38, $$39, $$40]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- SORT_MERGE_EXCHANGE [$$36(ASC) ]  |PARTITIONED|
+            order (ASC, $$36) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$37, $$38, $$39, $$40, $$36]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$39, $$38] <- [$$51.getField("f2"), $$51.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$36, $$40, $$51, $$37]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$51, $$37] <- [get-item($$34, 1), get-item($$34, 0).getField("f2")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$34, $$36, $$40]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$34, $$36, $$40] <- [$$c.getField("f1"), $$c.getField("y"), $$c.getField("x")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ASSIGN  |PARTITIONED|
+                            project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                data-scan []<-[$$35, $$c] <- test.ColumnDataset project ({x:any,y:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.027.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.027.plan
new file mode 100644
index 0000000..64d7359
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.027.plan
@@ -0,0 +1,26 @@
+distribute result [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$35] <- [{"$1": get-item(get-item(get-item($$36, 0).getField("f2"), 0), 0), "$2": get-item($$43, 1), "$3": get-item(get-item($$55.getField("f2"), 1), 1), "f4": $$43.getField("f4")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$43] <- [$$55.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$55] <- [get-item($$36, 1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$36]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$36] <- [$$c.getField("f1")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ASSIGN  |PARTITIONED|
+                project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$37, $$c] <- test.ColumnDataset project ({f1:[{f2:[[any]],f3:<[any],{f4:any}>}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.003.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.003.regexadm
new file mode 100644
index 0000000..64695de
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.003.regexadm
@@ -0,0 +1 @@
+\Q{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"AnyObject","open":true,"fields":[]},"splits":[\E.*\Q]}\E
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.004.adm
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/003/003.004.adm
@@ -0,0 +1 @@
+1000
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.plan
new file mode 100644
index 0000000..8b117a9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.12.plan
@@ -0,0 +1,36 @@
+distribute result [$$31] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$31]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$31] <- [{"$1": get-item(get-item($$35, 0), 0), "$2": get-item($$36, 1), "$3": get-item(get-item($$37, 1), 1)}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$35, $$36, $$37]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- SORT_MERGE_EXCHANGE [$$34(ASC) ]  |PARTITIONED|
+            order (ASC, $$34) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STABLE_SORT [$$34(ASC)]  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$35, $$36, $$37, $$34]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$37, $$36] <- [$$48.getField("f2"), $$48.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$34, $$48, $$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$48, $$35] <- [get-item($$33, 1), get-item($$33, 0).getField("f2")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$33, $$34]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$33, $$34] <- [$$p.getField("f1"), $$p.getField("x")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ASSIGN  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              data-scan []<-[$$p] <- test.ParquetDataset1 project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.plan
new file mode 100644
index 0000000..3266da3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.13.plan
@@ -0,0 +1,20 @@
+distribute result [$$32] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item(get-item($$33, 0).getField("f2"), 0), 0), "$2": get-item($$48.getField("f3"), 1), "$3": get-item(get-item($$48.getField("f2"), 1), 1), "x": $$p.getField("x")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$48] <- [get-item($$33, 1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$33] <- [$$p.getField("f1")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ASSIGN  |PARTITIONED|
+            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              data-scan []<-[$$p] <- test.ParquetDataset1 project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- DATASOURCE_SCAN  |PARTITIONED|
+                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.plan
new file mode 100644
index 0000000..2b10297
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.14.plan
@@ -0,0 +1,36 @@
+distribute result [$$32] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item($$36, 0), 0), "$2": get-item($$37, 1), "$3": get-item(get-item($$38, 1), 1), "x": $$39}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$36, $$37, $$38, $$39]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- SORT_MERGE_EXCHANGE [$$35(ASC) ]  |PARTITIONED|
+            order (ASC, $$35) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$36, $$37, $$38, $$39, $$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$38, $$37] <- [$$50.getField("f2"), $$50.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$35, $$39, $$50, $$36]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$50, $$36] <- [get-item($$34, 1), get-item($$34, 0).getField("f2")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$34, $$35, $$39]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$34, $$35, $$39] <- [$$p.getField("f1"), $$p.getField("y"), $$p.getField("x")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ASSIGN  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              data-scan []<-[$$p] <- test.ParquetDataset1 project ({x:any,y:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.plan
new file mode 100644
index 0000000..c575b1b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/parquet/pushdown-plans/pushdown-plans.15.plan
@@ -0,0 +1,24 @@
+distribute result [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$35] <- [{"$1": get-item(get-item(get-item($$36, 0).getField("f2"), 0), 0), "$2": get-item($$42, 1), "$3": get-item(get-item($$54.getField("f2"), 1), 1), "f4": $$42.getField("f4")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$42] <- [$$54.getField("f3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$54] <- [get-item($$36, 1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$36]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$36] <- [$$p.getField("f1")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ASSIGN  |PARTITIONED|
+                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  data-scan []<-[$$p] <- test.ParquetDataset1 project ({f1:[{f2:[[any]],f3:<[any],{f4:any}>}]}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- DATASOURCE_SCAN  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.03.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.03.regexadm
index bd85d0e..5c091b4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.03.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.03.regexadm
@@ -3,21 +3,7 @@
 \s*\Q"signature": {\E
 \s*\Q"*": "*"\E
 \s*\Q},\E
-\s*\Q"results": [ { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q]\E
+\s*\Q"results": [ {"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null} ]\E
 \s*\Q,\E
 \s*\Q"plans":{},\E
 \s*\Q"warnings": [{\E\s*
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.04.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.04.regexadm
index dce84fe..a0d6601 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.04.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.04.regexadm
@@ -3,21 +3,7 @@
 \s*\Q"signature": {\E
 \s*\Q"*": "*"\E
 \s*\Q},\E
-\s*\Q"results": [ { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q]\E
+\s*\Q"results": [ {"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null} ]\E
 \s*\Q,\E
 \s*\Q"plans":{},\E
 \s*\Q"status": "success",\E
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.05.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.05.regexadm
index 6b1931a..ac945a7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.05.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.05.regexadm
@@ -3,21 +3,7 @@
 \s*\Q"signature": {\E
 \s*\Q"*": "*"\E
 \s*\Q},\E
-\s*\Q"results": [ { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q]\E
+\s*\Q"results": [ {"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null} ]\E
 \s*\Q,\E
 \s*\Q"plans":{},\E
 \s*\Q"status": "success",\E
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.07.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.07.regexadm
index 6b1931a..ac945a7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.07.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.07.regexadm
@@ -3,21 +3,7 @@
 \s*\Q"signature": {\E
 \s*\Q"*": "*"\E
 \s*\Q},\E
-\s*\Q"results": [ { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q]\E
+\s*\Q"results": [ {"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null} ]\E
 \s*\Q,\E
 \s*\Q"plans":{},\E
 \s*\Q"status": "success",\E
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.08.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.08.regexadm
index bd85d0e..5c091b4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.08.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/warnings/warnings-limit/warnings-limit.08.regexadm
@@ -3,21 +3,7 @@
 \s*\Q"signature": {\E
 \s*\Q"*": "*"\E
 \s*\Q},\E
-\s*\Q"results": [ { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": false }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q, { "F1": { "a": 1 }, "F2": null }\E
-\s*\Q]\E
+\s*\Q"results": [ {"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":false},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null},{"F1":{"a":1},"F2":null} ]\E
 \s*\Q,\E
 \s*\Q"plans":{},\E
 \s*\Q"warnings": [{\E\s*
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.022.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.022.plan
new file mode 100644
index 0000000..9997dae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.022.plan
@@ -0,0 +1,68 @@
+distribute result [$$84] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    limit 5 [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+    -- STREAM_LIMIT  |UNPARTITIONED|
+      project ([$$84]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+      -- STREAM_PROJECT  |PARTITIONED|
+        assign [$$84] <- [{"name": $$93, "phone": $$94, "num_reviews": sql-count($$91), "overall_avg": $#2, "overall_reviews": $$83}] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+        -- ASSIGN  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+          -- SORT_MERGE_EXCHANGE [$#2(DESC) ]  |PARTITIONED|
+            limit 5 [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+            -- STREAM_LIMIT  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                order (topK: 5) (DESC, $#2) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                -- STABLE_SORT [topK: 5] [$#2(DESC)]  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    subplan {
+                              aggregate [$$83] <- [listify($$82)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- AGGREGATE  |LOCAL|
+                                assign [$$82] <- [$$98.getField("Overall")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ASSIGN  |LOCAL|
+                                  assign [$$98] <- [$$reviews.getField("ratings")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ASSIGN  |LOCAL|
+                                    unnest $$reviews <- scan-collection($$91) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- UNNEST  |LOCAL|
+                                      nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                           } [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                    -- SUBPLAN  |PARTITIONED|
+                      project ([$$93, $$94, $$91, $#2]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        assign [$#2] <- [get-item($$72, 0)] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                        -- ASSIGN  |PARTITIONED|
+                          subplan {
+                                    aggregate [$$72] <- [listify($$86)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- AGGREGATE  |LOCAL|
+                                      aggregate [$$86] <- [agg-sql-min($$69)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- AGGREGATE  |LOCAL|
+                                        assign [$$69] <- [$$97.getField("Overall")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ASSIGN  |LOCAL|
+                                          assign [$$97] <- [$$89.getField("ratings")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- ASSIGN  |LOCAL|
+                                            unnest $$89 <- scan-collection($$91) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- UNNEST  |LOCAL|
+                                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                 } [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                          -- SUBPLAN  |PARTITIONED|
+                            project ([$$93, $$94, $$91]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              select (eq($$ht.getField("city"), "Los Angeles")) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                              -- STREAM_SELECT  |PARTITIONED|
+                                assign [$$94, $$91, $$93] <- [$$ht.getField("phone"), $$ht.getField("reviews"), $$ht.getField("name")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                                -- ASSIGN  |PARTITIONED|
+                                  project ([$$ht]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                                  -- STREAM_PROJECT  |PARTITIONED|
+                                    exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      data-scan []<-[$$85, $$ht] <- test.ColumnDataset project ({reviews:[{ratings:{Overall:any}}],phone:any,city:any,name:any}) filter on: eq($$ht.getField("city"), "Los Angeles") range-filter on: eq($$ht.getField("city"), "Los Angeles") [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
+                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.023.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.023.plan
new file mode 100644
index 0000000..f685929
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.023.plan
@@ -0,0 +1,28 @@
+distribute result [$$19] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    limit 10 [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+    -- STREAM_LIMIT  |UNPARTITIONED|
+      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+      -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+        project ([$$19]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          assign [$$19] <- [{"payload": $$20.getField("payload")}] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+          -- ASSIGN  |PARTITIONED|
+            limit 10 [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+            -- STREAM_LIMIT  |PARTITIONED|
+              project ([$$20]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                assign [$$20] <- [$$o.getField("v")] [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                -- ASSIGN  |PARTITIONED|
+                  project ([$$o]) [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 2.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      data-scan []<-[$$21, $$o] <- test.ColumnDataset condition (eq($$o.getField("v").getField("type"), "WeMo")) limit 10 project ({v:{payload:any,type:any}}) filter on: eq($$o.getField("v").getField("type"), "WeMo") range-filter on: eq($$o.getField("v").getField("type"), "WeMo") [cardinality: 0.0, op-cost: 2.0, total-cost: 2.0]
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.024.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.024.plan
new file mode 100644
index 0000000..fde7f81
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.024.plan
@@ -0,0 +1,38 @@
+distribute result [$$31] [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$31]) [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$31] <- [{"$1": get-item(get-item($$36, 0), 0), "$2": get-item($$37, 1), "$3": get-item(get-item($$38, 1), 1)}] [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$36, $$37, $$38]) [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+          -- SORT_MERGE_EXCHANGE [$$35(ASC) ]  |PARTITIONED|
+            order (ASC, $$35) [cardinality: 2.0, op-cost: 2.0, total-cost: 4.0]
+            -- STABLE_SORT [$$35(ASC)]  |PARTITIONED|
+              exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$36, $$37, $$38, $$35]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$38, $$37] <- [$$49.getField("f2"), $$49.getField("f3")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$35, $$49, $$36]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$49, $$36] <- [get-item($$33, 1), get-item($$33, 0).getField("f2")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$33, $$35]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$33, $$35] <- [$$c.getField("f1"), $$c.getField("x")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                          -- ASSIGN  |PARTITIONED|
+                            project ([$$c]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                data-scan []<-[$$34, $$c] <- test.ColumnDataset project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.025.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.025.plan
new file mode 100644
index 0000000..deeb1eb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.025.plan
@@ -0,0 +1,22 @@
+distribute result [$$32] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item(get-item($$33, 0).getField("f2"), 0), 0), "$2": get-item($$49.getField("f3"), 1), "$3": get-item(get-item($$49.getField("f2"), 1), 1), "x": $$c.getField("x")}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$49] <- [get-item($$33, 1)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$33] <- [$$c.getField("f1")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$c]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                data-scan []<-[$$34, $$c] <- test.ColumnDataset project ({x:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.026.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.026.plan
new file mode 100644
index 0000000..2379a5a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.026.plan
@@ -0,0 +1,38 @@
+distribute result [$$32] [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$32]) [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$32] <- [{"$1": get-item(get-item($$37, 0), 0), "$2": get-item($$38, 1), "$3": get-item(get-item($$39, 1), 1), "x": $$40}] [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$37, $$38, $$39, $$40]) [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 4.0]
+          -- SORT_MERGE_EXCHANGE [$$36(ASC) ]  |PARTITIONED|
+            order (ASC, $$36) [cardinality: 2.0, op-cost: 2.0, total-cost: 4.0]
+            -- STABLE_SORT [$$36(ASC)]  |PARTITIONED|
+              exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$37, $$38, $$39, $$40, $$36]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$39, $$38] <- [$$51.getField("f2"), $$51.getField("f3")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$36, $$40, $$51, $$37]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$51, $$37] <- [get-item($$34, 1), get-item($$34, 0).getField("f2")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$34, $$36, $$40]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$34, $$36, $$40] <- [$$c.getField("f1"), $$c.getField("y"), $$c.getField("x")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                          -- ASSIGN  |PARTITIONED|
+                            project ([$$c]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                data-scan []<-[$$35, $$c] <- test.ColumnDataset project ({x:any,y:any,f1:[{f2:[[any]],f3:[any]}]}) [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.027.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.027.plan
new file mode 100644
index 0000000..66b024a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.027.plan
@@ -0,0 +1,26 @@
+distribute result [$$35] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$35]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$35] <- [{"$1": get-item(get-item(get-item($$36, 0).getField("f2"), 0), 0), "$2": get-item($$43, 1), "$3": get-item(get-item($$55.getField("f2"), 1), 1), "f4": $$43.getField("f4")}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+      -- ASSIGN  |PARTITIONED|
+        assign [$$43] <- [$$55.getField("f3")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+        -- ASSIGN  |PARTITIONED|
+          assign [$$55] <- [get-item($$36, 1)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$36]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$36] <- [$$c.getField("f1")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+              -- ASSIGN  |PARTITIONED|
+                project ([$$c]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$37, $$c] <- test.ColumnDataset project ({f1:[{f2:[[any]],f3:<[any],{f4:any}>}]}) [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
index 5da18c3..6fb58ad 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
@@ -7486,6 +7486,11 @@
         <output-dir compare="Text">query-ASTERIXDB-3419</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="misc">
+      <compilation-unit name="query-ASTERIXDB-3415">
+        <output-dir compare="Text">query-ASTERIXDB-3415</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="multipart-dataverse">
     <test-case FilePath="multipart-dataverse">
@@ -14399,7 +14404,7 @@
     <test-case FilePath="meta">
       <compilation-unit name="meta_after_gby">
         <output-dir compare="Text">meta_after_gby</output-dir>
-        <expected-error>Compilation error: Inappropriate use of function 'meta'. For example, after GROUP BY (in line 29, at column 21)</expected-error>
+        <expected-error>Compilation error: No source collection found for META(): collection not supported or cannot reference collection (in line 29, at column 21)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="meta">
@@ -16513,6 +16518,11 @@
         <output-dir compare="Text">upsert/002</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="upsert/003">
+        <output-dir compare="Text">upsert/003</output-dir>
+      </compilation-unit>
+    </test-case>
     <test-case FilePath="column" check-warnings="true">
       <compilation-unit name="filter/001">
         <output-dir compare="Text">filter/001</output-dir>
@@ -16735,4 +16745,4 @@
       </compilation-unit>
     </test-case>
   </test-group>
-</test-group>
\ No newline at end of file
+</test-group>
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
index 24d5fa9..319b713 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
@@ -129,17 +129,22 @@
     public int read(String bucket, String path, long offset, ByteBuffer buffer) throws HyracksDataException {
         guardian.checkReadAccess(bucket, path);
         profiler.objectGet();
+        long bytesToRead = buffer.remaining();
         long readTo = offset + buffer.remaining() - 1;
         GetObjectRequest rangeGetObjectRequest = GetObjectRequest.builder().range("bytes=" + offset + "-" + readTo)
                 .bucket(bucket).key(config.getPrefix() + path).build();
 
         int totalRead = 0;
-        int read = 0;
+        int read;
 
         // TODO(htowaileb): add retry logic here
         try (ResponseInputStream<GetObjectResponse> response = s3Client.getObject(rangeGetObjectRequest)) {
             while (buffer.remaining() > 0) {
                 read = response.read(buffer.array(), buffer.position(), buffer.remaining());
+                if (read == -1) {
+                    throw new IllegalStateException("Unexpected EOF encountered. File: " + path + ", expected bytes: "
+                            + bytesToRead + ", bytes read: " + totalRead);
+                }
                 buffer.position(buffer.position() + read);
                 totalRead += read;
             }
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/value/UUIDValueGetter.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/value/UUIDValueGetter.java
index 135ed85..408ccbb 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/value/UUIDValueGetter.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/value/UUIDValueGetter.java
@@ -19,12 +19,13 @@
 package org.apache.asterix.column.assembler.value;
 
 import org.apache.asterix.column.values.IColumnValuesReader;
+import org.apache.asterix.om.base.AUUID;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.hyracks.data.std.api.IValueReference;
 
 class UUIDValueGetter extends AbstractFixedLengthValueGetter {
     UUIDValueGetter() {
-        super(ATypeTag.UUID, 16);
+        super(ATypeTag.UUID, AUUID.UUID_BYTES);
     }
 
     @Override
@@ -34,4 +35,4 @@
                 uuid.getLength());
         return value;
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
index 5912a3b..6ff2cd9 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
@@ -192,21 +192,23 @@
             columnReader.write(columnWriter, count);
         } catch (ColumnarValueException e) {
             ObjectNode node = e.createNode(getClass().getSimpleName());
-            node.put("numberOfWrittenPrimaryKeys", primaryKeyWriters[0].getCount());
-            node.put("writtenComponents", writtenComponents.toString());
+            appendExceptionCommonInfo(node, componentIndex, count);
             node.put("blockIndex", blockIndex);
-            node.put("componentIndex", componentIndex);
-            node.put("count", count);
-            node.put("numberOFAntiMatters", numberOfAntiMatter);
             throw e;
         }
     }
 
     private void skipReaders(int componentIndex, int count) throws HyracksDataException {
         MergeColumnTupleReference componentTuple = componentsTuples[componentIndex];
-        for (int j = columnMetadata.getNumberOfPrimaryKeys(); j < columnMetadata.getNumberOfColumns(); j++) {
-            IColumnValuesReader columnReader = componentTuple.getReader(j);
-            columnReader.skip(count);
+        try {
+            for (int j = columnMetadata.getNumberOfPrimaryKeys(); j < columnMetadata.getNumberOfColumns(); j++) {
+                IColumnValuesReader columnReader = componentTuple.getReader(j);
+                columnReader.skip(count);
+            }
+        } catch (ColumnarValueException e) {
+            ObjectNode node = e.createNode(getClass().getSimpleName());
+            appendExceptionCommonInfo(node, componentIndex, count);
+            throw e;
         }
     }
 
@@ -241,4 +243,12 @@
         }
         return Math.min(maxNumberOfTuples, numberOfTuplesUsingMaxSize);
     }
+
+    private void appendExceptionCommonInfo(ObjectNode node, int componentIndex, int count) {
+        node.put("numberOfWrittenPrimaryKeys", primaryKeyWriters[0].getCount());
+        node.put("writtenComponents", writtenComponents.toString());
+        node.put("numberOFAntiMatters", numberOfAntiMatter);
+        node.put("componentIndex", componentIndex);
+        node.put("count", count);
+    }
 }
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
index 4f9fdec..3f90a4b 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
@@ -18,7 +18,6 @@
  */
 package org.apache.asterix.column.values.reader;
 
-import java.io.IOException;
 import java.util.Arrays;
 
 import org.apache.asterix.column.values.IColumnValuesWriter;
@@ -96,23 +95,15 @@
     @Override
     public void write(IColumnValuesWriter writer, boolean callNext) throws HyracksDataException {
         //We always call next as repeated values cannot be primary keys
-        if (!next()) {
-            ColumnarValueException e = new ColumnarValueException();
-            appendReaderInformation(e.createNode(getClass().getSimpleName()));
-            throw e;
-        }
+        doNextAndCheck();
 
         if (isRepeatedValue()) {
             while (!isLastDelimiter()) {
                 writer.writeLevel(level);
                 if (isValue()) {
-                    try {
-                        writer.writeValue(this);
-                    } catch (IOException e) {
-                        throw HyracksDataException.create(e);
-                    }
+                    writer.writeValue(this);
                 }
-                next();
+                doNextAndCheck();
             }
         }
         //Add last delimiter, or NULL/MISSING
@@ -132,10 +123,10 @@
     @Override
     public void skip(int count) throws HyracksDataException {
         for (int i = 0; i < count; i++) {
-            next();
+            doNextAndCheck();
             if (isRepeatedValue()) {
                 while (!isLastDelimiter()) {
-                    next();
+                    doNextAndCheck();
                 }
             }
         }
@@ -162,4 +153,12 @@
         node.put("delimiterIndex", delimiterIndex);
         node.put("isDelimiter", isDelimiter());
     }
+
+    private void doNextAndCheck() throws HyracksDataException {
+        if (!next()) {
+            ColumnarValueException e = new ColumnarValueException();
+            appendReaderInformation(e.createNode(getClass().getSimpleName()));
+            throw e;
+        }
+    }
 }
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/value/UUIDValueReader.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/value/UUIDValueReader.java
index 7517960..a029d6f 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/value/UUIDValueReader.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/value/UUIDValueReader.java
@@ -23,6 +23,7 @@
 import org.apache.asterix.column.bytes.decoder.ParquetPlainFixedLengthValuesReader;
 import org.apache.asterix.column.bytes.stream.in.AbstractBytesInputStream;
 import org.apache.asterix.dataflow.data.nontagged.comparators.AUUIDPartialBinaryComparatorFactory;
+import org.apache.asterix.om.base.AUUID;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.hyracks.data.std.api.IValueReference;
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -32,7 +33,8 @@
     private IValueReference nextValue;
 
     public UUIDValueReader() {
-        ArrayBackedValueStorage storage = new ArrayBackedValueStorage(16);
+        ArrayBackedValueStorage storage = new ArrayBackedValueStorage(AUUID.UUID_BYTES);
+        storage.setSize(AUUID.UUID_BYTES);
         uuidReader = new ParquetPlainFixedLengthValuesReader(storage);
     }
 
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/000-arrayOfInt.json b/asterixdb/asterix-column/src/test/resources/result/assembler/000-arrayOfInt.json
index 0ef2261..e8743b9 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/000-arrayOfInt.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/000-arrayOfInt.json
@@ -1,10 +1,10 @@
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/001-arrayObject.json b/asterixdb/asterix-column/src/test/resources/result/assembler/001-arrayObject.json
index 8857afc..4bfed37 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/001-arrayObject.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/001-arrayObject.json
@@ -1 +1 @@
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
+{"a":[{"b":1},{"b":2},{"c":3}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/002-arrayObject2.json b/asterixdb/asterix-column/src/test/resources/result/assembler/002-arrayObject2.json
index 9eb300f..656e0b5 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/002-arrayObject2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/002-arrayObject2.json
@@ -1,4 +1,4 @@
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 } ] }
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 } ] }
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 }, { "f": 3 }, { "k": { "v": { "t": 1 } } }, { "a": [ { "j": 1 } ] } ] }
-{ "ommhom": [ { "xyz": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ] } ] }
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3}]}
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3}]}
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3},{"f":3},{"k":{"v":{"t":1}}},{"a":[{"j":1}]}]}
+{"ommhom":[{"xyz":[{"x":1,"y":2},{"y":2},{"x":1}]}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json b/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
index 3b8b6cc..77555c0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
@@ -1,3 +1,3 @@
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
-{ "a": [  ] }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
\ No newline at end of file
+{"a":[{"b":1},{"b":2},{"c":3}]}
+{"a":[]}
+{"a":[{"b":1},{"b":2},{"c":3}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/100-addFields.json b/asterixdb/asterix-column/src/test/resources/result/assembler/100-addFields.json
index 1ce59bc..fb02498 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/100-addFields.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/100-addFields.json
@@ -1,4 +1,4 @@
-{ "a": 1 }
-{ "a": 1, "b": 2 }
-{ "a": 1, "c": 3 }
-{ "a": 1, "b": 2, "c": 3 }
+{"a":1}
+{"a":1,"b":2}
+{"a":1,"c":3}
+{"a":1,"b":2,"c":3}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/101-nestedAddFields.json b/asterixdb/asterix-column/src/test/resources/result/assembler/101-nestedAddFields.json
index f51e0df..2d796b3 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/101-nestedAddFields.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/101-nestedAddFields.json
@@ -1,4 +1,4 @@
-{ "a": { "b": { "c": 1 } } }
-{ "a": { "b": { "c": 1, "d": 2 }, "x": { "y": 2 } } }
-{ "a": { "b": { "c": 1 }, "x": { "z": 2 } } }
-{ "a": { "b": { "c": 1 } } }
\ No newline at end of file
+{"a":{"b":{"c":1}}}
+{"a":{"b":{"c":1,"d":2},"x":{"y":2}}}
+{"a":{"b":{"c":1},"x":{"z":2}}}
+{"a":{"b":{"c":1}}}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/200-unionPrimitive.json b/asterixdb/asterix-column/src/test/resources/result/assembler/200-unionPrimitive.json
index b8b6d23..6c81ed6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/200-unionPrimitive.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/200-unionPrimitive.json
@@ -1,4 +1,4 @@
-{ "a": 1.25 }
-{ "a": 1 }
-{ "a": "test" }
-{ "a": 2.25 }
\ No newline at end of file
+{"a":1.25}
+{"a":1}
+{"a":"test"}
+{"a":2.25}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/201-unionPrimitiveObject.json b/asterixdb/asterix-column/src/test/resources/result/assembler/201-unionPrimitiveObject.json
index 249fee0..2555214 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/201-unionPrimitiveObject.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/201-unionPrimitiveObject.json
@@ -1,2 +1,2 @@
-{ "a": 1 }
-{ "a": { "b": 1 } }
+{"a":1}
+{"a":{"b":1}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/202-unionPrimitiveArray.json b/asterixdb/asterix-column/src/test/resources/result/assembler/202-unionPrimitiveArray.json
index 6624e9b..e474bb4 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/202-unionPrimitiveArray.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/202-unionPrimitiveArray.json
@@ -1,4 +1,4 @@
-{ "a": 1 }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "b": 3 } ] }
-{ "a": 1 }
-{ "a": [ { "b": 1, "c": 10 }, { "b": 2, "c": 11 }, { "b": 3, "c": 12 } ] }
+{"a":1}
+{"a":[{"b":1},{"b":2},{"b":3}]}
+{"a":1}
+{"a":[{"b":1,"c":10},{"b":2,"c":11},{"b":3,"c":12}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/203-unionNestedNested.json b/asterixdb/asterix-column/src/test/resources/result/assembler/203-unionNestedNested.json
index 5130db99..bf706be 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/203-unionNestedNested.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/203-unionNestedNested.json
@@ -1,4 +1,4 @@
-{ "a": { "b": 1 } }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "b": 3 } ] }
-{ "a": { "b": 1 } }
-{ "a": [ { "b": 1, "c": 10 }, { "b": 2, "c": 11 }, { "b": 3, "c": 12 } ] }
+{"a":{"b":1}}
+{"a":[{"b":1},{"b":2},{"b":3}]}
+{"a":{"b":1}}
+{"a":[{"b":1,"c":10},{"b":2,"c":11},{"b":3,"c":12}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/204-unionArrayPrimitiveItems.json b/asterixdb/asterix-column/src/test/resources/result/assembler/204-unionArrayPrimitiveItems.json
index e468ab2..b74f4b1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/204-unionArrayPrimitiveItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/204-unionArrayPrimitiveItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ "1" ] }
-{ "a": [ false ] }
-{ "a": [ 1.25 ] }
-{ "a": [ 1, "1", false, 1.25 ] }
+{"a":[1]}
+{"a":["1"]}
+{"a":[false]}
+{"a":[1.25]}
+{"a":[1,"1",false,1.25]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/205-unionArrayPrimitiveObjectItems.json b/asterixdb/asterix-column/src/test/resources/result/assembler/205-unionArrayPrimitiveObjectItems.json
index 869a4e6..33327d2 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/205-unionArrayPrimitiveObjectItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/205-unionArrayPrimitiveObjectItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ { "a": 1 } ] }
-{ "a": [ false ] }
-{ "a": [ { "b": 1 } ] }
-{ "a": [ 1, { "a": 1 }, false, { "b": 1 }, { "c": 1 } ] }
+{"a":[1]}
+{"a":[{"a":1}]}
+{"a":[false]}
+{"a":[{"b":1}]}
+{"a":[1,{"a":1},false,{"b":1},{"c":1}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/206-unionArrayPrimitiveObjectArrayItems.json b/asterixdb/asterix-column/src/test/resources/result/assembler/206-unionArrayPrimitiveObjectArrayItems.json
index 2a54e7f..557a9e8 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/206-unionArrayPrimitiveObjectArrayItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/206-unionArrayPrimitiveObjectArrayItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ [ { "a": 1 } ] ] }
-{ "a": [ false ] }
-{ "a": [ { "b": 5 } ] }
-{ "a": [ 1, { "a": 5 }, false, [ { "b": 1 } ], [ { "c": 1 } ] ] }
+{"a":[1]}
+{"a":[[{"a":1}]]}
+{"a":[false]}
+{"a":[{"b":5}]}
+{"a":[1,{"a":5},false,[{"b":1}],[{"c":1}]]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/207-unionArrayNullItems0.json b/asterixdb/asterix-column/src/test/resources/result/assembler/207-unionArrayNullItems0.json
index f8faf4c..e929ee3 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/207-unionArrayNullItems0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/207-unionArrayNullItems0.json
@@ -1,3 +1,3 @@
-{ "a": [ null ] }
-{ "a": [ 1 ] }
-{ "a": [ "string" ] }
\ No newline at end of file
+{"a":[null]}
+{"a":[1]}
+{"a":["string"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/208-unionArrayNullItems1.json b/asterixdb/asterix-column/src/test/resources/result/assembler/208-unionArrayNullItems1.json
index eb3fc85..1e8b301 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/208-unionArrayNullItems1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/208-unionArrayNullItems1.json
@@ -1,3 +1,3 @@
-{ "a": [ 1 ] }
-{ "a": [ null ] }
-{ "a": [ "string" ] }
\ No newline at end of file
+{"a":[1]}
+{"a":[null]}
+{"a":["string"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/209-unionArrayNullItems2.json b/asterixdb/asterix-column/src/test/resources/result/assembler/209-unionArrayNullItems2.json
index da80268..c07b643 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/209-unionArrayNullItems2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/209-unionArrayNullItems2.json
@@ -1,3 +1,3 @@
-{ "a": [ 0, "1", null ] }
-{ "a": [ 0, null, "1" ] }
-{ "a": [ null, 0, "1" ] }
\ No newline at end of file
+{"a":[0,"1",null]}
+{"a":[0,null,"1"]}
+{"a":[null,0,"1"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/210-unionArrayNullItems3.json b/asterixdb/asterix-column/src/test/resources/result/assembler/210-unionArrayNullItems3.json
index 00fd767..8a5848a 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/210-unionArrayNullItems3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/210-unionArrayNullItems3.json
@@ -1 +1 @@
-{ "a": [ 0, null, "1" ] }
\ No newline at end of file
+{"a":[0,null,"1"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/301-null-primitive.json b/asterixdb/asterix-column/src/test/resources/result/assembler/301-null-primitive.json
index aeb319a..57232a9 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/301-null-primitive.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/301-null-primitive.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": null }
-{ "a": 1 }
+{"a":null}
+{"a":null}
+{"a":null}
+{"a":1}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/310-null-object0.json b/asterixdb/asterix-column/src/test/resources/result/assembler/310-null-object0.json
index b563190..2379cf0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/310-null-object0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/310-null-object0.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": { "b": 1, "c": 5 } }
-{ "a": { "b": null, "c": null } }
+{"a":null}
+{"a":null}
+{"a":{"b":1,"c":5}}
+{"a":{"b":null,"c":null}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/311-null-object1.json b/asterixdb/asterix-column/src/test/resources/result/assembler/311-null-object1.json
index ee4a6ce..9cd9b35 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/311-null-object1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/311-null-object1.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": { "b": null, "c": 5 } }
-{ "a": { "b": 1, "c": null } }
+{"a":null}
+{"a":null}
+{"a":{"b":null,"c":5}}
+{"a":{"b":1,"c":null}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/312-null-object2.json b/asterixdb/asterix-column/src/test/resources/result/assembler/312-null-object2.json
index 0609637..9539007 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/312-null-object2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/312-null-object2.json
@@ -1,4 +1,4 @@
-{ "a": { "b": 1, "c": null } }
-{ "a": { "b": null, "c": 5 } }
-{ "a": null }
-{ "a": null }
+{"a":{"b":1,"c":null}}
+{"a":{"b":null,"c":5}}
+{"a":null}
+{"a":null}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/313-null-object3.json b/asterixdb/asterix-column/src/test/resources/result/assembler/313-null-object3.json
index 9c54517..1be1683 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/313-null-object3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/313-null-object3.json
@@ -1,4 +1,4 @@
-{ "a": { "b": null, "c": null } }
-{ "a": { "b": 1, "c": 5 } }
-{ "a": null }
-{ "a": null }
+{"a":{"b":null,"c":null}}
+{"a":{"b":1,"c":5}}
+{"a":null}
+{"a":null}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/320-null-array0.json b/asterixdb/asterix-column/src/test/resources/result/assembler/320-null-array0.json
index e1d6d6f..e4b6ae1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/320-null-array0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/320-null-array0.json
@@ -1,4 +1,4 @@
-{ "a": [ null ] }
-{ "a": null }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null]}
+{"a":null}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/321-null-array1.json b/asterixdb/asterix-column/src/test/resources/result/assembler/321-null-array1.json
index e1d6d6f..e4b6ae1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/321-null-array1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/321-null-array1.json
@@ -1,4 +1,4 @@
-{ "a": [ null ] }
-{ "a": null }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null]}
+{"a":null}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/322-null-array2.json b/asterixdb/asterix-column/src/test/resources/result/assembler/322-null-array2.json
index 83f9f0c..8ca1c4f 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/322-null-array2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/322-null-array2.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":null}
+{"a":[null]}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/323-null-array3.json b/asterixdb/asterix-column/src/test/resources/result/assembler/323-null-array3.json
index f53eae0..ecf07bc 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/323-null-array3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/323-null-array3.json
@@ -1,4 +1,4 @@
-{ "a": [ null, 1, null ] }
-{ "a": [ null ] }
-{ "a": [ null, null ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null,1,null]}
+{"a":[null]}
+{"a":[null,null]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/324-null-array4.json b/asterixdb/asterix-column/src/test/resources/result/assembler/324-null-array4.json
index d12be57..e94fb68 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/324-null-array4.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/324-null-array4.json
@@ -1,4 +1,4 @@
-{ "a": [ 1 ] }
-{ "a": [ null ] }
-{ "a": [ null, null ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[1]}
+{"a":[null]}
+{"a":[null,null]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/325-null-array5.json b/asterixdb/asterix-column/src/test/resources/result/assembler/325-null-array5.json
index a0d9cbf..4e844d6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/325-null-array5.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/325-null-array5.json
@@ -1,4 +1,4 @@
-{ "a": [ { "a": 1 } ] }
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "a": null, "b": 2 }, null, { "a": 3, "b": null } ] }
+{"a":[{"a":1}]}
+{"a":null}
+{"a":[null]}
+{"a":[{"a":null,"b":2},null,{"a":3,"b":null}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/326-null-array6.json b/asterixdb/asterix-column/src/test/resources/result/assembler/326-null-array6.json
index 5a37b18..33a810c 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/326-null-array6.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/326-null-array6.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "a": 1 } ] }
-{ "a": [ { "a": null, "b": 2 }, null, { "a": 3, "b": null } ] }
+{"a":null}
+{"a":[null]}
+{"a":[{"a":1}]}
+{"a":[{"a":null,"b":2},null,{"a":3,"b":null}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/327-null-array7.json b/asterixdb/asterix-column/src/test/resources/result/assembler/327-null-array7.json
index f305582..d7d8ccd 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/327-null-array7.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/327-null-array7.json
@@ -1,4 +1,4 @@
-{ "a": [ { "b": 2, "c": null }, null, { "b": null, "c": 3 } ] }
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "c": 1 } ] }
+{"a":[{"b":2,"c":null},null,{"b":null,"c":3}]}
+{"a":null}
+{"a":[null]}
+{"a":[{"c":1}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/900-dummy-tweet.json b/asterixdb/asterix-column/src/test/resources/result/assembler/900-dummy-tweet.json
index 53f2518..9bdde86 100644
--- a/asterixdb/asterix-column/src/test/resources/result/assembler/900-dummy-tweet.json
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/900-dummy-tweet.json
@@ -1,2 +1,2 @@
-{ "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "entities": { "urls": [ { "display_url": "string", "expanded_url": "string", "indices": [ 1 ], "url": "string" } ], "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id": "0000000", "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": { "coordinates": [ [ [ 1.1 ] ] ], "type": "string" }, "country": "string", "country_code": "string", "full_name": "string", "id": "string", "name": "string", "place_type": "string", "url": "string" }, "possibly_sensitive": true, "quoted_status": { "created_at": "string", "entities": { "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "id": 1, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "verified": true } }, "quoted_status_id": 1, "quoted_status_id_str": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "timestamp_ms": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "location": "string", "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "time_zone": "string", "url": "string", "utc_offset": 1, "verified": true } }
-{ "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id": "11111111111111111111", "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": { "coordinates": [ [ [ 1.1 ] ] ], "type": "string" }, "country": "string", "country_code": "string", "full_name": "string", "id": "string", "name": "string", "place_type": "string", "url": "string" }, "possibly_sensitive": true, "quoted_status": { "created_at": "string", "entities": { "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "id": 1, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "verified": true } }, "quoted_status_id": 1, "quoted_status_id_str": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "timestamp_ms": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "location": "string", "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "time_zone": "string", "url": "string", "utc_offset": 1, "verified": true } }
+{"coordinates":{"coordinates":[1.1],"type":"string"},"created_at":"string","entities":{"urls":[{"display_url":"string","expanded_url":"string","indices":[1],"url":"string"}],"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","geo":{"coordinates":[1.1],"type":"string"},"id":"0000000","id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","place":{"bounding_box":{"coordinates":[[[1.1]]],"type":"string"},"country":"string","country_code":"string","full_name":"string","id":"string","name":"string","place_type":"string","url":"string"},"possibly_sensitive":true,"quoted_status":{"created_at":"string","entities":{"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","id":1,"id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"verified":true}},"quoted_status_id":1,"quoted_status_id_str":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","timestamp_ms":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"location":"string","name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"time_zone":"string","url":"string","utc_offset":1,"verified":true}}
+{"coordinates":{"coordinates":[1.1],"type":"string"},"created_at":"string","favorite_count":1,"favorited":true,"filter_level":"string","geo":{"coordinates":[1.1],"type":"string"},"id":"11111111111111111111","id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","place":{"bounding_box":{"coordinates":[[[1.1]]],"type":"string"},"country":"string","country_code":"string","full_name":"string","id":"string","name":"string","place_type":"string","url":"string"},"possibly_sensitive":true,"quoted_status":{"created_at":"string","entities":{"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","id":1,"id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"verified":true}},"quoted_status_id":1,"quoted_status_id_str":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","timestamp_ms":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"location":"string","name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"time_zone":"string","url":"string","utc_offset":1,"verified":true}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/000-arrayOfInt.json b/asterixdb/asterix-column/src/test/resources/result/small/000-arrayOfInt.json
index 0ef2261..e8743b9 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/000-arrayOfInt.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/000-arrayOfInt.json
@@ -1,10 +1,10 @@
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
-{ "b": [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] }
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
+{"b":[[1,2,3],[4,5,6]]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/001-arrayObject.json b/asterixdb/asterix-column/src/test/resources/result/small/001-arrayObject.json
index 8857afc..4bfed37 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/001-arrayObject.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/001-arrayObject.json
@@ -1 +1 @@
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
+{"a":[{"b":1},{"b":2},{"c":3}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/002-arrayObject2.json b/asterixdb/asterix-column/src/test/resources/result/small/002-arrayObject2.json
index 9eb300f..656e0b5 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/002-arrayObject2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/002-arrayObject2.json
@@ -1,4 +1,4 @@
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 } ] }
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 } ] }
-{ "ommhom": [ { "a": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ], "b": 1, "c": 2, "d": 3 }, { "f": 3 }, { "k": { "v": { "t": 1 } } }, { "a": [ { "j": 1 } ] } ] }
-{ "ommhom": [ { "xyz": [ { "x": 1, "y": 2 }, { "y": 2 }, { "x": 1 } ] } ] }
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3}]}
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3}]}
+{"ommhom":[{"a":[{"x":1,"y":2},{"y":2},{"x":1}],"b":1,"c":2,"d":3},{"f":3},{"k":{"v":{"t":1}}},{"a":[{"j":1}]}]}
+{"ommhom":[{"xyz":[{"x":1,"y":2},{"y":2},{"x":1}]}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json b/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
index 3b8b6cc..77555c0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
@@ -1,3 +1,3 @@
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
-{ "a": [  ] }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
\ No newline at end of file
+{"a":[{"b":1},{"b":2},{"c":3}]}
+{"a":[]}
+{"a":[{"b":1},{"b":2},{"c":3}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/100-addFields.json b/asterixdb/asterix-column/src/test/resources/result/small/100-addFields.json
index 1ce59bc..fb02498 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/100-addFields.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/100-addFields.json
@@ -1,4 +1,4 @@
-{ "a": 1 }
-{ "a": 1, "b": 2 }
-{ "a": 1, "c": 3 }
-{ "a": 1, "b": 2, "c": 3 }
+{"a":1}
+{"a":1,"b":2}
+{"a":1,"c":3}
+{"a":1,"b":2,"c":3}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/101-nestedAddFields.json b/asterixdb/asterix-column/src/test/resources/result/small/101-nestedAddFields.json
index f51e0df..2d796b3 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/101-nestedAddFields.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/101-nestedAddFields.json
@@ -1,4 +1,4 @@
-{ "a": { "b": { "c": 1 } } }
-{ "a": { "b": { "c": 1, "d": 2 }, "x": { "y": 2 } } }
-{ "a": { "b": { "c": 1 }, "x": { "z": 2 } } }
-{ "a": { "b": { "c": 1 } } }
\ No newline at end of file
+{"a":{"b":{"c":1}}}
+{"a":{"b":{"c":1,"d":2},"x":{"y":2}}}
+{"a":{"b":{"c":1},"x":{"z":2}}}
+{"a":{"b":{"c":1}}}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/200-unionPrimitive.json b/asterixdb/asterix-column/src/test/resources/result/small/200-unionPrimitive.json
index 37d3d92..db61955 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/200-unionPrimitive.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/200-unionPrimitive.json
@@ -1,4 +1,4 @@
-{ "a": 1.25 }
-{ "a": 1 }
-{ "a": "test" }
-{ "a": 2.25 }
+{"a":1.25}
+{"a":1}
+{"a":"test"}
+{"a":2.25}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/201-unionPrimitiveObject.json b/asterixdb/asterix-column/src/test/resources/result/small/201-unionPrimitiveObject.json
index 249fee0..2555214 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/201-unionPrimitiveObject.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/201-unionPrimitiveObject.json
@@ -1,2 +1,2 @@
-{ "a": 1 }
-{ "a": { "b": 1 } }
+{"a":1}
+{"a":{"b":1}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/202-unionPrimitiveArray.json b/asterixdb/asterix-column/src/test/resources/result/small/202-unionPrimitiveArray.json
index 6624e9b..e474bb4 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/202-unionPrimitiveArray.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/202-unionPrimitiveArray.json
@@ -1,4 +1,4 @@
-{ "a": 1 }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "b": 3 } ] }
-{ "a": 1 }
-{ "a": [ { "b": 1, "c": 10 }, { "b": 2, "c": 11 }, { "b": 3, "c": 12 } ] }
+{"a":1}
+{"a":[{"b":1},{"b":2},{"b":3}]}
+{"a":1}
+{"a":[{"b":1,"c":10},{"b":2,"c":11},{"b":3,"c":12}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/203-unionNestedNested.json b/asterixdb/asterix-column/src/test/resources/result/small/203-unionNestedNested.json
index 5130db99..bf706be 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/203-unionNestedNested.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/203-unionNestedNested.json
@@ -1,4 +1,4 @@
-{ "a": { "b": 1 } }
-{ "a": [ { "b": 1 }, { "b": 2 }, { "b": 3 } ] }
-{ "a": { "b": 1 } }
-{ "a": [ { "b": 1, "c": 10 }, { "b": 2, "c": 11 }, { "b": 3, "c": 12 } ] }
+{"a":{"b":1}}
+{"a":[{"b":1},{"b":2},{"b":3}]}
+{"a":{"b":1}}
+{"a":[{"b":1,"c":10},{"b":2,"c":11},{"b":3,"c":12}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/204-unionArrayPrimitiveItems.json b/asterixdb/asterix-column/src/test/resources/result/small/204-unionArrayPrimitiveItems.json
index e468ab2..b74f4b1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/204-unionArrayPrimitiveItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/204-unionArrayPrimitiveItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ "1" ] }
-{ "a": [ false ] }
-{ "a": [ 1.25 ] }
-{ "a": [ 1, "1", false, 1.25 ] }
+{"a":[1]}
+{"a":["1"]}
+{"a":[false]}
+{"a":[1.25]}
+{"a":[1,"1",false,1.25]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/205-unionArrayPrimitiveObjectItems.json b/asterixdb/asterix-column/src/test/resources/result/small/205-unionArrayPrimitiveObjectItems.json
index 869a4e6..33327d2 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/205-unionArrayPrimitiveObjectItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/205-unionArrayPrimitiveObjectItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ { "a": 1 } ] }
-{ "a": [ false ] }
-{ "a": [ { "b": 1 } ] }
-{ "a": [ 1, { "a": 1 }, false, { "b": 1 }, { "c": 1 } ] }
+{"a":[1]}
+{"a":[{"a":1}]}
+{"a":[false]}
+{"a":[{"b":1}]}
+{"a":[1,{"a":1},false,{"b":1},{"c":1}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/206-unionArrayPrimitiveObjectArrayItems.json b/asterixdb/asterix-column/src/test/resources/result/small/206-unionArrayPrimitiveObjectArrayItems.json
index 2a54e7f..557a9e8 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/206-unionArrayPrimitiveObjectArrayItems.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/206-unionArrayPrimitiveObjectArrayItems.json
@@ -1,5 +1,5 @@
-{ "a": [ 1 ] }
-{ "a": [ [ { "a": 1 } ] ] }
-{ "a": [ false ] }
-{ "a": [ { "b": 5 } ] }
-{ "a": [ 1, { "a": 5 }, false, [ { "b": 1 } ], [ { "c": 1 } ] ] }
+{"a":[1]}
+{"a":[[{"a":1}]]}
+{"a":[false]}
+{"a":[{"b":5}]}
+{"a":[1,{"a":5},false,[{"b":1}],[{"c":1}]]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/207-unionArrayNullItems0.json b/asterixdb/asterix-column/src/test/resources/result/small/207-unionArrayNullItems0.json
index f8faf4c..e929ee3 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/207-unionArrayNullItems0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/207-unionArrayNullItems0.json
@@ -1,3 +1,3 @@
-{ "a": [ null ] }
-{ "a": [ 1 ] }
-{ "a": [ "string" ] }
\ No newline at end of file
+{"a":[null]}
+{"a":[1]}
+{"a":["string"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/208-unionArrayNullItems1.json b/asterixdb/asterix-column/src/test/resources/result/small/208-unionArrayNullItems1.json
index eb3fc85..1e8b301 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/208-unionArrayNullItems1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/208-unionArrayNullItems1.json
@@ -1,3 +1,3 @@
-{ "a": [ 1 ] }
-{ "a": [ null ] }
-{ "a": [ "string" ] }
\ No newline at end of file
+{"a":[1]}
+{"a":[null]}
+{"a":["string"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/209-unionArrayNullItems2.json b/asterixdb/asterix-column/src/test/resources/result/small/209-unionArrayNullItems2.json
index da80268..c07b643 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/209-unionArrayNullItems2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/209-unionArrayNullItems2.json
@@ -1,3 +1,3 @@
-{ "a": [ 0, "1", null ] }
-{ "a": [ 0, null, "1" ] }
-{ "a": [ null, 0, "1" ] }
\ No newline at end of file
+{"a":[0,"1",null]}
+{"a":[0,null,"1"]}
+{"a":[null,0,"1"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/210-unionArrayNullItems3.json b/asterixdb/asterix-column/src/test/resources/result/small/210-unionArrayNullItems3.json
index 00fd767..8a5848a 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/210-unionArrayNullItems3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/210-unionArrayNullItems3.json
@@ -1 +1 @@
-{ "a": [ 0, null, "1" ] }
\ No newline at end of file
+{"a":[0,null,"1"]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/301-null-primitive.json b/asterixdb/asterix-column/src/test/resources/result/small/301-null-primitive.json
index aeb319a..57232a9 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/301-null-primitive.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/301-null-primitive.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": null }
-{ "a": 1 }
+{"a":null}
+{"a":null}
+{"a":null}
+{"a":1}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/310-null-object0.json b/asterixdb/asterix-column/src/test/resources/result/small/310-null-object0.json
index b563190..2379cf0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/310-null-object0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/310-null-object0.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": { "b": 1, "c": 5 } }
-{ "a": { "b": null, "c": null } }
+{"a":null}
+{"a":null}
+{"a":{"b":1,"c":5}}
+{"a":{"b":null,"c":null}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/311-null-object1.json b/asterixdb/asterix-column/src/test/resources/result/small/311-null-object1.json
index ee4a6ce..9cd9b35 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/311-null-object1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/311-null-object1.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": null }
-{ "a": { "b": null, "c": 5 } }
-{ "a": { "b": 1, "c": null } }
+{"a":null}
+{"a":null}
+{"a":{"b":null,"c":5}}
+{"a":{"b":1,"c":null}}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/312-null-object2.json b/asterixdb/asterix-column/src/test/resources/result/small/312-null-object2.json
index 0609637..9539007 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/312-null-object2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/312-null-object2.json
@@ -1,4 +1,4 @@
-{ "a": { "b": 1, "c": null } }
-{ "a": { "b": null, "c": 5 } }
-{ "a": null }
-{ "a": null }
+{"a":{"b":1,"c":null}}
+{"a":{"b":null,"c":5}}
+{"a":null}
+{"a":null}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/313-null-object3.json b/asterixdb/asterix-column/src/test/resources/result/small/313-null-object3.json
index 9c54517..1be1683 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/313-null-object3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/313-null-object3.json
@@ -1,4 +1,4 @@
-{ "a": { "b": null, "c": null } }
-{ "a": { "b": 1, "c": 5 } }
-{ "a": null }
-{ "a": null }
+{"a":{"b":null,"c":null}}
+{"a":{"b":1,"c":5}}
+{"a":null}
+{"a":null}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/320-null-array0.json b/asterixdb/asterix-column/src/test/resources/result/small/320-null-array0.json
index e1d6d6f..e4b6ae1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/320-null-array0.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/320-null-array0.json
@@ -1,4 +1,4 @@
-{ "a": [ null ] }
-{ "a": null }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null]}
+{"a":null}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/321-null-array1.json b/asterixdb/asterix-column/src/test/resources/result/small/321-null-array1.json
index e1d6d6f..e4b6ae1 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/321-null-array1.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/321-null-array1.json
@@ -1,4 +1,4 @@
-{ "a": [ null ] }
-{ "a": null }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null]}
+{"a":null}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/322-null-array2.json b/asterixdb/asterix-column/src/test/resources/result/small/322-null-array2.json
index 83f9f0c..8ca1c4f 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/322-null-array2.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/322-null-array2.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ 1 ] }
-{ "a": [ 3, null, 4 ] }
+{"a":null}
+{"a":[null]}
+{"a":[1]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/323-null-array3.json b/asterixdb/asterix-column/src/test/resources/result/small/323-null-array3.json
index f53eae0..ecf07bc 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/323-null-array3.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/323-null-array3.json
@@ -1,4 +1,4 @@
-{ "a": [ null, 1, null ] }
-{ "a": [ null ] }
-{ "a": [ null, null ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[null,1,null]}
+{"a":[null]}
+{"a":[null,null]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/324-null-array4.json b/asterixdb/asterix-column/src/test/resources/result/small/324-null-array4.json
index d12be57..e94fb68 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/324-null-array4.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/324-null-array4.json
@@ -1,4 +1,4 @@
-{ "a": [ 1 ] }
-{ "a": [ null ] }
-{ "a": [ null, null ] }
-{ "a": [ 3, null, 4 ] }
+{"a":[1]}
+{"a":[null]}
+{"a":[null,null]}
+{"a":[3,null,4]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/325-null-array5.json b/asterixdb/asterix-column/src/test/resources/result/small/325-null-array5.json
index a0d9cbf..4e844d6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/325-null-array5.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/325-null-array5.json
@@ -1,4 +1,4 @@
-{ "a": [ { "a": 1 } ] }
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "a": null, "b": 2 }, null, { "a": 3, "b": null } ] }
+{"a":[{"a":1}]}
+{"a":null}
+{"a":[null]}
+{"a":[{"a":null,"b":2},null,{"a":3,"b":null}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/326-null-array6.json b/asterixdb/asterix-column/src/test/resources/result/small/326-null-array6.json
index 5a37b18..33a810c 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/326-null-array6.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/326-null-array6.json
@@ -1,4 +1,4 @@
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "a": 1 } ] }
-{ "a": [ { "a": null, "b": 2 }, null, { "a": 3, "b": null } ] }
+{"a":null}
+{"a":[null]}
+{"a":[{"a":1}]}
+{"a":[{"a":null,"b":2},null,{"a":3,"b":null}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/327-null-array7.json b/asterixdb/asterix-column/src/test/resources/result/small/327-null-array7.json
index f305582..d7d8ccd 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/327-null-array7.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/327-null-array7.json
@@ -1,4 +1,4 @@
-{ "a": [ { "b": 2, "c": null }, null, { "b": null, "c": 3 } ] }
-{ "a": null }
-{ "a": [ null ] }
-{ "a": [ { "c": 1 } ] }
+{"a":[{"b":2,"c":null},null,{"b":null,"c":3}]}
+{"a":null}
+{"a":[null]}
+{"a":[{"c":1}]}
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/900-dummy-tweet.json b/asterixdb/asterix-column/src/test/resources/result/small/900-dummy-tweet.json
index 53f2518..9bdde86 100644
--- a/asterixdb/asterix-column/src/test/resources/result/small/900-dummy-tweet.json
+++ b/asterixdb/asterix-column/src/test/resources/result/small/900-dummy-tweet.json
@@ -1,2 +1,2 @@
-{ "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "entities": { "urls": [ { "display_url": "string", "expanded_url": "string", "indices": [ 1 ], "url": "string" } ], "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id": "0000000", "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": { "coordinates": [ [ [ 1.1 ] ] ], "type": "string" }, "country": "string", "country_code": "string", "full_name": "string", "id": "string", "name": "string", "place_type": "string", "url": "string" }, "possibly_sensitive": true, "quoted_status": { "created_at": "string", "entities": { "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "id": 1, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "verified": true } }, "quoted_status_id": 1, "quoted_status_id_str": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "timestamp_ms": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "location": "string", "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "time_zone": "string", "url": "string", "utc_offset": 1, "verified": true } }
-{ "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id": "11111111111111111111", "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": { "coordinates": [ [ [ 1.1 ] ] ], "type": "string" }, "country": "string", "country_code": "string", "full_name": "string", "id": "string", "name": "string", "place_type": "string", "url": "string" }, "possibly_sensitive": true, "quoted_status": { "created_at": "string", "entities": { "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "id": 1, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "verified": true } }, "quoted_status_id": 1, "quoted_status_id_str": "string", "retweet_count": 1, "retweeted": true, "source": "string", "text": "string", "timestamp_ms": "string", "truncated": true, "user": { "contributors_enabled": true, "created_at": "string", "default_profile": true, "default_profile_image": true, "description": "string", "favourites_count": 1, "followers_count": 1, "friends_count": 1, "geo_enabled": true, "id": 1, "id_str": "string", "is_translator": true, "lang": "string", "listed_count": 1, "location": "string", "name": "string", "profile_background_color": "string", "profile_background_image_url": "string", "profile_background_image_url_https": "string", "profile_background_tile": true, "profile_banner_url": "string", "profile_image_url": "string", "profile_image_url_https": "string", "profile_link_color": "string", "profile_sidebar_border_color": "string", "profile_sidebar_fill_color": "string", "profile_text_color": "string", "profile_use_background_image": true, "protected": true, "screen_name": "string", "statuses_count": 1, "time_zone": "string", "url": "string", "utc_offset": 1, "verified": true } }
+{"coordinates":{"coordinates":[1.1],"type":"string"},"created_at":"string","entities":{"urls":[{"display_url":"string","expanded_url":"string","indices":[1],"url":"string"}],"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","geo":{"coordinates":[1.1],"type":"string"},"id":"0000000","id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","place":{"bounding_box":{"coordinates":[[[1.1]]],"type":"string"},"country":"string","country_code":"string","full_name":"string","id":"string","name":"string","place_type":"string","url":"string"},"possibly_sensitive":true,"quoted_status":{"created_at":"string","entities":{"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","id":1,"id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"verified":true}},"quoted_status_id":1,"quoted_status_id_str":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","timestamp_ms":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"location":"string","name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"time_zone":"string","url":"string","utc_offset":1,"verified":true}}
+{"coordinates":{"coordinates":[1.1],"type":"string"},"created_at":"string","favorite_count":1,"favorited":true,"filter_level":"string","geo":{"coordinates":[1.1],"type":"string"},"id":"11111111111111111111","id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","place":{"bounding_box":{"coordinates":[[[1.1]]],"type":"string"},"country":"string","country_code":"string","full_name":"string","id":"string","name":"string","place_type":"string","url":"string"},"possibly_sensitive":true,"quoted_status":{"created_at":"string","entities":{"user_mentions":[{"id":1,"id_str":"string","indices":[1],"name":"string","screen_name":"string"}]},"favorite_count":1,"favorited":true,"filter_level":"string","id":1,"id_str":"string","in_reply_to_screen_name":"string","in_reply_to_status_id":1,"in_reply_to_status_id_str":"string","in_reply_to_user_id":1,"in_reply_to_user_id_str":"string","is_quote_status":true,"lang":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"verified":true}},"quoted_status_id":1,"quoted_status_id_str":"string","retweet_count":1,"retweeted":true,"source":"string","text":"string","timestamp_ms":"string","truncated":true,"user":{"contributors_enabled":true,"created_at":"string","default_profile":true,"default_profile_image":true,"description":"string","favourites_count":1,"followers_count":1,"friends_count":1,"geo_enabled":true,"id":1,"id_str":"string","is_translator":true,"lang":"string","listed_count":1,"location":"string","name":"string","profile_background_color":"string","profile_background_image_url":"string","profile_background_image_url_https":"string","profile_background_tile":true,"profile_banner_url":"string","profile_image_url":"string","profile_image_url_https":"string","profile_link_color":"string","profile_sidebar_border_color":"string","profile_sidebar_fill_color":"string","profile_text_color":"string","profile_use_background_image":true,"protected":true,"screen_name":"string","statuses_count":1,"time_zone":"string","url":"string","utc_offset":1,"verified":true}}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/PushdownUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/PushdownUtil.java
index b0cc50d..c94a86c 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/PushdownUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/PushdownUtil.java
@@ -88,6 +88,27 @@
         }
     }
 
+    public static int getFieldNameId(AbstractFunctionCallExpression fieldAccessExpr) {
+        if (!BuiltinFunctions.FIELD_ACCESS_BY_INDEX.equals(fieldAccessExpr.getFunctionIdentifier())) {
+            return -1;
+        }
+
+        Integer fieldNameId = ConstantExpressionUtil.getIntArgument(fieldAccessExpr, 1);
+        if (fieldNameId == null) {
+            return -1;
+        }
+
+        return fieldNameId;
+    }
+
+    public static String getFieldName(AbstractFunctionCallExpression fieldAccessExpr) {
+        if (!BuiltinFunctions.FIELD_ACCESS_BY_NAME.equals(fieldAccessExpr.getFunctionIdentifier())) {
+            throw new IllegalStateException(
+                    "Cannot get field name from " + fieldAccessExpr.getFunctionIdentifier().getName());
+        }
+        return ConstantExpressionUtil.getStringArgument(fieldAccessExpr, 1);
+    }
+
     public static String getFieldName(AbstractFunctionCallExpression fieldAccessExpr, IVariableTypeEnvironment typeEnv)
             throws AlgebricksException {
         if (BuiltinFunctions.FIELD_ACCESS_BY_NAME.equals(fieldAccessExpr.getFunctionIdentifier())) {
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/clean/APrintVisitor.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/clean/APrintVisitor.java
index 76768aa..f7acb96 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/clean/APrintVisitor.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/clean/APrintVisitor.java
@@ -38,12 +38,12 @@
 public class APrintVisitor extends AbstractPrintVisitor {
     @Override
     protected AListPrinter createListPrinter(AListVisitablePointable accessor) {
-        return new AListPrinter("[ ", " ]", ", ");
+        return new AListPrinter("[", "]", ",");
     }
 
     @Override
     protected ARecordPrinter createRecordPrinter(ARecordVisitablePointable accessor) {
-        return new ARecordPrinter("{ ", " }", ", ", ": ");
+        return new ARecordPrinter("{", "}", ",", ":");
     }
 
     @Override
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/losslessadm/APrintVisitor.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/losslessadm/APrintVisitor.java
index 025590b..0decbaa 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/losslessadm/APrintVisitor.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/printer/json/losslessadm/APrintVisitor.java
@@ -39,7 +39,7 @@
 
     @Override
     protected AListPrinter createListPrinter(AListVisitablePointable accessor) {
-        return new AListPrinter("[ ", " ]", ", ") {
+        return new AListPrinter("[", "]", ",") {
             @Override
             protected ATypeTag getItemTypeTag(IVisitablePointable item, ATypeTag typeTag) {
                 // avoid MISSING to NULL conversion, because we print MISSING as is in this format
@@ -50,7 +50,7 @@
 
     @Override
     protected ARecordPrinter createRecordPrinter(ARecordVisitablePointable accessor) {
-        return new ARecordPrinter("{ ", " }", ", ", ": ") {
+        return new ARecordPrinter("{", "}", ",", ":") {
             @Override
             protected void printFieldName(PrintStream ps, IPrintVisitor visitor, IVisitablePointable fieldName)
                     throws HyracksDataException {
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionManager.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionManager.java
index 7158558..d58eeeb 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionManager.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionManager.java
@@ -65,9 +65,11 @@
         Pair<FunctionIdentifier, Integer> key = new Pair<>(fid, fid.getArity());
         IFunctionDescriptorFactory factory = functions.get(key);
         if (factory == null) {
-            String msg = "Inappropriate use of function '" + fid.getName() + "'";
+            String msg;
             if (fid.equals(BuiltinFunctions.META)) {
-                msg = msg + ". For example, after GROUP BY";
+                msg = "No source collection found for META(): collection not supported or cannot reference collection";
+            } else {
+                msg = "Could not resolve function '" + fid.getName() + "'";
             }
             throw AsterixException.create(ErrorCode.COMPILATION_ERROR, src, msg);
         }
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/writers/PrinterBasedWriterFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/writers/PrinterBasedWriterFactory.java
index 015ce73..6fcbdce 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/writers/PrinterBasedWriterFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/writers/PrinterBasedWriterFactory.java
@@ -61,11 +61,10 @@
                             + tAccess.getFieldStartOffset(tIdx, fields[i]);
                     int fldLen = tAccess.getFieldLength(tIdx, fields[i]);
                     if (i > 0) {
-                        printStream.print("; ");
+                        printStream.print(';');
                     }
                     printers[i].print(tAccess.getBuffer().array(), fldStart, fldLen, printStream);
                 }
-                printStream.println();
             }
         };
     }
diff --git a/hyracks-fullstack/algebricks/algebricks-tests/src/test/java/org/apache/hyracks/algebricks/tests/pushruntime/PushRuntimeTest.java b/hyracks-fullstack/algebricks/algebricks-tests/src/test/java/org/apache/hyracks/algebricks/tests/pushruntime/PushRuntimeTest.java
index d23f7f9..9265f52 100644
--- a/hyracks-fullstack/algebricks/algebricks-tests/src/test/java/org/apache/hyracks/algebricks/tests/pushruntime/PushRuntimeTest.java
+++ b/hyracks-fullstack/algebricks/algebricks-tests/src/test/java/org/apache/hyracks/algebricks/tests/pushruntime/PushRuntimeTest.java
@@ -178,7 +178,7 @@
 
         StringBuilder buf = new StringBuilder();
         readFileToString(outFile, buf);
-        Assert.assertEquals("400; 3", buf.toString());
+        Assert.assertEquals("400;3", buf.toString());
         outFile.delete();
     }
 
@@ -570,7 +570,7 @@
 
         StringBuilder buf = new StringBuilder();
         readFileToString(outFile, buf);
-        Assert.assertEquals("400; 3", buf.toString());
+        Assert.assertEquals("400;3", buf.toString());
         outFile.delete();
     }
 
@@ -796,9 +796,9 @@
         RecordDescriptor sortDesc = scannerDesc;
 
         String fileName = "scanMicroSortWrite.out";
-        String filePath = PATH_ACTUAL + SEPARATOR + fileName;
-        String resultFilePath = PATH_EXPECTED + SEPARATOR + fileName;
-        File outFile = new File(filePath);
+        String actualFilePath = PATH_ACTUAL + SEPARATOR + fileName;
+        String expectedFilePath = PATH_EXPECTED + SEPARATOR + fileName;
+        File outFile = new File(actualFilePath);
         SinkWriterRuntimeFactory writer = new SinkWriterRuntimeFactory(new int[] { 0, 1, 2, 3 },
                 new IPrinterFactory[] { IntegerPrinterFactory.INSTANCE, UTF8StringPrinterFactory.INSTANCE,
                         IntegerPrinterFactory.INSTANCE, UTF8StringPrinterFactory.INSTANCE },
@@ -814,7 +814,7 @@
         spec.addRoot(algebricksOp);
         AlgebricksHyracksIntegrationUtil.runJob(spec);
 
-        compareFiles(filePath, resultFilePath);
+        compareFiles(expectedFilePath, actualFilePath);
         outFile.delete();
     }
 
diff --git a/hyracks-fullstack/algebricks/algebricks-tests/src/test/resources/results/scanMicroSortWrite.out b/hyracks-fullstack/algebricks/algebricks-tests/src/test/resources/results/scanMicroSortWrite.out
index 1c0fd6a..978196c 100644
--- a/hyracks-fullstack/algebricks/algebricks-tests/src/test/resources/results/scanMicroSortWrite.out
+++ b/hyracks-fullstack/algebricks/algebricks-tests/src/test/resources/results/scanMicroSortWrite.out
@@ -1,25 +1 @@
-0; "ALGERIA"; 0; " haggle. carefully final deposits detect slyly agai"
-1; "ARGENTINA"; 1; "al foxes promise slyly according to the regular accounts. bold requests alon"
-2; "BRAZIL"; 1; "y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special "
-3; "CANADA"; 1; "eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold"
-18; "CHINA"; 2; "c dependencies. furiously express notornis sleep slyly regular accounts. ideas sleep. depos"
-4; "EGYPT"; 4; "y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d"
-5; "ETHIOPIA"; 0; "ven packages wake quickly. regu"
-6; "FRANCE"; 3; "refully final requests. regular, ironi"
-7; "GERMANY"; 3; "l platelets. regular accounts x-ray: unusual, regular acco"
-8; "INDIA"; 2; "ss excuses cajole slyly across the packages. deposits print aroun"
-9; "INDONESIA"; 2; " slyly express asymptotes. regular deposits haggle slyly. carefully ironic hockey players sleep blithely. carefull"
-10; "IRAN"; 4; "efully alongside of the slyly final dependencies. "
-11; "IRAQ"; 4; "nic deposits boost atop the quickly final requests? quickly regula"
-12; "JAPAN"; 2; "ously. final, express gifts cajole a"
-13; "JORDAN"; 4; "ic deposits are blithely about the carefully regular pa"
-14; "KENYA"; 0; " pending excuses haggle furiously deposits. pending, express pinto beans wake fluffily past t"
-15; "MOROCCO"; 0; "rns. blithely bold courts among the closely regular packages use furiously bold platelets?"
-16; "MOZAMBIQUE"; 0; "s. ironic, unusual asymptotes wake blithely r"
-17; "PERU"; 1; "platelets. blithely pending dependencies use fluffily across the even pinto beans. carefully silent accoun"
-19; "ROMANIA"; 3; "ular asymptotes are about the furious multipliers. express dependencies nag above the ironically ironic account"
-22; "RUSSIA"; 3; " requests against the platelets use never according to the quickly regular pint"
-20; "SAUDI ARABIA"; 4; "ts. silent requests haggle. closely express packages sleep across the blithely"
-23; "UNITED KINGDOM"; 3; "eans boost carefully special requests. accounts are. carefull"
-24; "UNITED STATES"; 1; "y final packages. slow foxes cajole quickly. quickly silent platelets breach ironic accounts. unusual pinto be"
-21; "VIETNAM"; 2; "hely enticingly express accounts. even, final "
+0;"ALGERIA";0;" haggle. carefully final deposits detect slyly agai"1;"ARGENTINA";1;"al foxes promise slyly according to the regular accounts. bold requests alon"2;"BRAZIL";1;"y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special "3;"CANADA";1;"eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold"18;"CHINA";2;"c dependencies. furiously express notornis sleep slyly regular accounts. ideas sleep. depos"4;"EGYPT";4;"y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d"5;"ETHIOPIA";0;"ven packages wake quickly. regu"6;"FRANCE";3;"refully final requests. regular, ironi"7;"GERMANY";3;"l platelets. regular accounts x-ray: unusual, regular acco"8;"INDIA";2;"ss excuses cajole slyly across the packages. deposits print aroun"9;"INDONESIA";2;" slyly express asymptotes. regular deposits haggle slyly. carefully ironic hockey players sleep blithely. carefull"10;"IRAN";4;"efully alongside of the slyly final dependencies. "11;"IRAQ";4;"nic deposits boost atop the quickly final requests? quickly regula"12;"JAPAN";2;"ously. final, express gifts cajole a"13;"JORDAN";4;"ic deposits are blithely about the carefully regular pa"14;"KENYA";0;" pending excuses haggle furiously deposits. pending, express pinto beans wake fluffily past t"15;"MOROCCO";0;"rns. blithely bold courts among the closely regular packages use furiously bold platelets?"16;"MOZAMBIQUE";0;"s. ironic, unusual asymptotes wake blithely r"17;"PERU";1;"platelets. blithely pending dependencies use fluffily across the even pinto beans. carefully silent accoun"19;"ROMANIA";3;"ular asymptotes are about the furious multipliers. express dependencies nag above the ironically ironic account"22;"RUSSIA";3;" requests against the platelets use never according to the quickly regular pint"20;"SAUDI ARABIA";4;"ts. silent requests haggle. closely express packages sleep across the blithely"23;"UNITED KINGDOM";3;"eans boost carefully special requests. accounts are. carefull"24;"UNITED STATES";1;"y final packages. slow foxes cajole quickly. quickly silent platelets breach ironic accounts. unusual pinto be"21;"VIETNAM";2;"hely enticingly express accounts. even, final "
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
index d6698fe..a386ab8 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
@@ -34,6 +34,7 @@
 import java.util.TimerTask;
 import java.util.TreeMap;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import org.apache.hyracks.api.application.IApplication;
 import org.apache.hyracks.api.application.ICCApplication;
@@ -78,6 +79,7 @@
 import org.apache.hyracks.control.common.ipc.CCNCFunctions;
 import org.apache.hyracks.control.common.logs.LogFile;
 import org.apache.hyracks.control.common.shutdown.ShutdownRun;
+import org.apache.hyracks.control.common.utils.HyracksThreadFactory;
 import org.apache.hyracks.control.common.work.WorkQueue;
 import org.apache.hyracks.ipc.api.IIPCI;
 import org.apache.hyracks.ipc.impl.IPCSystem;
@@ -118,7 +120,7 @@
 
     private final WorkQueue workQueue;
 
-    private ExecutorService executor;
+    private ExecutorService executor = Executors.newCachedThreadPool(new HyracksThreadFactory("<bootstrap>"));
 
     private final Timer timer;
 
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java
index e173dcb..f3df6a8 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java
@@ -35,6 +35,7 @@
 import java.util.TimerTask;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -72,6 +73,7 @@
 import org.apache.hyracks.control.common.ipc.CCNCFunctions;
 import org.apache.hyracks.control.common.ipc.ClusterControllerRemoteProxy;
 import org.apache.hyracks.control.common.job.profiling.om.JobProfile;
+import org.apache.hyracks.control.common.utils.HyracksThreadFactory;
 import org.apache.hyracks.control.common.work.FutureValue;
 import org.apache.hyracks.control.common.work.WorkQueue;
 import org.apache.hyracks.control.nc.application.NCServiceContext;
@@ -145,7 +147,7 @@
 
     private final Map<JobId, JobParameterByteStore> jobParameterByteStoreMap = new HashMap<>();
 
-    private ExecutorService executor;
+    private ExecutorService executor = Executors.newCachedThreadPool(new HyracksThreadFactory("<bootstrap>"));
 
     private Map<CcId, HeartbeatManager> heartbeatManagers = new ConcurrentHashMap<>();
 
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
index 958bfde..d12fbe9 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/LSMColumnBTree.java
@@ -87,6 +87,11 @@
     @Override
     public synchronized void activate() throws HyracksDataException {
         super.activate();
+        postLoadingDiskComponents();
+    }
+
+    @Override
+    protected void postLoadingDiskComponents() throws HyracksDataException {
         if (diskComponents.isEmpty()) {
             columnMetadata = columnManager.activate();
         } else {
@@ -95,6 +100,7 @@
         }
 
         diskCacheManager.activate(columnMetadata.getNumberOfColumns(), diskComponents, diskBufferCache);
+        super.postLoadingDiskComponents();
     }
 
     @Override
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
index 25d928c..e9a3abe 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
@@ -200,6 +200,10 @@
             throw HyracksDataException.create(ErrorCode.CANNOT_ACTIVATE_ACTIVE_INDEX);
         }
         loadDiskComponents();
+        postLoadingDiskComponents();
+    }
+
+    protected void postLoadingDiskComponents() throws HyracksDataException {
         isActive = true;
     }
 
