} else if (node instanceof FilterNode) {
FilterNode filterNode = (FilterNode) node;
Expr filterExpr = filterNode.getFilterExpr();
newElem = new FilterElement(newContext, filterExpr);
} else if (node instanceof ProjectionNode) {
ProjectionNode projNode = (ProjectionNode) node;
Schema outSchema = (Schema) projNode.getAttr(PlanNode.OUTPUT_SCHEMA_ATTR);
newElem = new ProjectionElement(newContext, outSchema, projNode.getInputFields(),
projNode.getOutputFields());
} else if (node instanceof AggregateNode) {
AggregateNode aggNode = (AggregateNode) node;
newElem = new BucketedAggregationElement(newContext, aggNode);
} else if (node instanceof EvaluateExprsNode) {
EvaluateExprsNode evalNode = (EvaluateExprsNode) node;